|
@@ -1,32 +1,28 @@
|
|
-/**
|
|
|
|
- * 网络请求
|
|
|
|
- */
|
|
|
|
-import ext from './extend.js';
|
|
|
|
-import tok from './token.js';
|
|
|
|
|
|
+import extend from './extend.js';
|
|
|
|
+import token from './token.js';
|
|
|
|
+import result from './result.js';
|
|
|
|
+import ResultData from './resultData.js';
|
|
|
|
|
|
/**
|
|
/**
|
|
- * @typedef {Object} RequestResult
|
|
|
|
- * @property {boolean} success - 请求是否成功标记
|
|
|
|
- * @property {string} message - 请求失败消息
|
|
|
|
- * @property {Object} data - 请求成功接收的数据
|
|
|
|
|
|
+ * 网络请求
|
|
*/
|
|
*/
|
|
-const Request = {
|
|
|
|
|
|
+const request = {
|
|
/**
|
|
/**
|
|
* 设置基础地址
|
|
* 设置基础地址
|
|
* @param {string} url - 基础地址
|
|
* @param {string} url - 基础地址
|
|
*/
|
|
*/
|
|
setBaseUrl(url) {
|
|
setBaseUrl(url) {
|
|
- if (!ext.isString(url)) {
|
|
|
|
|
|
+ if (!extend.isString(url)) {
|
|
url = '';
|
|
url = '';
|
|
}
|
|
}
|
|
- ext.addStorage('base_url', url);
|
|
|
|
|
|
+ extend.addStorage('base_url', url);
|
|
},
|
|
},
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取基础地址
|
|
* 获取基础地址
|
|
*/
|
|
*/
|
|
getBaseUrl() {
|
|
getBaseUrl() {
|
|
- return ext.readStorage('base_url');
|
|
|
|
|
|
+ return extend.readStorage('base_url');
|
|
},
|
|
},
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -38,11 +34,11 @@ const Request = {
|
|
* @param {string} opts.responseType - 接受数据类型,默认 json
|
|
* @param {string} opts.responseType - 接受数据类型,默认 json
|
|
* @param {Object} opts.data - 请求参数
|
|
* @param {Object} opts.data - 请求参数
|
|
* @param {Object} opts.header - 请求头
|
|
* @param {Object} opts.header - 请求头
|
|
- * @returns {RequestResult} 网络请求结果对象
|
|
|
|
|
|
+ * @returns {ResultData} 结果对象
|
|
*/
|
|
*/
|
|
send(opts) {
|
|
send(opts) {
|
|
return new Promise(async (resolve, reject) => {
|
|
return new Promise(async (resolve, reject) => {
|
|
- if (!ext.isObject(opts)) {
|
|
|
|
|
|
+ if (!extend.isObject(opts)) {
|
|
resolve({
|
|
resolve({
|
|
success: false,
|
|
success: false,
|
|
message: '参数不能为空'
|
|
message: '参数不能为空'
|
|
@@ -51,11 +47,11 @@ const Request = {
|
|
}
|
|
}
|
|
let data = null;
|
|
let data = null;
|
|
let url = '';
|
|
let url = '';
|
|
- let baseUrl = Request.getBaseUrl();
|
|
|
|
|
|
+ let baseUrl = request.getBaseUrl();
|
|
|
|
|
|
try {
|
|
try {
|
|
- if (!ext.isUrl(opts.url)) {
|
|
|
|
- if (ext.isEmptyString(baseUrl)) {
|
|
|
|
|
|
+ if (!extend.isUrl(opts.url)) {
|
|
|
|
+ if (extend.isEmptyString(baseUrl)) {
|
|
resolve({
|
|
resolve({
|
|
success: false,
|
|
success: false,
|
|
message: '未设置 BaseUrl'
|
|
message: '未设置 BaseUrl'
|
|
@@ -65,7 +61,7 @@ const Request = {
|
|
url = baseUrl + opts.url;
|
|
url = baseUrl + opts.url;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if (!ext.isObject(opts.header)) {
|
|
|
|
|
|
+ if (!extend.isObject(opts.header)) {
|
|
opts.header = {};
|
|
opts.header = {};
|
|
}
|
|
}
|
|
switch (opts.type) {
|
|
switch (opts.type) {
|
|
@@ -82,7 +78,7 @@ const Request = {
|
|
opts.header['content-type'] = 'application/x-www-form-urlencoded';
|
|
opts.header['content-type'] = 'application/x-www-form-urlencoded';
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- if (ext.isEmptyString(opts.method)) {
|
|
|
|
|
|
+ if (extend.isEmptyString(opts.method)) {
|
|
opts.method = 'get';
|
|
opts.method = 'get';
|
|
}
|
|
}
|
|
uni.request({
|
|
uni.request({
|
|
@@ -97,46 +93,38 @@ const Request = {
|
|
if (res.statusCode === 401) {
|
|
if (res.statusCode === 401) {
|
|
let r = await tok.getByServer();
|
|
let r = await tok.getByServer();
|
|
if (r.success) {
|
|
if (r.success) {
|
|
- let rr = await Request.send(opts.data);
|
|
|
|
- if (rr.success || rr.code === 200) {
|
|
|
|
- resolve({
|
|
|
|
- success: true,
|
|
|
|
- data: rr.data
|
|
|
|
- });
|
|
|
|
- } else {
|
|
|
|
- resolve({
|
|
|
|
- success: false,
|
|
|
|
- message: rr.message
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
|
|
+ res = await Request.send(opts.data);
|
|
} else {
|
|
} else {
|
|
- resolve({
|
|
|
|
|
|
+ return resolve(new ResultData({
|
|
success: false,
|
|
success: false,
|
|
message: r.message
|
|
message: r.message
|
|
- });
|
|
|
|
|
|
+ }));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- resolve({
|
|
|
|
- success: true,
|
|
|
|
|
|
+ res = result.get(res);
|
|
|
|
+ resolve(new ResultData({
|
|
|
|
+ success: res.success,
|
|
|
|
+ message: res.message,
|
|
|
|
+ statusCode: res.statusCode,
|
|
data: res.data
|
|
data: res.data
|
|
- });
|
|
|
|
|
|
+ }));
|
|
},
|
|
},
|
|
fail(ex) {
|
|
fail(ex) {
|
|
console.error(ex);
|
|
console.error(ex);
|
|
- ex = ext.errorFormatter(ex);
|
|
|
|
- resolve({
|
|
|
|
|
|
+ ex = extend.errorFormatter(ex);
|
|
|
|
+ resolve(new ResultData({
|
|
success: false,
|
|
success: false,
|
|
message: ex.message
|
|
message: ex.message
|
|
- });
|
|
|
|
|
|
+ }));
|
|
}
|
|
}
|
|
});
|
|
});
|
|
- } catch(ex) {
|
|
|
|
- let err = ext.errorFormatter(ex);
|
|
|
|
|
|
+ } catch (ex) {
|
|
|
|
+ let err = extend.errorFormatter(ex);
|
|
console.error(ex);
|
|
console.error(ex);
|
|
- resolve({
|
|
|
|
|
|
+ resolve(new ResultData({
|
|
success: false,
|
|
success: false,
|
|
- message: err.message
|
|
|
|
- });
|
|
|
|
|
|
+ message: err.message,
|
|
|
|
+ }));
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
@@ -152,20 +140,23 @@ const Request = {
|
|
* @returns {RequestResult} 网络请求结果对象
|
|
* @returns {RequestResult} 网络请求结果对象
|
|
*/
|
|
*/
|
|
async sendToken(opts) {
|
|
async sendToken(opts) {
|
|
- if (!ext.isObject(opts)) {
|
|
|
|
|
|
+ if (!extend.isObject(opts)) {
|
|
return {
|
|
return {
|
|
success: false,
|
|
success: false,
|
|
message: '参数不能为空'
|
|
message: '参数不能为空'
|
|
};
|
|
};
|
|
}
|
|
}
|
|
- let token = tok.get();
|
|
|
|
- if (ext.isNonEmptyString(token)) {
|
|
|
|
|
|
+ let tokenStr = token.get();
|
|
|
|
+ if (extend.isNonEmptyString(tokenStr)) {
|
|
opts.header = {
|
|
opts.header = {
|
|
- Authorization: token
|
|
|
|
|
|
+ Authorization: tokenStr
|
|
};
|
|
};
|
|
}
|
|
}
|
|
return await this.send(opts);
|
|
return await this.send(opts);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
-export default Request;
|
|
|
|
|
|
+/**
|
|
|
|
+ * 网络请求
|
|
|
|
+ */
|
|
|
|
+export default request;
|