UNPKG

mtl-js-sdk

Version:

347 lines (288 loc) 9.83 kB
"use strict"; 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 }; });