easy-api-client
Version:
开源项目服务端api框架easy-spring-boot-api的typescript客户端api对接工具包
126 lines (125 loc) • 4.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApiSysParamSetPreHandler = exports.ApiSignPreHandler = exports.ApiEncryptPreHandler = void 0;
var ApiClient_1 = require("../ApiClient");
var EncryptUtil_1 = require("../../utils/EncryptUtil");
var ApiEncryptPreHandler = /** @class */ (function () {
function ApiEncryptPreHandler() {
}
ApiEncryptPreHandler.newInstance = function () {
return new ApiEncryptPreHandler();
};
ApiEncryptPreHandler.prototype.handle = function (api, options, data) {
if (!api.encryptRequest) {
return data;
}
api.encryptParams && api.encryptParams.forEach(function (paramKey) {
var value = data[paramKey];
if (typeof value === "string") {
//字符串类型才可以加密
try {
var content = EncryptUtil_1.EncryptUtil.encrypt(value, options.secret);
data[paramKey] = content;
}
catch (e) {
console.warn("\u53C2\u6570[".concat(value, "]\u52A0\u5BC6\u5931\u8D25!"));
}
}
});
return data;
};
ApiEncryptPreHandler.prototype.order = function () {
return -1; //在加签处理器执行后执行
};
return ApiEncryptPreHandler;
}());
exports.ApiEncryptPreHandler = ApiEncryptPreHandler;
var ApiSignPreHandler = /** @class */ (function () {
function ApiSignPreHandler() {
}
ApiSignPreHandler.newInstance = function () {
return new ApiSignPreHandler();
};
ApiSignPreHandler.prototype.convertToSignParams = function (signParams, ignoreSignParams, key, value) {
var _this = this;
if (value instanceof Array) {
//数组
if (ignoreSignParams.has("".concat(key))) {
return;
}
var arr = value;
arr.forEach(function (v, i) {
_this.convertToSignParams(signParams, ignoreSignParams, "".concat(key, "[").concat(i, "]"), v);
});
}
else if (typeof value === 'object' && value != null) {
Object.keys(value).filter(function (subKey) { return !ignoreSignParams.has("".concat(key, ".").concat(subKey)); }).forEach(function (subKey) {
_this.convertToSignParams(signParams, ignoreSignParams, "".concat(key, ".").concat(subKey), value[subKey]);
});
}
else {
signParams[key] = value;
}
};
ApiSignPreHandler.prototype.handle = function (api, options, data) {
var _this = this;
if (!api.needSign) {
return data;
}
data = data || {};
if (!api.ignoreSignParams) {
api.ignoreSignParams = [];
}
api.ignoreSignParams.push('parameters');
var ignoreSignParams = new Set(api.ignoreSignParams);
var signParams = {};
Object.keys(data).filter(function (key) { return !ignoreSignParams.has(key); }).forEach(function (key) {
var value = data[key];
_this.convertToSignParams(signParams, ignoreSignParams, key, value);
});
data.parameters && Object.keys(data.parameters).filter(function (key) { return !ignoreSignParams.has(key); }).forEach(function (key) {
var value = data.parameters[key];
_this.convertToSignParams(signParams, ignoreSignParams, key, value);
});
var timestamp = Date.now();
data.sign = EncryptUtil_1.EncryptUtil.signSHA1Hex(signParams, timestamp, options.secret);
data.timestamp = timestamp;
return data;
};
ApiSignPreHandler.prototype.order = function () {
//最先执行加签
return -2;
};
return ApiSignPreHandler;
}());
exports.ApiSignPreHandler = ApiSignPreHandler;
var ApiSysParamSetPreHandler = /** @class */ (function () {
function ApiSysParamSetPreHandler() {
}
ApiSysParamSetPreHandler.newInstance = function () {
return new ApiSysParamSetPreHandler();
};
ApiSysParamSetPreHandler.prototype.handle = function (api, options, data) {
data.appId = options.appId;
if (options.locale == null) {
// 默认不传
}
else if (typeof options.locale == 'string') {
data.locale = options.locale;
}
else {
data.locale = options.locale();
}
if (ApiClient_1.CurrentLoginUserInfo.online) {
data.sessionId = ApiClient_1.CurrentLoginUserInfo.sessionId;
}
data.clientId = ApiClient_1.CurrentLoginUserInfo.deviceId;
data.versionCode = options.versionCode;
return data;
};
ApiSysParamSetPreHandler.prototype.order = function () {
return 999; //最后执行
};
return ApiSysParamSetPreHandler;
}());
exports.ApiSysParamSetPreHandler = ApiSysParamSetPreHandler;