From c4adfeaf750c4ac44e599162d6c302ed2e0688f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20D=C3=ADaz?= Date: Wed, 1 Mar 2017 13:44:52 -0600 Subject: [PATCH] Moved the list from the request method call to it's constructor. --- examples/slack.yml | 2 +- request.js | 10 ++++++---- requestList.js | 17 +++++++++++------ 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/examples/slack.yml b/examples/slack.yml index 5334b5b..833679e 100644 --- a/examples/slack.yml +++ b/examples/slack.yml @@ -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 diff --git a/request.js b/request.js index 5fd9e17..af3f41a 100644 --- a/request.js +++ b/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); diff --git a/requestList.js b/requestList.js index f7d25c8..e22a537 100644 --- a/requestList.js +++ b/requestList.js @@ -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); }); } }