transbank-sdk
Version:
Transbank SDK for Node.js
67 lines (66 loc) • 2.6 kB
JavaScript
import axios from 'axios';
import TransbankError from '../common/transbank_error';
const CONTENT_TYPE = 'application/json';
const getHeaders = (options, commerceCodeHeader = 'Tbk-Api-Key-Id', apiKeyHeader = 'Tbk-Api-Key-Secret') => {
return {
[commerceCodeHeader]: options.commerceCode,
[apiKeyHeader]: options.apiKey,
'Content-Type': CONTENT_TYPE,
};
};
const getPatpassHeaders = (options, commerceCodeHeader = 'commercecode', apiKeyHeader = 'Authorization') => {
return {
[commerceCodeHeader]: options.commerceCode,
[apiKeyHeader]: options.apiKey,
'Content-Type': CONTENT_TYPE,
};
};
const RequestService = {
perform: async (request, options) => {
let requestHeaders = getHeaders(options);
return axios({
method: request.method,
url: options.environment + request.endpoint,
headers: requestHeaders,
timeout: options.timeout,
data: request.toJson(),
})
.then((response) => {
if (response.status == 204) {
return true;
}
return response.data;
})
.catch((error) => {
var _a;
let response = error.response;
let msg = ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.error_message) || 'Unexpected error';
throw new TransbankError(error, msg);
});
},
performPatpass: async (request, options) => {
let requestHeaders = getPatpassHeaders(options);
return axios({
method: request.method,
url: options.environment + request.endpoint,
headers: requestHeaders,
timeout: options.timeout,
data: request.toJson(),
})
.then((response) => {
if (response.status == 204) {
return true;
}
return response.data;
})
.catch((error) => {
var _a, _b;
let response = error.response;
let msg = ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.code) || ((_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.description)
? `${response.data.code} - ${response.data.description}`
: 'Unexpected error';
throw new TransbankError(error, msg);
});
},
};
export default RequestService;