diff --git a/lib/command-handler/buy.js b/lib/command-handler/buy.js index 836a93e..d3dc3ca 100644 --- a/lib/command-handler/buy.js +++ b/lib/command-handler/buy.js @@ -1,5 +1,6 @@ // const moment = require('moment'); +const config = require('komodo-sdk/config'); const logger = require('komodo-sdk/logger'); const commands = require('../command-group'); @@ -7,7 +8,8 @@ const commandError = require('./error'); const destinationCorrector = require('../destination-corrector'); const coreapi = require('../coreapi'); -const coreEndpoint = '/prepaid/buy'; +const coreEndpointAuto = '/buy-or-pay'; +const coreEndpointBuy = '/prepaid/buy'; /* function generateRequestId(product, destination) { @@ -49,6 +51,7 @@ function execute(tokens, params, cb) { postpaid: 0 }; + const coreEndpoint = config.buy_only_prepaid ? coreEndpointBuy : coreEndpointAuto; coreapi(coreEndpoint, coreParams, 'GET', cb); } diff --git a/lib/coreapi/request.js b/lib/coreapi/request.js index 2a7e8a3..610d257 100644 --- a/lib/coreapi/request.js +++ b/lib/coreapi/request.js @@ -1,12 +1,14 @@ // const PRODUCTION = process.env.NODE_ENV === 'production'; const request = require('request'); +const uniqid = require('uniqid'); const coreUrl = require('komodo-sdk/core-url'); const logger = require('komodo-sdk/logger'); const commandError = require('../command-handler/error'); function execute(coreEndpoint, params, httpMethod, cb) { + const xid = uniqid(); const requestOptions = { url: coreUrl + coreEndpoint, @@ -20,7 +22,9 @@ function execute(coreEndpoint, params, httpMethod, cb) { requestOptions.data = params; } - logger.verbose('COREAPI-REQUEST: Requesting to core', {url: requestOptions.url, http_method: httpMethod, params: params}); + logger.verbose('COREAPI-REQUEST: Requesting to core', { + xid, url: requestOptions.url, http_method: httpMethod, params: params, + }); request(requestOptions, function(err, res, body) { const responseParams = { @@ -30,11 +34,18 @@ function execute(coreEndpoint, params, httpMethod, cb) { } if (err) { + logger.warn('ERROR on requesting to CORE', { + xid, eCode: err.code, eMessage: err.message, + }); cb(commandError.ERR_INVALID_CORE_RESPONSE, null, responseParams); return; } if (res.statusCode !== 200) { + logger.warn('Invalid HTTP status from CORE', { + xid, httpStatus: res.statusCode, + }); + cb(commandError.ERR_INVALID_CORE_HTTP_STATUS_RESPONSE, null, responseParams); return; } @@ -43,14 +54,20 @@ function execute(coreEndpoint, params, httpMethod, cb) { var coreResponseObject = JSON.parse(body); } catch(e) { - logger.verbose(commandError.ERR_INVALID_CORE_RESPONSE, {body: body}) + logger.warn(commandError.ERR_INVALID_CORE_RESPONSE, { + xid, eCode: e.code, eMessage: e.message, body: body + }); cb(commandError.ERR_INVALID_CORE_RESPONSE, null, responseParams); return; } + logger.verbose('Got CORE response', { + xid, coreResponseObject, + }); + cb(err, coreResponseObject, responseParams); }) - + } module.exports = execute; \ No newline at end of file