cashfree-sdk
Version:
This module contains all methods to help you integrate cashfree's payout solution
165 lines (143 loc) • 4.23 kB
JavaScript
//Beneficiary main
var Utils = require("../../utils")
var PayoutConstants = require("../constants.js")
let Add = function(req) {
return new Promise(async (resolve, reject) => {
try {
await PayoutConstants.checkToken();
} catch (error) {
return resolve(error);
}
var requiredParams = ["beneId", "name", "email", "phone", "address1"];
var checkParams = Utils.checkKeysInObject(req, requiredParams)
if(checkParams !== true) {
return resolve (checkParams);
}
var path = "/payout/v1/addBeneficiary";
var obj = {};
obj.headers = {
"Content-Type": "application/json",
"Authorization": "Bearer "+PayoutConstants.BearerToken
};
obj.path = path;
obj.hostname = PayoutConstants.MPAEndpoint;
obj.data = req;
try {
response = await Utils.doPost(obj);
if (response.status == "ERROR" && response.subCode == "403") {
await PayoutConstants.authorize();
obj.headers.Authorization = "Bearer "+PayoutConstants.BearerToken;
response = Utils.doPost(obj);
}
return resolve(response);
} catch (error) {
return resolve(error);
}
});
}
let GetDetails = function(req){
return new Promise(async (resolve, reject) => {
try {
await PayoutConstants.checkToken();
} catch (error) {
return resolve(error);
}
var requiredParams = ["beneId"];
var checkParams = Utils.checkKeysInObject(req, requiredParams);
if (checkParams != true) {
return resolve (checkParams);
}
var path = "/payout/v1/getBeneficiary/"+req.beneId;
var obj = {};
obj.headers = {
"Content-Type": "application/json",
"Authorization": "Bearer "+PayoutConstants.BearerToken
};
obj.path = path;
obj.hostname = PayoutConstants.MPAEndpoint;
obj.data = req;
try {
response = await Utils.doGet(obj);
if (response.status == "ERROR" && response.subCode == "403") {
await PayoutConstants.authorize();
obj.headers.Authorization = "Bearer "+PayoutConstants.BearerToken;
response = Utils.doGet(obj);
}
return resolve(response);
} catch (error) {
return resolve(error);
}
});
}
let GetBeneId = function(req){
return new Promise(async (resolve, reject) => {
try {
await PayoutConstants.checkToken();
} catch (error) {
return resolve(error);
}
var requiredParams = ["bankAccount", "ifsc"];
var checkParams = Utils.checkKeysInObject(req, requiredParams);
if (checkParams != true) {
return resolve (checkParams);
}
var params = "?";
params += "bankAccount="+req.bankAccount;
params += "&ifsc="+req.ifsc;
var path = "/payout/v1/getBeneId"+params;
var obj = {};
obj.headers = {
"Content-Type": "application/json",
"Authorization": "Bearer "+PayoutConstants.BearerToken
};
obj.path = path;
obj.hostname = PayoutConstants.MPAEndpoint;
obj.data = req;
try {
response = await Utils.doGet(obj);
if (response.status == "ERROR" && response.subCode == "403") {
await PayoutConstants.authorize();
obj.headers.Authorization = "Bearer "+PayoutConstants.BearerToken;
response = Utils.doGet(obj);
}
return resolve(response);
} catch (error) {
return resolve(error);
}
});
}
let Remove = function(req) {
return new Promise(async (resolve, reject) => {
try {
await PayoutConstants.checkToken();
} catch (error) {
return resolve(error);
}
var requiredParams = ["beneId"];
var checkParams = Utils.checkKeysInObject(req, requiredParams);
if (checkParams != true) {
return resolve (checkParams);
}
var path = "/payout/v1/removeBeneficiary";
var obj = {};
obj.headers = {
"Content-Type": "application/json",
"Authorization": "Bearer "+PayoutConstants.BearerToken
};
obj.path = path;
obj.hostname = PayoutConstants.MPAEndpoint;
obj.data = req;
try {
response = await Utils.doPost(obj);
if (response.status == "ERROR" && response.subCode == "403") {
await PayoutConstants.authorize();
obj.headers.Authorization = "Bearer "+PayoutConstants.BearerToken;
response = Utils.doPost(obj);
}
return resolve(response);
} catch (error) {
return resolve(error);
}
});
}
module.exports = {Add, GetDetails, GetBeneId, Remove};