mirror of https://github.com/Seich/Beau.git
Replaced some promises with async/await.
This commit is contained in:
parent
23cedd5637
commit
10623f6625
21
request.js
21
request.js
|
|
@ -52,10 +52,11 @@ class Request {
|
|||
return set;
|
||||
}
|
||||
|
||||
exec(modifiers = []) {
|
||||
async exec(modifiers = []) {
|
||||
let dependencies = Array.from(this.DEPENDENCIES);
|
||||
|
||||
return this.list.fetchDependencies(dependencies).then(cache => {
|
||||
let cache = await this.list.fetchDependencies(dependencies);
|
||||
|
||||
let settings = {
|
||||
endpoint: cache.parse(this.ENDPOINT),
|
||||
method: this.VERB,
|
||||
|
|
@ -70,7 +71,8 @@ class Request {
|
|||
}
|
||||
});
|
||||
|
||||
return request({
|
||||
try {
|
||||
let response = await request({
|
||||
url: settings.endpoint,
|
||||
method: settings.method,
|
||||
headers: settings.headers,
|
||||
|
|
@ -80,9 +82,8 @@ class Request {
|
|||
json: true,
|
||||
simple: false,
|
||||
resolveWithFullResponse: true
|
||||
})
|
||||
});
|
||||
|
||||
.then(response => {
|
||||
let results = {
|
||||
request: {
|
||||
headers: response.request.headers,
|
||||
|
|
@ -100,13 +101,9 @@ class Request {
|
|||
cache.add(`$${this.ALIAS}`, results);
|
||||
|
||||
return results;
|
||||
})
|
||||
|
||||
.catch(function({error}) {
|
||||
throw new Error(error.message);
|
||||
});
|
||||
|
||||
});
|
||||
} catch({error}) {
|
||||
throw new Error(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,39 +12,39 @@ class RequestList {
|
|||
this.cache = new RequestCache();
|
||||
}
|
||||
|
||||
execByAlias(alias) {
|
||||
async execByAlias(alias) {
|
||||
let request = this.list.find(r => r.ALIAS === alias);
|
||||
|
||||
if (typeof request === 'undefined') {
|
||||
return Promise.reject(`${alias} not found among the requests.`);
|
||||
}
|
||||
|
||||
return request
|
||||
.exec(this.modifiers)
|
||||
.then(res => {
|
||||
try {
|
||||
let response = await request.exec(this.modifiers);
|
||||
|
||||
this.modifiers.forEach(mod => {
|
||||
if (typeof mod.postResponse !== 'undefined') {
|
||||
mod.postResponse(res);
|
||||
mod.postResponse(response);
|
||||
}
|
||||
});
|
||||
|
||||
return res;
|
||||
})
|
||||
.catch(reason => {
|
||||
return Promise
|
||||
.reject(`Request: ${request.VERB} ${request.ENDPOINT} FAILED. \n${reason}`);
|
||||
});
|
||||
return response;
|
||||
} catch (reason) {
|
||||
throw new Error(
|
||||
`Request: ${request.VERB} ${request.ENDPOINT} FAILED. \n${reason}`
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
fetchDependencies(dependencies) {
|
||||
async fetchDependencies(dependencies) {
|
||||
dependencies = dependencies.map(d => this.execByAlias(d));
|
||||
await Promise.all(dependencies);
|
||||
|
||||
return Promise.all(dependencies).then(() => this.cache);
|
||||
return this.cache;
|
||||
}
|
||||
|
||||
loadRequests(doc) {
|
||||
let requestKeys = Object.keys(doc)
|
||||
.filter(key => {
|
||||
let requestKeys = Object.keys(doc).filter(key => {
|
||||
let verb = key.split(' ')[0].toUpperCase();
|
||||
return httpVerbs.indexOf(verb) > -1;
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue