tplus-api
Version:
tplus api invoke
64 lines (59 loc) • 2.21 kB
text/typescript
import axios from 'axios';
var QS = require('qs');
import tools from '../util/tools';
import User from '../model/User';
import UIConfirm from '../components/UIConfirm';
//param post参数 method 方法 isJsonString 是否转换为json字符串 isFree 是否需要认证信息
const tplusAjaxReq = (param: object, method: string, isJsonString?: boolean, isFree?: boolean, query?: string) => {
param = param || {};
method = method || '';
isJsonString = isJsonString || false;
let requestObj = {};
//调用REST 传递的是单参数 String类型
requestObj = QS.stringify({
'Apis': JSON.stringify({
...param
})
});
if (!User.isLogined()) {
UIConfirm.show(`用户信息丢失,请重新登录!`, () => {
User.logout();
});
return;
}
const user = User.restore();
var ajax = axios.create({ baseURL: user.channel.targetURL });
var url = `api/v2/${method}`;
if (isFree) {
url = url + '?IsFree=1&userId=' + user.userId + '&orgId=' + user.orgId;
} else {
url = url + '?userId=' + user.userId + '&orgId=' + user.orgId;
}
var user_req_id = `${user.userId}x${new Date().getTime().toString(16)}`;
url += '&user_req_id=' + user_req_id;
if (query) {
url += '&' + query;
}
const startTime = new Date().getTime();
return ajax.post(url, requestObj)
.then(resp => {
const endTime = new Date().getTime();
console.log(`tApi:请求接口[${method}]成功,消耗时间${endTime - startTime}ms,时间${tools.sysTime()}`);
return Promise.resolve(resp);
}).catch(err => {
const endTime = new Date().getTime();
console.error(`tApi:请求接口[${method}]失败,消耗时间${endTime - startTime}ms,时间${tools.sysTime()},错误信息->`, err);
return Promise.reject(err);
});
}
const TplusApiV2 = async (param: object, method: string, isJsonString?: boolean, isFree?: boolean, query?: string): Promise<object | string> => {
const resp = await tplusAjaxReq(param, method, isJsonString, isFree, query);
let json = resp.data.Value;
if (typeof (json) == 'string') {
if (tools.isJsonStr(json)) {
json = JSON.parse(resp.data.Value);
}
}
return json;
}
export default TplusApiV2;