1: <?php
2:
3: /**
4: * Get information about a billing agreement
5: * @see https://app.syspay.com/bundles/emiuser/doc/merchant_api.html#get-billing-agreement-information
6: */
7: class Syspay_Merchant_BillingAgreementInfoRequest extends Syspay_Merchant_Request
8: {
9: const METHOD = 'GET';
10: const PATH = '/api/v1/merchant/billing-agreement/%d';
11:
12: /**
13: * @var integer
14: */
15: private $billingAgreementId;
16:
17: public function __construct($billingAgreementId = null)
18: {
19: if (null !== $billingAgreementId) {
20: $this->setBillingAgreementId($billingAgreementId);
21: }
22: }
23:
24: /**
25: * {@inheritDoc}
26: */
27: public function getMethod()
28: {
29: return self::METHOD;
30: }
31:
32: /**
33: * {@inheritDoc}
34: */
35: public function getPath()
36: {
37: return sprintf(self::PATH, $this->billingAgreementId);
38: }
39:
40: /**
41: * Gets the value of billingAgreementId.
42: *
43: * @return integer
44: */
45: public function getBillingAgreementId()
46: {
47: return $this->billingAgreementId;
48: }
49:
50: /**
51: * Sets the value of billingAgreementId.
52: *
53: * @param integer $billingAgreementId the billingAgreementId
54: *
55: * @return self
56: */
57: public function setBillingAgreementId($billingAgreementId)
58: {
59: $this->billingAgreementId = $billingAgreementId;
60:
61: return $this;
62: }
63:
64: /**
65: * {@inheritDoc}
66: */
67: public function buildResponse(stdClass $response)
68: {
69: if (!isset($response->billing_agreement)) {
70: throw new Syspay_Merchant_UnexpectedResponseException(
71: 'Unable to retrieve "billing_agreement" data from response',
72: $response
73: );
74: }
75:
76: $billingAgreement = Syspay_Merchant_Entity_BillingAgreement::buildFromResponse($response->billing_agreement);
77:
78: return $billingAgreement;
79: }
80: }
81: