razorpay-esm
Version:
Official Node SDK for Razorpay API
125 lines (121 loc) • 3.15 kB
JavaScript
;
import Promise from "promise";
import { normalizeDate } from "../utils/razorpay-utils.js";
const BASE_URL = "/virtual_accounts";
const ID_REQUIRED_MSG = "`virtual_account_id` is mandatory";
export default function (api) {
return {
all(params = {}, callback) {
let {
from,
to,
count,
skip,
...otherParams
} = params;
let url = BASE_URL;
if (from) {
from = normalizeDate(from);
}
if (to) {
to = normalizeDate(to);
}
count = Number(count) || 10;
skip = Number(skip) || 0;
return api.get({
url,
data: {
from,
to,
count,
skip,
...otherParams
}
}, callback);
},
fetch(virtualAccountId, callback) {
if (!virtualAccountId) {
return Promise.reject(ID_REQUIRED_MSG);
}
let url = `${BASE_URL}/${virtualAccountId}`;
return api.get({
url
}, callback);
},
create(params = {}, callback) {
return api.post({
url: BASE_URL,
data: params
}, callback);
},
close(virtualAccountId, callback) {
if (!virtualAccountId) {
return Promise.reject(ID_REQUIRED_MSG);
}
return api.post({
url: `${BASE_URL}/${virtualAccountId}/close`
}, callback);
},
fetchPayments(virtualAccountId, callback) {
if (!virtualAccountId) {
return Promise.reject(ID_REQUIRED_MSG);
}
let url = `${BASE_URL}/${virtualAccountId}/payments`;
return api.get({
url
}, callback);
},
addReceiver(virtualAccountId, params = {}, callback) {
/*
* Add Receiver to an Existing Virtual Account
*
* @param {Object} params
* @param {Function} callback
*
* @return {Promise}
*/
if (!virtualAccountId) {
return Promise.reject(ID_REQUIRED_MSG);
}
return api.post({
url: `${BASE_URL}/${virtualAccountId}/receivers`,
data: params
}, callback);
},
allowedPayer(virtualAccountId, params = {}, callback) {
/*
* Add an Allowed Payer Account
* @param {Object} params
* @param {Function} callback
*
* @return {Promise}
*/
if (!virtualAccountId) {
return Promise.reject(ID_REQUIRED_MSG);
}
return api.post({
url: `${BASE_URL}/${virtualAccountId}/allowed_payers`,
data: params
}, callback);
},
deleteAllowedPayer(virtualAccountId, allowedPayerId, callback) {
/*
* Delete an Allowed Payer Account
* @param {String} virtualAccountId
* @param {String} allowedPayerId
* @param {Function} callback
*
* @return {Promise}
*/
if (!virtualAccountId) {
return Promise.reject(ID_REQUIRED_MSG);
}
if (!allowedPayerId) {
return Promise.reject("allowed payer id is mandatory");
}
return api.delete({
url: `${BASE_URL}/${virtualAccountId}/allowed_payers/${allowedPayerId}`
}, callback);
}
};
}