From 9ac4eb1cd712989ac1a2a22d27f20dfb1cc21ee9 Mon Sep 17 00:00:00 2001 From: Robert Luong Date: Thu, 25 Jan 2018 15:19:31 +0000 Subject: [PATCH] Allow a single component initialise to set header for all requests --- index.js | 74 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 35 deletions(-) diff --git a/index.js b/index.js index 322ec20..dc5d7aa 100644 --- a/index.js +++ b/index.js @@ -13,41 +13,45 @@ module.exports.register = (opts, dependencies, next) => { return next(); }; -module.exports.execute = () => ({ - query: (options, headers, timeout) => new Promise((resolve, reject) => request({ - body: { - query: options.query, - variables: options.variables, - operationName: null, - }, - headers: _.extend({ 'User-Agent': 'oc' }, headers), - json: true, - method: 'POST', - timeout, - url: settings.serverUrl, - }, (err, result, body) => { - if (err) { - return reject(new Error(err)); - } +module.exports.execute = (componentName) => { + let userAgent = componentName ? 'oc-'+componentName : 'oc'; + + return { + query: (options, headers, timeout) => new Promise((resolve, reject) => request({ + body: { + query: options.query, + variables: options.variables, + operationName: null, + }, + headers: _.extend({ 'User-Agent': userAgent }, headers), + json: true, + method: 'POST', + timeout, + url: settings.serverUrl, + }, (err, result, body) => { + if (err) { + return reject(new Error(err)); + } - if (typeof body !== 'object' || body === null) { - return reject({ - errors: [{ - message: 'Invalid response from graphql server.', - http: { - status: http.STATUS_CODES[result.statusCode], - code: result.statusCode, - body, - }, - }], - }); - } + if (typeof body !== 'object' || body === null) { + return reject({ + errors: [{ + message: 'Invalid response from graphql server.', + http: { + status: http.STATUS_CODES[result.statusCode], + code: result.statusCode, + body, + }, + }], + }); + } - // http://facebook.github.io/graphql/October2016/#sec-Errors - if ('errors' in body || !('data' in body)) { - return reject(body); - } + // http://facebook.github.io/graphql/October2016/#sec-Errors + if ('errors' in body || !('data' in body)) { + return reject(body); + } - return resolve(body); - })), -}); + return resolve(body); + })), + }; +};