You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.7 KiB
66 lines
1.7 KiB
3 years ago
|
'use strict';
|
||
|
const request = require('superagent')
|
||
|
|
||
|
class paasRequest {
|
||
|
constructor(root) {
|
||
|
this.root = root;
|
||
|
}
|
||
|
|
||
|
#buildUrl = (url) => {
|
||
|
return `${this.root}/${url}`;
|
||
|
}
|
||
|
|
||
|
#resultHandler = (resolve, reject) => {
|
||
|
return (err, res) => {
|
||
|
if (err) {
|
||
|
reject(err);
|
||
|
} else {
|
||
|
resolve(res.body);
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
get = (url, { query, header = {} }) => {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
request.get(this.#buildUrl(url)).set(header).query(query).end(this.#resultHandler(resolve, reject));
|
||
|
})
|
||
|
}
|
||
|
|
||
|
post = (url, data, query) => {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
request.post(this.#buildUrl(url, this.root)).set(header).query(query).send(data).end(this.#resultHandler(resolve, reject));
|
||
|
})
|
||
|
}
|
||
|
|
||
|
put = (url, data) => {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
request.put(this.#buildUrl(url)).set(setHeader()).send(data).end(this.#resultHandler(resolve, reject));
|
||
|
})
|
||
|
}
|
||
|
|
||
|
delete = (url) => {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
request.delete(this.#buildUrl(url)).set(setHeader()).end(this.#resultHandler(resolve, reject));
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function factory (app, opts) {
|
||
|
if (opts.pssaRequest) {
|
||
|
try {
|
||
|
for (let r of opts.pssaRequest) {
|
||
|
if (r.name && r.root) {
|
||
|
app.fs[r.name] = new paasRequest(r.root)
|
||
|
} else {
|
||
|
throw 'opts.pssaRequest 参数错误!'
|
||
|
}
|
||
|
}
|
||
|
} catch (error) {
|
||
|
console.error(error)
|
||
|
process.exit(-1);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = factory;
|