classy-pay-client
Advanced tools
Comparing version 1.0.8 to 1.0.9
64
index.js
'use strict'; | ||
const request = require('request'); | ||
const httpRequest = require('request'); | ||
const _ = require('lodash'); | ||
let apiUrl; | ||
let token; | ||
let secret; | ||
let timeout; | ||
let HmacAuthorize; | ||
let config; | ||
@@ -19,7 +16,8 @@ function parse(body) { | ||
function payRequest(appId, method, resource, payload, callback) { | ||
function request(appId, method, resource, payload, callback) { | ||
let options = { | ||
url: `${apiUrl}${resource}?appId=${appId}&meta=true`, | ||
timeout: timeout, | ||
url: `${config.apiUrl}${resource}?appId=${appId}&meta=true`, | ||
timeout: config.timeout, | ||
method, | ||
agent: config.agent, | ||
headers: { | ||
@@ -35,3 +33,3 @@ 'Authorization': HmacAuthorize.sign(method, resource, 'application/json', | ||
} | ||
request(options, function(error, response, body) { | ||
httpRequest(options, function(error, response, body) { | ||
callback(error, { | ||
@@ -47,19 +45,45 @@ status: _.get(response, 'statusCode'), | ||
module.exports = (config) => { | ||
if (!config || !config.apiUrl || !config.timeout || | ||
!config.token || !config.secret) { | ||
throw new Error('You must provide apiUrl, timeout, token, and secret.'); | ||
function forObject(appId, method, resource, body, callback) { | ||
request(appId, method, resource, body, function(error, result) { | ||
if (_.get(result, 'status') !== 200) { | ||
callback(error || `${result.status}: ${resource} ${result.body}`); | ||
} else { | ||
callback(null, result.object); | ||
} | ||
}); | ||
} | ||
function get(appId, resource, callback) { | ||
return forObject(appId, 'GET', resource, null, callback); | ||
} | ||
function post(appId, resource, object, callback) { | ||
return forObject(appId, 'POST', resource, object, callback); | ||
} | ||
function put(appId, resource, object, callback) { | ||
return forObject(appId, 'PUT', resource, object, callback); | ||
} | ||
function del(appId, resource, callback) { | ||
return forObject(appId, 'DELETE', resource, null, callback); | ||
} | ||
module.exports = (callerConfig) => { | ||
config = callerConfig; | ||
if (!config || !config.apiUrl || !config.token || !config.secret) { | ||
throw new Error('You must provide apiUrl, token, and secret.'); | ||
} | ||
apiUrl = config.apiUrl; | ||
token = config.token; | ||
secret = config.secret; | ||
timeout = config.timeout; | ||
HmacAuthorize = require('authorization-hmac256')({ | ||
service: 'CWS', | ||
token, | ||
secret | ||
token: config.token, | ||
secret: config.secret | ||
}); | ||
return { | ||
request: payRequest | ||
request, | ||
get, | ||
post, | ||
put, | ||
del | ||
}; | ||
}; |
{ | ||
"name": "classy-pay-client", | ||
"version": "1.0.8", | ||
"version": "1.0.9", | ||
"description": "Client for Classy Pay.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
6334
116