From d15564a9e3df472fd0878342aea14f48c3963b38 Mon Sep 17 00:00:00 2001 From: David Diaz Date: Fri, 20 Apr 2018 18:23:04 -0600 Subject: [PATCH] Modifiers can now edit request settings. This gives a lot more flexibility when it comes to what a modifier can do. They can now use any valid request option to change how the response behaves. --- src/__mocks__/beau-modifiers.js | 1 + src/request.js | 31 +++++++++++-------------------- 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/__mocks__/beau-modifiers.js b/src/__mocks__/beau-modifiers.js index 5ffdb76..007a27c 100644 --- a/src/__mocks__/beau-modifiers.js +++ b/src/__mocks__/beau-modifiers.js @@ -5,6 +5,7 @@ class Modifiers { } preRequest(request, orig) { + request.headers = request.headers || {}; request.headers.preRequestModifier = true; return request; } diff --git a/src/request.js b/src/request.js index c296d4d..ec4a485 100644 --- a/src/request.js +++ b/src/request.js @@ -77,13 +77,20 @@ class Request { async exec(cache = new RequestCache()) { let settings = cache.parse({ - endpoint: this.ENDPOINT, + url: this.ENDPOINT, method: this.VERB, + headers: this.HEADERS, - query: this.PARAMS, - payload: this.PAYLOAD + qs: this.PARAMS, + body: this.PAYLOAD, + + json: true, + simple: false, + resolveWithFullResponse: true }); + settings = removeOptionalKeys(settings, ['headers', 'qs', 'body']); + settings = this.plugins.replaceDynamicValues(settings); settings = this.plugins.executeModifier( @@ -93,23 +100,7 @@ class Request { ); try { - const response = await request( - removeOptionalKeys( - { - url: settings.endpoint, - method: settings.method, - - headers: settings.headers, - qs: settings.query, - body: settings.payload, - - json: true, - simple: false, - resolveWithFullResponse: true - }, - ['headers', 'qs', 'body'] - ) - ); + const response = await request(settings); let results = { request: {