- 1 :
- 2 :
(function(root, factory) {
- 3 :
- 4 :
if (typeof module === 'object' && module.exports) {
- 5 :
// CommonJS-like environments that support module.exports, like Node.
- 6 :
module.exports = factory(require('logtown').getLogger('orbipay-paymentsapi-client/src/wrappers/Base'), require('./InvocationContext'), require('../CommonUtil'));
- 7 :
}
- 8 :
}(this, function(logger, InvocationContext, CommonUtil) {
- 9 :
'use strict';
- 10 :
- 11 :
var exports = function() {
- 12 :
};
- 13 :
- 14 :
exports.constructFromObject = function (data, obj) {
- 15 :
if (data) {
- 16 :
obj = obj || new exports();
- 17 :
if (data.hasOwnProperty('invocation_context')) {
- 18 :
obj['invocation_context'] = InvocationContext.constructFromObject(data['invocation_context']);
- 19 :
}
- 20 :
if (data.hasOwnProperty('api_end_point')) {
- 21 :
obj['api_end_point'] = data['api_end_point'];
- 22 :
}
- 23 :
}
- 24 :
return obj;
- 25 :
};
- 26 :
- 27 :
/**
- 28 :
* @member {String} invocation_context
- 29 :
*/
- 30 :
exports.prototype['invocation_context'] = undefined;
- 31 :
/**
- 32 :
* @member {String} api_end_point
- 33 :
*/
- 34 :
exports.prototype['api_end_point'] = undefined;
- 35 :
/**
- 36 :
* @member {String} http_status_code
- 37 :
*/
- 38 :
exports.prototype['http_status_code'] = undefined;
- 39 :
- 40 :
/**
- 41 :
* @private
- 42 :
* @param {String} requestor
- 43 :
* @param {String} requestor_type
- 44 :
* @return module:model/customer/Customer
- 45 :
*/
- 46 :
exports.prototype.requestedBy = function (requestor, requestor_type) {
- 47 :
var _this = this;
- 48 :
if (!CommonUtil.isNonEmptyObject(_this['invocation_context'])) {
- 49 :
_this['invocation_context'] = new InvocationContext();
- 50 :
- 51 :
}
- 52 :
_this['invocation_context']['requestor'] = requestor;
- 53 :
_this['invocation_context']['requestor_type'] = requestor_type;
- 54 :
};
- 55 :
- 56 :
- 57 :
/**
- 58 :
* @param {String} channel
- 59 :
* @return module:model/customer/Customer
- 60 :
*/
- 61 :
exports.prototype.videChannel = function (channel) {
- 62 :
var _this = this;
- 63 :
if (!CommonUtil.isNonEmptyObject(_this['invocation_context'])) {
- 64 :
_this['invocation_context'] = new InvocationContext();
- 65 :
- 66 :
}
- 67 :
_this['invocation_context']['channel'] = channel;
- 68 :
};
- 69 :
- 70 :
/**
- 71 :
* @param {String} client_key
- 72 :
* @return module:model/customer/Customer
- 73 :
*/
- 74 :
exports.prototype.forClient = function (client_key) {
- 75 :
var _this = this;
- 76 :
if (!CommonUtil.isNonEmptyObject(_this['invocation_context'])) {
- 77 :
_this['invocation_context'] = new InvocationContext();
- 78 :
}
- 79 :
_this['invocation_context']['client_key'] = client_key;
- 80 :
};
- 81 :
- 82 :
/**
- 83 :
* @private
- 84 :
* @param {String} live_mode.
- 85 :
* @param {String} api_end_point. For example http://localhost:8080/payments/v1
- 86 :
*/
- 87 :
exports.prototype.setAPIEndPoint = function (live_mode, api_end_point) {
- 88 :
var _this = this;
- 89 :
if (live_mode === 'true') {
- 90 :
_this['api_end_point'] = 'https://api.orbipay.com/payments/v1';
- 91 :
}
- 92 :
else if (live_mode === 'false' && !api_end_point) {
- 93 :
_this['api_end_point'] = 'https://sbapi.orbipay.com/payments/v1';
- 94 :
}
- 95 :
else if(live_mode === 'false' && api_end_point){
- 96 :
_this['api_end_point'] = api_end_point;
- 97 :
}
- 98 :
else{
- 99 :
logger.error('Invalid value for live_mode, value Received in request :'+ live_mode +', valid values for live_mode: true, false');
- 100 :
throw new Error('Invalid value for live_mode, value Received in request :'+ live_mode +', valid values for live_mode: true, false');
- 101 :
}
- 102 :
};
- 103 :
- 104 :
/**
- 105 :
* @private
- 106 :
* @param {module:model/base/InvocationContext} invocation_context
- 107 :
* @param {String} live_mode.
- 108 :
* @param {String} api_end_point. For example http://localhost:8080/payments/v1
- 109 :
* @return module:model/customer/Customer
- 110 :
*/
- 111 :
exports.prototype.withContext = function (invocation_context, live_mode, api_end_point) {
- 112 :
var _this = this;
- 113 :
_this.setAPIEndPoint(live_mode, api_end_point);
- 114 :
if (!CommonUtil.isNonEmptyObject(_this['invocation_context'])) {
- 115 :
_this['invocation_context'] = new InvocationContext();
- 116 :
}
- 117 :
- 118 :
if (invocation_context) {
- 119 :
logger.info('idempotent_request_key :', invocation_context['idempotent_request_key']);
- 120 :
- 121 :
if(invocation_context['product']){
- 122 :
_this['invocation_context']['product'] = invocation_context['product'];
- 123 :
}
- 124 :
if(invocation_context['secret']){
- 125 :
_this['invocation_context']['secret'] = invocation_context['secret'];
- 126 :
}
- 127 :
if(invocation_context['idempotent_request_key']){
- 128 :
_this['invocation_context']['idempotent_request_key'] = invocation_context['idempotent_request_key'];
- 129 :
}
- 130 :
if(invocation_context['X-OPAY-Headers']){
- 131 :
_this['invocation_context']['X-OPAY-Headers'] = invocation_context['X-OPAY-Headers'];
- 132 :
}
- 133 :
if(invocation_context['api_key']){
- 134 :
_this['invocation_context']['api_key'] = invocation_context['api_key'];
- 135 :
}
- 136 :
if(invocation_context['auth_scheme']){
- 137 :
_this['invocation_context']['auth_scheme'] = invocation_context['auth_scheme'];
- 138 :
}
- 139 :
if(invocation_context['trace_id']){
- 140 :
_this['invocation_context']['trace_id'] = invocation_context['trace_id'];
- 141 :
}
- 142 :
}
- 143 :
};
- 144 :
- 145 :
return exports;
- 146 :
- 147 :
}));