mirror of https://github.com/Seich/Beau.git
Moved the list from the request method call to it's constructor.
This commit is contained in:
parent
b033031a43
commit
c4adfeaf75
|
|
@ -2,7 +2,7 @@ VERSION: '1'
|
|||
HOST: https://slack.com/api
|
||||
|
||||
auth: &auth
|
||||
token: xoxp-139455775026-139455775090-140860933030-239230833dba65fc90078876ae85d9fb
|
||||
token: xoxp-139455775026-139455775090-140286212801-4a786b8b600db898df76302a0bf0784c
|
||||
|
||||
GET /users.getPresence:
|
||||
ALIAS: $presence
|
||||
|
|
|
|||
10
request.js
10
request.js
|
|
@ -4,7 +4,7 @@ const RequestList = require('./requestList');
|
|||
const RequestCache = require('./requestCache');
|
||||
|
||||
class Request {
|
||||
constructor(req) {
|
||||
constructor(req, list) {
|
||||
let { request, ALIAS, PAYLOAD, HOST, PARAMS, HEADERS } = req;
|
||||
let { verb, endpoint } = this.parseRequest(request);
|
||||
|
||||
|
|
@ -17,6 +17,8 @@ class Request {
|
|||
|
||||
this.$alias = ALIAS;
|
||||
this.$dependencies = this.findDependencies(req);
|
||||
|
||||
this.list = list;
|
||||
}
|
||||
|
||||
parseRequest(request) {
|
||||
|
|
@ -46,10 +48,10 @@ class Request {
|
|||
return set;
|
||||
}
|
||||
|
||||
exec(list = new RequestList(), cache = new RequestCache()) {
|
||||
let dependencies = Array.from(this.$dependencies).map(dep => list.execByAlias(dep));
|
||||
exec() {
|
||||
let dependencies = Array.from(this.$dependencies);
|
||||
|
||||
return Promise.all(dependencies).then(() => {
|
||||
return this.list.fetchDependencies(dependencies).then(cache => {
|
||||
let endpoint = cache.parse(this.$endpoint);
|
||||
let request = unirest(this.$verb, endpoint);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
const Request = require('./request');
|
||||
const RequestCache = require('./requestCache');
|
||||
const httpVerbs = require('./shared').httpVerbs;
|
||||
|
||||
class RequestList {
|
||||
constructor(doc = {}, config = {}) {
|
||||
this.config = config;
|
||||
|
|
@ -16,15 +17,19 @@ class RequestList {
|
|||
}
|
||||
|
||||
return request
|
||||
.exec(this, this.cache)
|
||||
.exec()
|
||||
.catch(reason => {
|
||||
return Promise.reject(`${request.$verb} ${request.$endpoint} FAILED.
|
||||
Dependencies not met:
|
||||
${reason}
|
||||
`);
|
||||
return Promise
|
||||
.reject(`${request.$verb} ${request.$endpoint} FAILED. \nDependencies not met:\n${reason}`);
|
||||
});
|
||||
}
|
||||
|
||||
fetchDependencies(dependencies) {
|
||||
dependencies = dependencies.map(d => this.execByAlias(d));
|
||||
|
||||
return Promise.all(dependencies).then(() => this.cache);
|
||||
}
|
||||
|
||||
loadRequests(doc) {
|
||||
let requestKeys = Object.keys(doc)
|
||||
.filter(key => {
|
||||
|
|
@ -38,7 +43,7 @@ ${reason}
|
|||
doc[key].HOST = this.config.HOST;
|
||||
doc[key].request = key;
|
||||
|
||||
return new Request(doc[key]);
|
||||
return new Request(doc[key], this);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue