diff --git a/lib/httpClient.js b/lib/httpClient.js index e9b0f4e..8170fa4 100644 --- a/lib/httpClient.js +++ b/lib/httpClient.js @@ -13,11 +13,12 @@ class HttpClient{ this.parent = parentObj; this.http_client = axios.create(); } - request(httpMethod,serverKey,requestUrl,firstParam={},secondParam={}){ + request(httpMethod,serverKey,requestUrl,firstParam={},secondParam={},extraHeaders={}){ let headers = { 'content-type': 'application/json', 'accept': 'application/json', - 'user-agent': 'midtransclient-nodejs/1.4.3' + 'user-agent': 'midtransclient-nodejs/1.4.3', + ...extraHeaders }; let reqBodyPayload = {}; diff --git a/lib/snap.js b/lib/snap.js index 27852c4..80c5a92 100644 --- a/lib/snap.js +++ b/lib/snap.js @@ -16,33 +16,38 @@ class Snap{ /** * Do `/transactions` API request to Snap API * @param {Object} parameter - object of Core API JSON body as parameter, will be converted to JSON (more params detail refer to: https://snap-docs.midtrans.com) + * @param {Object} headers - object of http headers to add to request * @return {Promise} - Promise contains Object from JSON decoded response */ - createTransaction(parameter={}){ + createTransaction(parameter={},headers={}){ let apiUrl = this.apiConfig.getSnapApiBaseUrl()+'/transactions'; let responsePromise = this.httpClient.request( 'post', this.apiConfig.get().serverKey, apiUrl, - parameter); + parameter, + undefined, + headers); return responsePromise; } /** - * Wrapper function that call `createTransaction` then: + * Wrapper function that call `createTransaction` and returns token + * @param {Object} headers - object of http headers to add to request * @return {Promise} - Promise of String token */ - createTransactionToken(parameter={}){ - return this.createTransaction(parameter) + createTransactionToken(parameter={},headers={}){ + return this.createTransaction(parameter, headers) .then(function(res){ return res.token; }) } /** - * Wrapper function that call `createTransaction` then: + * Wrapper function that call `createTransaction` then returns redirect_url + * @param {Object} headers - object of http headers to add to request * @return {Promise} - Promise of String redirect_url */ - createTransactionRedirectUrl(parameter={}){ - return this.createTransaction(parameter) + createTransactionRedirectUrl(parameter={},headers={}){ + return this.createTransaction(parameter, headers) .then(function(res){ return res.redirect_url; })