From aba010d9db567dd1c1aa3f2f0049be903ac835cb Mon Sep 17 00:00:00 2001 From: Wesley Salazar Date: Sun, 24 Mar 2019 00:49:18 -0400 Subject: [PATCH 1/3] Allow the user to specify whether they want to use POST or GET for performing the OC request to the registry --- src/get-components-data.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/get-components-data.js b/src/get-components-data.js index b954060..9dabd4b 100644 --- a/src/get-components-data.js +++ b/src/get-components-data.js @@ -144,6 +144,13 @@ module.exports = function(config) { const performRequest = serverRendering.components.length === 1 ? performGet : performPost; + const method = (options.method || '').toLowerCase(); + if (method === 'get') { + performRequest = performGet; + } else if (method === 'post') { + performRequest = performPost + } + performRequest( serverRenderingEndpoint, serverRendering, From dc7923e267647e1589eb79a4f098056389e979b2 Mon Sep 17 00:00:00 2001 From: Wesley Salazar Date: Sun, 24 Mar 2019 01:20:03 -0400 Subject: [PATCH 2/3] changed performRequest from const to let --- src/get-components-data.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/get-components-data.js b/src/get-components-data.js index 9dabd4b..04687f4 100644 --- a/src/get-components-data.js +++ b/src/get-components-data.js @@ -141,7 +141,7 @@ module.exports = function(config) { return cb(serverRenderingFail); } - const performRequest = + let performRequest = serverRendering.components.length === 1 ? performGet : performPost; const method = (options.method || '').toLowerCase(); From bb35e5c4dcd0413191e5bfc254dfdaa2c1cac206 Mon Sep 17 00:00:00 2001 From: Wesley Salazar Date: Sat, 30 Mar 2019 15:23:28 -0400 Subject: [PATCH 3/3] Force POST if more than one component is provided, even if httpMethod is set to GET. Update to README file for httpMethod. --- README.md | 1 + src/get-components-data.js | 16 ++++++++-------- test/unit/client-get-component-data.js | 2 ++ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index cfda766..3239a64 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,7 @@ Options: |Parameter|type|mandatory|description| |---------|----|---------|-----------| |`container`|`boolean`|no|Default true, when false, renders a component without its container| +|`httpMethod`|`string`|no|Default GET, when false, Allows you specify which HTTP method to use. Available options: GET or POST. Note: If you have more than one component, POST is automatically forced.| |`disableFailoverRendering`|`boolean`|no|Disables the automatic failover rendering in case the registry times-out (in case configuration.registries.clientRendering contains a valid value.) Default false| |`forwardAcceptLanguageToClient`|`boolean`|no|When not specified in config, defaults to false. When true, when doing client-side requests (normal or failover) appends a custom parameter to the browser's component hrefs so that the framework will ignore the browser's Accept-Language in favour of the query-string value| |`headers`|`object`|no|An object containing all the headers that must be forwarded to the component| diff --git a/src/get-components-data.js b/src/get-components-data.js index 04687f4..2799eca 100644 --- a/src/get-components-data.js +++ b/src/get-components-data.js @@ -141,14 +141,14 @@ module.exports = function(config) { return cb(serverRenderingFail); } - let performRequest = - serverRendering.components.length === 1 ? performGet : performPost; - - const method = (options.method || '').toLowerCase(); - if (method === 'get') { - performRequest = performGet; - } else if (method === 'post') { - performRequest = performPost + let componentsLength = serverRendering.components.length; + let performRequest = componentsLength === 1 ? performGet : performPost; + + const method = (options.httpMethod || '').toLowerCase(); + if (method === 'post') { + performRequest = performPost; + } else if (method === 'get') { + performRequest = componentsLength > 1 ? performPost : performGet; } performRequest( diff --git a/test/unit/client-get-component-data.js b/test/unit/client-get-component-data.js index 88e0960..b430cc0 100644 --- a/test/unit/client-get-component-data.js +++ b/test/unit/client-get-component-data.js @@ -15,6 +15,7 @@ describe('client : get-component-data', () => { const options = { parameters: { p1: 'v1', p2: 'v2' }, headers: { 'header-a': 'header-value b' }, + httpMethod: 'POST', timeout: 10 }; @@ -90,6 +91,7 @@ describe('client : get-component-data', () => { const options = { parameters: { p1: 'v1', p2: 'v2' }, headers: { 'header-a': 'header-value b' }, + httpMethod: 'GET', timeout: 10 };