UNPKG

transbank-sdk

Version:
67 lines (66 loc) 2.6 kB
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;