UNPKG

ts-midtrans-client

Version:

This library is an UNOFFICIAL TypeScript version of the Midtrans Client - Node.js.

148 lines (147 loc) 6.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const apiConfig_1 = require("./apiConfig"); const httpClient_1 = require("./httpClient"); const transaction_1 = require("./transaction"); class Iris { /** * Initiate with options * @param {IrisOptions} options - should have these props: isProduction, serverKey */ constructor(options = { isProduction: false, serverKey: "", clientKey: "" }) { this.apiConfig = new apiConfig_1.ApiConfig(options); this.httpClient = new httpClient_1.HttpClient(this); this.transaction = new transaction_1.Transaction(this); } /** * Do `/ping` API request to Iris API * @return {Promise} - Promise contains Object from JSON decoded response */ ping() { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/ping`; return this.httpClient.request("get", this.apiConfig.get().serverKey, apiUrl); } /** * Do create `/beneficiaries` API request to Iris API * @param {RequestParameters} parameter - object of Iris API JSON body as parameter * @return {Promise} - Promise contains Object from JSON decoded response */ createBeneficiaries(parameter = {}) { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/beneficiaries`; return this.httpClient.request("post", this.apiConfig.get().serverKey, apiUrl, parameter); } /** * Do update `/beneficiaries/<alias_name>` API request to Iris API * @param {string} aliasName - alias_name of the beneficiaries that need to be updated * @param {RequestParameters} parameter - object of Iris API JSON body as parameter * @return {Promise} - Promise contains Object from JSON decoded response */ updateBeneficiaries(aliasName, parameter = {}) { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/beneficiaries/${aliasName}`; return this.httpClient.request("patch", this.apiConfig.get().serverKey, apiUrl, parameter); } /** * Do `/beneficiaries` API request to Iris API * @return {Promise} - Promise contains Object from JSON decoded response */ getBeneficiaries() { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/beneficiaries`; return this.httpClient.request("get", this.apiConfig.get().serverKey, apiUrl); } /** * Do create `/payouts` API request to Iris API * @param {RequestParameters} parameter - object of Iris API JSON body as parameter * @return {Promise} - Promise contains Object from JSON decoded response */ createPayouts(parameter = {}) { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/payouts`; return this.httpClient.request("post", this.apiConfig.get().serverKey, apiUrl, parameter); } /** * Do approve `/payouts/approve` API request to Iris API * @param {RequestParameters} parameter - object of Iris API JSON body as parameter * @return {Promise} - Promise contains Object from JSON decoded response */ approvePayouts(parameter = {}) { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/payouts/approve`; return this.httpClient.request("post", this.apiConfig.get().serverKey, apiUrl, parameter); } /** * Do reject `/payouts/reject` API request to Iris API * @param {RequestParameters} parameter - object of Iris API JSON body as parameter * @return {Promise} - Promise contains Object from JSON decoded response */ rejectPayouts(parameter = {}) { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/payouts/reject`; return this.httpClient.request("post", this.apiConfig.get().serverKey, apiUrl, parameter); } /** * Do `/payouts/<reference_no>` API request to Iris API * @param {string} referenceNo - reference_no of the payout * @return {Promise} - Promise contains Object from JSON decoded response */ getPayoutDetails(referenceNo) { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/payouts/${referenceNo}`; return this.httpClient.request("get", this.apiConfig.get().serverKey, apiUrl); } /** * Do `/statements` API request to Iris API * @param {RequestParameters} parameter - Optional parameters for the request * @return {Promise} - Promise contains Object from JSON decoded response */ getTransactionHistory(parameter = {}) { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/statements`; return this.httpClient.request("get", this.apiConfig.get().serverKey, apiUrl, undefined, parameter); } /** * Do `/channels` API request to Iris API * @return {Promise} - Promise contains Object from JSON decoded response */ getTopupChannels() { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/channels`; return this.httpClient.request("get", this.apiConfig.get().serverKey, apiUrl); } /** * Do `/balance` API request to Iris API * @return {Promise} - Promise contains Object from JSON decoded response */ getBalance() { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/balance`; return this.httpClient.request("get", this.apiConfig.get().serverKey, apiUrl); } /** * Do `/bank_accounts` API request to Iris API * @return {Promise} - Promise contains Object from JSON decoded response */ getFacilitatorBankAccounts() { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/bank_accounts`; return this.httpClient.request("get", this.apiConfig.get().serverKey, apiUrl); } /** * Do `/bank_accounts/<bank_account_id>/balance` API request to Iris API * @param {string} bankAccountId - bank_account_id of the bank account * @return {Promise} - Promise contains Object from JSON decoded response */ getFacilitatorBalance(bankAccountId) { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/bank_accounts/${bankAccountId}/balance`; return this.httpClient.request("get", this.apiConfig.get().serverKey, apiUrl); } /** * Do `/beneficiary_banks` API request to Iris API * @return {Promise} - Promise contains Object from JSON decoded response */ getBeneficiaryBanks() { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/beneficiary_banks`; return this.httpClient.request("get", this.apiConfig.get().serverKey, apiUrl); } /** * Do `/account_validation` API request to Iris API * @param {RequestParameters} parameter - object of Iris API JSON body as parameter * @return {Promise} - Promise contains Object from JSON decoded response */ validateBankAccount(parameter = {}) { const apiUrl = `${this.apiConfig.getIrisApiBaseUrl()}/account_validation`; return this.httpClient.request("get", this.apiConfig.get().serverKey, apiUrl, parameter); } } exports.default = Iris;