Skip to content

Commit e1f59bc

Browse files
Merge pull request #3 from aserediuk-epam/master
add paper check and paper check status transition endpoints
2 parents 3d64f5d + 3de2e73 commit e1f59bc

File tree

5 files changed

+1231
-0
lines changed

5 files changed

+1231
-0
lines changed

src/Hyperwallet/Hyperwallet.php

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
use Hyperwallet\Model\IProgramAware;
1111
use Hyperwallet\Model\Payment;
1212
use Hyperwallet\Model\PaymentStatusTransition;
13+
use Hyperwallet\Model\PaperCheck;
14+
use Hyperwallet\Model\PaperCheckStatusTransition;
1315
use Hyperwallet\Model\PrepaidCard;
1416
use Hyperwallet\Model\PrepaidCardStatusTransition;
1517
use Hyperwallet\Model\Program;
@@ -129,6 +131,197 @@ public function listUsers($options = array()) {
129131
});
130132
}
131133

134+
//--------------------------------------
135+
// Paper Checks
136+
//--------------------------------------
137+
138+
/**
139+
* Create a paper check
140+
*
141+
* @param string $userToken The user token
142+
* @param PaperCheck $paperCheck The paper check data
143+
* @return PaperCheck
144+
*
145+
* @throws HyperwalletArgumentException
146+
* @throws HyperwalletApiException
147+
*/
148+
public function createPaperCheck($userToken, PaperCheck $paperCheck) {
149+
if (empty($userToken)) {
150+
throw new HyperwalletArgumentException('userToken is required!');
151+
}
152+
$body = $this->client->doPost('/rest/v3/users/{user-token}/paper-checks', array('user-token' => $userToken), $paperCheck, array());
153+
return new PaperCheck($body);
154+
}
155+
156+
/**
157+
* Get a paper check
158+
*
159+
* @param string $userToken The user token
160+
* @param string $paperCheckToken The paper check token
161+
* @return PaperCheck
162+
*
163+
* @throws HyperwalletArgumentException
164+
* @throws HyperwalletApiException
165+
*/
166+
public function getPaperCheck($userToken, $paperCheckToken) {
167+
if (empty($userToken)) {
168+
throw new HyperwalletArgumentException('userToken is required!');
169+
}
170+
if (empty($paperCheckToken)) {
171+
throw new HyperwalletArgumentException('paperCheckToken is required!');
172+
}
173+
$body = $this->client->doGet('/rest/v3/users/{user-token}/paper-checks/{paper-check-token}', array(
174+
'user-token' => $userToken,
175+
'paper-check-token' => $paperCheckToken
176+
), array());
177+
return new PaperCheck($body);
178+
}
179+
180+
/**
181+
* Update a paper check
182+
*
183+
* @param string $userToken The user token
184+
* @param PaperCheck $paperCheck The paper check data
185+
* @return PaperCheck
186+
*
187+
* @throws HyperwalletArgumentException
188+
* @throws HyperwalletApiException
189+
*/
190+
public function updatePaperCheck($userToken, PaperCheck $paperCheck) {
191+
if (empty($userToken)) {
192+
throw new HyperwalletArgumentException('userToken is required!');
193+
}
194+
if (!$paperCheck->getToken()) {
195+
throw new HyperwalletArgumentException('token is required!');
196+
}
197+
$body = $this->client->doPut('/rest/v3/users/{user-token}/paper-checks/{paper-check-token}', array(
198+
'user-token' => $userToken,
199+
'paper-check-token' => $paperCheck->getToken()
200+
), $paperCheck, array());
201+
return new PaperCheck($body);
202+
}
203+
204+
/**
205+
* List all paper checks
206+
*
207+
* @param string $userToken The user token
208+
* @param array $options The query parameters to send
209+
* @return ListResponse
210+
*
211+
* @throws HyperwalletArgumentException
212+
* @throws HyperwalletApiException
213+
*/
214+
public function listPaperChecks($userToken, $options = array()) {
215+
if (empty($userToken)) {
216+
throw new HyperwalletArgumentException('userToken is required!');
217+
}
218+
$body = $this->client->doGet('/rest/v3/users/{user-token}/paper-checks', array('user-token' => $userToken), $options);
219+
return new ListResponse($body, function($entry) {
220+
return new PaperCheck($entry);
221+
});
222+
}
223+
224+
/**
225+
* Deactivate a paper check
226+
*
227+
* @param string $userToken The user token
228+
* @param string $paperCheckToken The paper check token
229+
* @return PaperCheckStatusTransition
230+
*
231+
* @throws HyperwalletArgumentException
232+
* @throws HyperwalletApiException
233+
*/
234+
public function deactivatePaperCheck($userToken, $paperCheckToken) {
235+
$transition = new PaperCheckStatusTransition();
236+
$transition->setTransition(PaperCheckStatusTransition::TRANSITION_DE_ACTIVATED);
237+
238+
return $this->createPaperCheckStatusTransition($userToken, $paperCheckToken, $transition);
239+
}
240+
241+
/**
242+
* Create a paper check status transition
243+
*
244+
* @param string $userToken The user token
245+
* @param string $paperCheckToken The paper check token
246+
* @param PaperCheckStatusTransition $transition The status transition
247+
* @return PaperCheckStatusTransition
248+
*
249+
* @throws HyperwalletArgumentException
250+
* @throws HyperwalletApiException
251+
*/
252+
public function createPaperCheckStatusTransition($userToken, $paperCheckToken, PaperCheckStatusTransition $transition) {
253+
if (empty($userToken)) {
254+
throw new HyperwalletArgumentException('userToken is required!');
255+
}
256+
if (empty($paperCheckToken)) {
257+
throw new HyperwalletArgumentException('paperCheckToken is required!');
258+
}
259+
260+
$body = $this->client->doPost('/rest/v3/users/{user-token}/paper-checks/{paper-check-token}/status-transitions', array(
261+
'user-token' => $userToken,
262+
'paper-check-token' => $paperCheckToken
263+
), $transition, array());
264+
return new PaperCheckStatusTransition($body);
265+
}
266+
267+
/**
268+
* Get a paper check status transition
269+
*
270+
* @param string $userToken The user token
271+
* @param string $paperCheckToken The paper check token
272+
* @param string $statusTransitionToken The status transition token
273+
* @return PaperCheckStatusTransition
274+
*
275+
* @throws HyperwalletArgumentException
276+
* @throws HyperwalletApiException
277+
*/
278+
public function getPaperCheckStatusTransition($userToken, $paperCheckToken, $statusTransitionToken) {
279+
if (empty($userToken)) {
280+
throw new HyperwalletArgumentException('userToken is required!');
281+
}
282+
if (empty($paperCheckToken)) {
283+
throw new HyperwalletArgumentException('paperCheckToken is required!');
284+
}
285+
if (empty($statusTransitionToken)) {
286+
throw new HyperwalletArgumentException('statusTransitionToken is required!');
287+
}
288+
289+
$body = $this->client->doGet('/rest/v3/users/{user-token}/paper-checks/{paper-check-token}/status-transitions/{status-transition-token}', array(
290+
'user-token' => $userToken,
291+
'paper-check-token' => $paperCheckToken,
292+
'status-transition-token' => $statusTransitionToken
293+
), array());
294+
return new PaperCheckStatusTransition($body);
295+
}
296+
297+
/**
298+
* List all paper check status transitions
299+
*
300+
* @param string $userToken The user token
301+
* @param string $paperCheckToken The paper check token
302+
* @param array $options The query parameters
303+
* @return ListResponse
304+
*
305+
* @throws HyperwalletArgumentException
306+
* @throws HyperwalletApiException
307+
*/
308+
public function listPaperCheckStatusTransitions($userToken, $paperCheckToken, array $options = array()) {
309+
if (empty($userToken)) {
310+
throw new HyperwalletArgumentException('userToken is required!');
311+
}
312+
if (empty($paperCheckToken)) {
313+
throw new HyperwalletArgumentException('paperCheckToken is required!');
314+
}
315+
316+
$body = $this->client->doGet('/rest/v3/users/{user-token}/paper-checks/{paper-check-token}/status-transitions', array(
317+
'user-token' => $userToken,
318+
'paper-check-token' => $paperCheckToken
319+
), $options);
320+
return new ListResponse($body, function($entry) {
321+
return new PaperCheckStatusTransition($entry);
322+
});
323+
}
324+
132325
//--------------------------------------
133326
// Prepaid Cards
134327
//--------------------------------------

0 commit comments

Comments
 (0)