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