UNPKG

node-mangopay

Version:

mangopay package for payment implementation with nodejs

289 lines (242 loc) 8.15 kB
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; };