Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
2e0eb03d3a
|
@ -75,6 +75,7 @@
|
||||||
"semver": "7.3.5",
|
"semver": "7.3.5",
|
||||||
"style-loader": "1.3.0",
|
"style-loader": "1.3.0",
|
||||||
"superagent": "^6.1.0",
|
"superagent": "^6.1.0",
|
||||||
|
"superagent-intercept": "^0.1.2",
|
||||||
"terser-webpack-plugin": "4.2.3",
|
"terser-webpack-plugin": "4.2.3",
|
||||||
"ts-pnp": "1.2.0",
|
"ts-pnp": "1.2.0",
|
||||||
"url-loader": "4.1.1",
|
"url-loader": "4.1.1",
|
||||||
|
|
|
@ -1,31 +1,49 @@
|
||||||
import superagent from "superagent";
|
import superagent from "superagent";
|
||||||
|
import superagentIntercept from 'superagent-intercept';
|
||||||
import {appConfig} from "../config/app";
|
import {appConfig} from "../config/app";
|
||||||
import {TokenUtil} from "./token";
|
import {TokenUtil} from "./token";
|
||||||
|
import {attachSuperagentLogger} from "./http_logger";
|
||||||
|
|
||||||
|
let authIntercept = superagentIntercept((err, res) => {
|
||||||
|
if (res && res.status === 401) {
|
||||||
|
TokenUtil.clearAccessToken();
|
||||||
|
TokenUtil.persistToken();
|
||||||
|
window.location.href = "/login";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
export const http = {
|
export const http = {
|
||||||
get: (url, opts = {}) => {
|
get: (url, opts = {}) => {
|
||||||
let req = superagent.get(appConfig.apiUrl + url);
|
let req = superagent.get(appConfig.apiUrl + url)
|
||||||
|
.use(authIntercept)
|
||||||
|
.use(attachSuperagentLogger);
|
||||||
if (TokenUtil.accessToken) {
|
if (TokenUtil.accessToken) {
|
||||||
req = req.set('Authorization', 'Bearer ' + TokenUtil.accessToken);
|
req = req.set('Authorization', 'Bearer ' + TokenUtil.accessToken);
|
||||||
}
|
}
|
||||||
return req;
|
return req;
|
||||||
},
|
},
|
||||||
post: (url, opts) => {
|
post: (url, opts) => {
|
||||||
let req = superagent.post(appConfig.apiUrl + url);
|
let req = superagent.post(appConfig.apiUrl + url)
|
||||||
|
.use(authIntercept)
|
||||||
|
.use(attachSuperagentLogger);
|
||||||
if (TokenUtil.accessToken) {
|
if (TokenUtil.accessToken) {
|
||||||
req = req.set('Authorization', 'Bearer ' + TokenUtil.accessToken);
|
req = req.set('Authorization', 'Bearer ' + TokenUtil.accessToken);
|
||||||
}
|
}
|
||||||
return req;
|
return req;
|
||||||
},
|
},
|
||||||
put: (url, opts) => {
|
put: (url, opts) => {
|
||||||
let req = superagent.put(appConfig.apiUrl + url);
|
let req = superagent.put(appConfig.apiUrl + url)
|
||||||
|
.use(authIntercept)
|
||||||
|
.use(attachSuperagentLogger);
|
||||||
if (TokenUtil.accessToken) {
|
if (TokenUtil.accessToken) {
|
||||||
req = req.set('Authorization', 'Bearer ' + TokenUtil.accessToken);
|
req = req.set('Authorization', 'Bearer ' + TokenUtil.accessToken);
|
||||||
}
|
}
|
||||||
return req;
|
return req;
|
||||||
},
|
},
|
||||||
del: (url, opts) => {
|
del: (url, opts) => {
|
||||||
let req = superagent.del(appConfig.apiUrl + url);
|
let req = superagent.del(appConfig.apiUrl + url)
|
||||||
|
.use(authIntercept)
|
||||||
|
.use(attachSuperagentLogger);
|
||||||
if (TokenUtil.accessToken) {
|
if (TokenUtil.accessToken) {
|
||||||
req = req.set('Authorization', 'Bearer ' + TokenUtil.accessToken);
|
req = req.set('Authorization', 'Bearer ' + TokenUtil.accessToken);
|
||||||
}
|
}
|
||||||
|
@ -34,13 +52,17 @@ export const http = {
|
||||||
upload: (file) => {
|
upload: (file) => {
|
||||||
const request = superagent
|
const request = superagent
|
||||||
.post(appConfig.apiUrl + '/files')
|
.post(appConfig.apiUrl + '/files')
|
||||||
.attach('file', file);
|
.attach('file', file)
|
||||||
|
.use(authIntercept)
|
||||||
|
.use(attachSuperagentLogger);
|
||||||
|
|
||||||
return request;
|
return request;
|
||||||
},
|
},
|
||||||
uploadAntd: (args) => {
|
uploadAntd: (args) => {
|
||||||
const file = args.file;
|
const file = args.file;
|
||||||
const request = http.upload(file);
|
const request = http.upload(file)
|
||||||
|
.use(authIntercept)
|
||||||
|
.use(attachSuperagentLogger);
|
||||||
request
|
request
|
||||||
.on('progress', event => {
|
.on('progress', event => {
|
||||||
args.onProgress(event);
|
args.onProgress(event);
|
||||||
|
|
17
src/utils/http_logger.js
Normal file
17
src/utils/http_logger.js
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
export function attachSuperagentLogger(req) {
|
||||||
|
const callback = req.callback;
|
||||||
|
console.log('%s %s %s',
|
||||||
|
req.method.padEnd('delete'.length, " "),
|
||||||
|
req.url,
|
||||||
|
'(pending)'
|
||||||
|
);
|
||||||
|
|
||||||
|
req.callback = function (err, res) {
|
||||||
|
console.log('%s %s %s',
|
||||||
|
req.method.padEnd('delete'.length, " "),
|
||||||
|
req.url,
|
||||||
|
res ? res.status : '-'
|
||||||
|
);
|
||||||
|
callback.call(req, err, res);
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user