node-mangopay
Version:
mangopay package for payment implementation with nodejs
289 lines (242 loc) • 8.15 kB
JavaScript
var utils=require('./utils');
module.exports = function (token) {
var module = {};
/********Create user function start************/
/*******Create natural user********/
module.createNaturalUser = function (req,cb) {
token["method"]="/users/natural/"
utils.makeRequestPOST(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*******update natural user********/
module.updateNaturalUser = function (req,cb) {
token["method"]="/users/natural/"+req.mangoPayId
utils.makeRequestPUT(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*******view user detail********/
module.viewUser = function (req,cb) {
token["method"]="/users/"+req.mangoPayId
utils.makeRequestGET(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*******view user detail********/
module.listUsers = function (req,cb) {
token["method"]="/users/"
utils.makeRequestGET(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*******Create natural user********/
module.createLegalUser = function (req,cb) {
token["method"]="/users/legal/"
utils.makeRequestPOST(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*******update natural user********/
module.updateLegalUser = function (req,cb) {
token["method"]="/users/legal/"+req.legalUserId
utils.makeRequestPUT(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/********Create user function ended************/
/*********User wallet functions start**************/
/*******Create wallet********/
module.createWallet = function (req,cb) {
token["method"]="/wallets/"
utils.makeRequestPOST(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*******view wallet********/
module.viewWallet = function (req,cb) {
token["method"]="/wallets/"+req.walletId
utils.makeRequestGET(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*******update wallet********/
module.updateWallet = function (req,cb) {
token["method"]="/wallets/"+req.walletId
utils.makeRequestPUT(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*******list wallets********/
module.listWallets = function (req,cb) {
token["method"]="/users/"+req.mangoPayId+"/wallets/"
utils.makeRequestGET(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*********User wallet functions end**************/
/***********Create card function*****************/
/*******Create card Auto********/
module.createCardAuto = function (req,cb) {
token["method"]="/cardregistrations/"
var data={
"Tag": req.Tag,
"UserId": req.mangoPayId,
"Currency": req.currency,
"CardType": req.cardType
}
utils.makeRequestPOST(data,token,function(err,cardRegistrationData){
if(err)
cb(err);
else
{
var obj={
data: cardRegistrationData.PreregistrationData,
accessKeyRef: cardRegistrationData.AccessKey,
cardNumber: req.cardNumber,
cardExpirationDate: req.cardExpirationDate.replace('/',''),
cardCvx: req.cardCvx
}
utils.requestApi(obj,cardRegistrationData.CardRegistrationURL,function(err,result){
if(err)
cb(err);
else
{
token["method"]="/CardRegistrations/"+cardRegistrationData.Id;
data={
RegistrationData:result,
"Tag":"final card added"
}
utils.makeRequestPOST(data,token,function(err,cardData){
if(err)
cb(err);
else
cb(null,cardData);
});
}
});
}
});
};
/*******view card********/
module.viewCard = function (req,cb) {
token["method"]="/cards/"+req.cardId;
utils.makeRequestGET(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*******view card********/
module.userCards = function (req,cb) {
token["method"]="/users/"+req.mangoPayId+"/cards/";
utils.makeRequestGET(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*******view card********/
module.deactivateCard = function (req,cb) {
token["method"]="/cards/"+req.cardId+"/";
utils.makeRequestPUT({Active:req.active},token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/***********Create card function end*****************/
/***********Create payin function*****************/
/*******Create payin********/
module.cardDirectPayin = function (req,cb) {
token["method"]="/payins/card/direct/"
utils.makeRequestPOST(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/***********payin function end*****************/
/***********Create transfer function*****************/
/*******Create transfer wallet to wallet********/
module.transferWallet = function (req,cb) {
token["method"]="/transfers/"
utils.makeRequestPOST(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/***********Create transfer function end*****************/
/***********Bank account function*****************/
/*******Create iban bank account********/
module.addBankIban = function (req,cb) {
token["method"]="/users/"+req.mangopayId+"/bankaccounts/iban/";
delete req.mangopayId;
utils.makeRequestPOST(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/*******view iban bank account********/
module.viewBank = function (req,cb) {
token["method"]='/users/'+req.mangopayId+'/bankaccounts/'+req.bankId;
utils.makeRequestGET(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/***********Bank account function end*****************/
/***********Transfer money to bank account*****************/
/*******bankwire payout********/
module.bankPayout = function (req,cb) {
token["method"]="/payouts/bankwire/";
utils.makeRequestPOST(req,token,function(err,result){
if(err)
cb(err);
else
cb(null,result);
});
};
/***********Transfer money to bank account*****************/
return module;
};