mtl-js-sdk
Version:
347 lines (288 loc) • 9.83 kB
JavaScript
;
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
define(["./utils"], function (utils) {
var getQuery = utils.getQuery,
isObject = utils.isObject,
failCode = utils.config.failCode;
var _getQuery = getQuery(),
appcode = _getQuery.appcode,
upesncode = _getQuery.code;
var langCode = utils.getLangCode(); //let loginInfo = utils.getLoginInfo(true, appcode);
var businessCode = "";
var loginStatus = "start"; //目前固定的
var _deviceId = utils.getDeviceId(appcode); //默认执行 目前自动登录 关闭 调用callaction 自动登录
// first();
function failFun(options, result) {
if (options.fail) options.fail(result);
if (options.complete) options.complete(result);
}
function callAction(options) {
if (!options || !isObject(options)) {
var result = {
code: failCode,
message: "请传入正确参数, type is Object"
};
failFun(options, result);
}
console.log("callAction - logionStatus is " + loginStatus);
if (loginStatus === "success") {
ucgajax(options);
} else if (loginStatus === "doing" || loginStatus === "start" || loginStatus === "fail") {
var _result = {
code: failCode,
message: "当前未登录"
};
failFun(options, _result);
}
}
function loginCheck(options, url, type) {
if (!options || !isObject(options)) {
var result = {
code: failCode,
message: "请传入正确参数, type is Object"
};
failFun(options, result);
}
console.log("callAction - logionStatus is " + loginStatus);
if (loginStatus === "success") {
if (type === 1) {
uploadToucg(options, url);
} else {
downloadToucg(options, url);
}
} else if (loginStatus === "doing" || loginStatus === "start" || loginStatus === "fail") {
var _result2 = {
code: failCode,
message: "当前未登录"
};
failFun(options, _result2);
}
}
function uploadToucg(options, url) {
console.log("origin: " + utils.getOrigin());
var __url = utils.getOrigin();
var _options$params = options.params,
params = _options$params === void 0 ? {} : _options$params,
_options$headers = options.headers,
headers = _options$headers === void 0 ? {} : _options$headers,
filePath = options.filePath;
var _token = utils.getLoginInfo(false, appcode).token;
if (!/^\//.test(url)) {
url = "/" + url;
}
headers = _objectSpread({
token: _token,
terminalType: "UPESN",
deviceId: _deviceId
}, headers);
var data = _objectSpread({
url: __url + url,
headers: headers,
formData: params,
filePath: filePath,
appCode: appcode
}, options);
console.log("ncc-uploadFile: ", data);
mtl.uploadFile(data);
}
function downloadToucg(options, url) {
console.log("origin: " + utils.getOrigin());
var __url = utils.getOrigin();
var _options$params2 = options.params,
params = _options$params2 === void 0 ? {} : _options$params2,
_options$headers2 = options.headers,
headers = _options$headers2 === void 0 ? {} : _options$headers2;
var _token = utils.getLoginInfo(false, appcode).token;
if (!/^\//.test(url)) {
url = "/" + url;
}
headers = _objectSpread({
token: _token,
terminalType: "UPESN",
deviceId: _deviceId
}, headers);
var data = _objectSpread({
url: __url + url,
headers: headers,
formBody: params,
appCode: appcode
}, options);
console.log("ncc-downFile: ", data);
mtl.downloadFile(data);
}
function uploadFile(options) {
loginCheck(options, "nccloud/mobile/file/upload", 1);
}
function downloadFile(options) {
loginCheck(options, "nccloud/mobile/file/download", 0);
}
function ucgajax(options) {
var _options$params3 = options.params,
params = _options$params3 === void 0 ? {} : _options$params3,
_options$headers3 = options.headers,
headers = _options$headers3 === void 0 ? {} : _options$headers3,
_options$config = options.config,
config = _options$config === void 0 ? {} : _options$config,
isCommon = options.isCommon,
router = options.router;
var url = isCommon ? router : options.url;
console.log("appcode: ", appcode);
var _token = utils.getLoginInfo(false, appcode).token;
console.log("_token: ", _token);
if (!/^\//.test(url)) {
url = "/" + url;
}
var _sysParamJson = {
busiaction: "ucg-api-" + appcode,
appCode: appcode,
langCode: langCode,
ts: utils.getTime()
};
var body;
if (isCommon) {
body = {
url: options.url,
method: "POST",
body: _objectSpread({
sysParamJson: _sysParamJson
}, params)
};
} else {
body = _objectSpread({
sysParamJson: _sysParamJson
}, params);
}
var data = {
url: url,
_suffix: "",
appCode: appcode,
config: config,
data: body,
headers: _objectSpread({
token: _token,
terminalType: "UPESN",
deviceId: _deviceId
}, headers),
fail: function fail(err) {
failFun(options, err);
},
complete: function complete(res) {
options.complete && options.complete(res);
if (res.code == "200") {
//ncc业务系统全部使用 res.data 统一适配
options.success && options.success(res.data);
}
}
};
mtl.ucg.callAction(data);
}
function clearLoginStorage(code) {
utils.clearLoginStorage(code || appcode);
loginStatus = "start";
}
function checkParams(options) {
if (!options || !isObject(options)) {
var result = {
code: failCode,
message: "请传入正确参数, type is Object"
};
failFun(options, result);
return false;
}
var isCommon = options.isCommon,
appCode = options.appCode,
upesnCode = options.upesnCode,
url = options.url;
if (isCommon) {
businessCode = options.businessCode;
} else {
businessCode = "common";
}
if (!url) {
options.url = getTokenUrl(businessCode);
} //如果没有传递默认从url中获取code
if (!appCode) {
options.appCode = getQuery().appcode;
}
if (!upesnCode) {
options.upesnCode = getQuery().upesncode;
}
return true;
}
function login(options) {
//处理请求参数
if (!checkParams(options)) {
return;
} //如果是友空间平台动态获取友空间code
if (mtl.platform == "upesn") {
mtl.getOAuthCode({
success: function success(res) {
upesncode = res.OAuthCode;
console.log("getOAuthCode :" + upesncode);
if (!upesncode) {
failFun(options, "appcode: ".concat(appcode, ", getOAuthCode upesncode: ").concat(upesncode));
return;
}
options.upesnCode = upesncode;
getToken(options);
},
fail: function fail() {
failFun(options, " getOAuthCode upesncode: ".concat(upesncode));
}
});
} else {
getToken(options);
}
} //处理完参数获取token
function getToken(options) {
var promise = new Promise(function (resolve, reject) {
var data = {
url: options.url,
headers: {
"Content-Type": "application/json"
},
data: {
userCode: options.userCode || '',
deviceId: _deviceId,
appCode: options.appCode,
langCode: langCode || "zh",
code: options.upesnCode,
terminalType: "UPESN"
},
method: "post",
success: function success(res) {
loginStatus = "end";
if (res.code == 200 && isObject(res.data)) {
loginStatus = "success";
utils.setLoginInfo(options.appCode, res.data);
}
resolve(res);
},
fail: function fail(err) {
loginStatus = "fail";
reject(err);
}
};
mtl.request(data);
});
promise.then(function (res) {
options.success && options.success(res);
options.complete && options.complete(res);
})["catch"](function (err) {
options.fail && options.fail(err);
options.complete && options.complete(err);
});
}
function getTokenUrl(businessCode) {
return "/nccloud/".concat(businessCode, "/oauth/multiuser/getToken");
}
return {
callAction: callAction,
login: login,
uploadFile: uploadFile,
downloadFile: downloadFile,
clearLoginStorage: clearLoginStorage
};
});