forked from Mangopay/mangopay2-nodejs-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBankingAliases.js
137 lines (119 loc) · 4.48 KB
/
BankingAliases.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/**
* @module BankingAliases
*/
var Service = require('../service');
var BankingAlias = require('../models/BankingAlias');
var BankingAliasIBAN = require('../models/BankingAliasIBAN');
var BankingAliases = Service.extend({
/**
* Create a banking alias
* @param {Object} bankingAlias Banking Alias Data
* @param {Function} callback Callback function
* @param {Object} options Request options
* @return {Object} Request promise
*/
create: function(bankingAlias, callback, options) {
var bankingAliasKey = this.getBankingAliasKey(bankingAlias);
var bankingAliasClass = this.getBankingAliasClass(bankingAlias);
options = this._api._getOptions(callback, options, {
data: bankingAlias,
dataClass: bankingAliasClass,
path: {
walletId: bankingAlias.WalletId
}
});
return this._api.method('banking_aliases_' + bankingAliasKey + '_create', callback, options);
},
/**
* Get a banking alias
* @param {number} bankingAliasId Banking Alias Id
* @param {Function} callback Callback function
* @param {Object} options Request options
* @return {Object} Request promise
*/
get: function(bankingAliasId, callback, options) {
options = this._api._getOptions(callback, options, {
path: {
id: bankingAliasId
},
dataClass: BankingAlias
});
return this._api.method('banking_aliases_get', callback, options);
},
/**
* Get all banking aliases
* @param {Number} walletId Wallet Id
* @param {Function} callback Callback function
* @param {Object} options Request options
* @return {Object} Request promise
*/
getAll: function(walletId, callback, options) {
options = this._api._getOptions(callback, options, {
path: {
walletId: walletId
},
dataClass: BankingAlias
});
return this._api.method('banking_aliases_all', callback, options);
},
/**
* Update banking alias
* @param {number} bankingAliasId Banking Alias Id
* @param {Function} callback Callback function
* @param {Object} options Request options
* @return {Object} Request promise
*/
update: function(bankingAlias, callback, options) {
options = this._api._getOptions(callback, options, {
path: {
id: bankingAlias.Id
},
data: bankingAlias,
dataClass: BankingAlias
});
return this._api.method('banking_aliases_update', callback, options);
},
/**
* Deactivate banking alias
* @param {number} bankingAliasId Banking Alias Id
* @param {Function} callback Callback function
* @param {Object} options Request options
* @return {Object} Request promise
*/
deactivate: function(bankingAliasId, callback, options) {
var bankingAlias = new BankingAlias({
Id: bankingAliasId,
Active: false
});
return this.update(bankingAlias, callback, options);
},
/**
* Activate banking alias
* @param {number} bankingAliasId Banking Alias Id
* @param {Function} callback Callback function
* @param {Object} options Request options
* @return {Object} Request promise
*/
activate: function(bankingAliasId, callback, options) {
var bankingAlias = new BankingAlias({
Id: bankingAliasId,
Active: true
});
return this.update(bankingAlias, callback, options);
},
getBankingAliasKey: function(bankingAlias) {
if (bankingAlias.Type) {
return bankingAlias.Type.toLowerCase();
}
if (bankingAlias instanceof BankingAliasIBAN) return 'iban';
throw new Error('BankingAlias needs to have a Type');
},
getBankingAliasClass: function(bankingAlias) {
if (bankingAlias.Type) {
if (bankingAlias.Type === 'IBAN') return BankingAliasIBAN;
}
if (bankingAlias instanceof BankingAliasIBAN) return BankingAliasIBAN;
throw new Error('BankingAlias needs to have a Type');
}
});
module.exports = BankingAliases;