1
1
import ParentedResource from '../../ParentedResource' ;
2
2
import { MandateData } from '../../../data/customers/mandates/data' ;
3
3
import Mandate , { injectPrototypes } from '../../../data/customers/mandates/Mandate' ;
4
- import { CreateParameters , ContextParameters , ListParameters } from './parameters' ;
4
+ import { CreateParameters , GetParameters , ListParameters , RevokeParameters } from './parameters' ;
5
5
import checkId from '../../../plumbing/checkId' ;
6
6
import ApiError from '../../../errors/ApiError' ;
7
7
import List from '../../../data/list/List' ;
8
+ import renege from '../../../plumbing/renege' ;
9
+ import Callback from '../../../types/Callback' ;
8
10
9
11
/**
10
12
* The `customers_mandates` resource
@@ -81,13 +83,16 @@ export default class CustomersMandatesResource extends ParentedResource<MandateD
81
83
*
82
84
* @public ✓ This method is part of the public API
83
85
*/
84
- public create ( parameters : CreateParameters ) : Promise < Mandate > {
86
+ public create ( parameters : CreateParameters ) : Promise < Mandate > ;
87
+ public create ( parameters : CreateParameters , callback : Callback < Mandate > ) : void ;
88
+ public create ( parameters : CreateParameters ) {
89
+ if ( renege ( this , this . create , ...arguments ) ) return ;
85
90
const customerId = this . getParentId ( parameters . customerId ) ;
86
91
if ( ! checkId ( customerId , 'customer' ) ) {
87
92
throw new ApiError ( 'The customer id is invalid' ) ;
88
93
}
89
94
const { customerId : _ , ...data } = parameters ;
90
- return this . network . post ( this . getResourceUrl ( customerId ) , data ) ;
95
+ return this . network . post ( this . getResourceUrl ( customerId ! ) , data ) ;
91
96
}
92
97
93
98
/**
@@ -106,7 +111,10 @@ export default class CustomersMandatesResource extends ParentedResource<MandateD
106
111
*
107
112
* @public ✓ This method is part of the public API
108
113
*/
109
- public get ( id : string , parameters : ContextParameters ) : Promise < Mandate > {
114
+ public get ( id : string , parameters : GetParameters ) : Promise < Mandate > ;
115
+ public get ( id : string , parameters : GetParameters , callback : Callback < Mandate > ) : void ;
116
+ public get ( id : string , parameters : GetParameters ) {
117
+ if ( renege ( this , this . get , ...arguments ) ) return ;
110
118
if ( ! checkId ( id , 'mandate' ) ) {
111
119
throw new ApiError ( 'The customers_mandate id is invalid' ) ;
112
120
}
@@ -116,7 +124,7 @@ export default class CustomersMandatesResource extends ParentedResource<MandateD
116
124
throw new ApiError ( 'The customer id is invalid' ) ;
117
125
}
118
126
const { customerId : _ , ...query } = parameters || { } ;
119
- return this . network . get ( `${ this . getResourceUrl ( customerId ) } /${ id } ` , query ) ;
127
+ return this . network . get ( `${ this . getResourceUrl ( customerId ! ) } /${ id } ` , query ) ;
120
128
}
121
129
122
130
/**
@@ -134,15 +142,18 @@ export default class CustomersMandatesResource extends ParentedResource<MandateD
134
142
*
135
143
* @public ✓ This method is part of the public API
136
144
*/
137
- public async list ( parameters : ListParameters ) : Promise < List < Mandate > > {
145
+ public list ( parameters : ListParameters ) : Promise < List < Mandate > > ;
146
+ public list ( parameters : ListParameters , callback : Callback < List < Mandate > > ) : void ;
147
+ public list ( parameters : ListParameters ) {
148
+ if ( renege ( this , this . list , ...arguments ) ) return ;
138
149
// parameters || {} is used here, because in case withParent is used, parameters could be omitted.
139
150
const customerId = this . getParentId ( ( parameters || { } ) . customerId ) ;
140
151
if ( ! checkId ( customerId , 'customer' ) ) {
141
152
throw new ApiError ( 'The customer id is invalid' ) ;
142
153
}
143
154
const { customerId : _ , ...query } = parameters || { } ;
144
- const result = await this . network . list ( this . getResourceUrl ( customerId ) , 'mandates' , query ) ;
145
- return this . injectPaginationHelpers ( result , this . list , parameters || { } ) ;
155
+ return this . network . list ( this . getResourceUrl ( customerId ! ) , 'mandates' , query )
156
+ . then ( result => this . injectPaginationHelpers ( result , this . list , parameters || { } ) ) ;
146
157
}
147
158
148
159
/**
@@ -161,7 +172,10 @@ export default class CustomersMandatesResource extends ParentedResource<MandateD
161
172
*
162
173
* @public ✓ This method is part of the public API
163
174
*/
164
- public revoke ( id : string , parameters : ContextParameters ) : Promise < true > {
175
+ public revoke ( id : string , parameters : RevokeParameters ) : Promise < true > ;
176
+ public revoke ( id : string , parameters : RevokeParameters , callback : Callback < true > ) : void ;
177
+ public revoke ( id : string , parameters : RevokeParameters ) {
178
+ if ( renege ( this , this . revoke , ...arguments ) ) return ;
165
179
if ( ! checkId ( id , 'mandate' ) ) {
166
180
throw new ApiError ( 'The customers_mandate id is invalid' ) ;
167
181
}
@@ -171,6 +185,6 @@ export default class CustomersMandatesResource extends ParentedResource<MandateD
171
185
throw new ApiError ( 'The customer is invalid' ) ;
172
186
}
173
187
const { customerId : _ , ...query } = parameters || { } ;
174
- return this . network . delete ( `${ this . getResourceUrl ( customerId ) } /${ id } ` ) as Promise < true > ;
188
+ return this . network . delete ( `${ this . getResourceUrl ( customerId ! ) } /${ id } ` ) as Promise < true > ;
175
189
}
176
190
}
0 commit comments