1: <?php
2:
3: /**
4: * Get information about a subscription
5: * @see https://app.syspay.com/bundles/emiuser/doc/merchant_subscription.html#get-subscription-information
6: */
7: class Syspay_Merchant_SubscriptionInfoRequest extends Syspay_Merchant_Request
8: {
9: const METHOD = 'GET';
10: const PATH = '/api/v1/merchant/subscription/%d';
11:
12: /**
13: * @var integer
14: */
15: private $subscriptionId;
16:
17: public function __construct($subscriptionId = null)
18: {
19: if (null !== $subscriptionId) {
20: $this->setSubscriptionId($subscriptionId);
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->subscriptionId);
38: }
39:
40: /**
41: * Gets the value of subscriptionId.
42: *
43: * @return integer
44: */
45: public function getSubscriptionId()
46: {
47: return $this->subscriptionId;
48: }
49:
50: /**
51: * Sets the value of subscriptionId.
52: *
53: * @param integer $subscriptionId the subscriptionId
54: *
55: * @return self
56: */
57: public function setSubscriptionId($subscriptionId)
58: {
59: $this->subscriptionId = $subscriptionId;
60:
61: return $this;
62: }
63:
64: /**
65: * {@inheritDoc}
66: */
67: public function buildResponse(stdClass $response)
68: {
69: if (!isset($response->subscription)) {
70: throw new Syspay_Merchant_UnexpectedResponseException(
71: 'Unable to retrieve "subscription" data from response',
72: $response
73: );
74: }
75:
76: $subscription = Syspay_Merchant_Entity_Subscription::buildFromResponse($response->subscription);
77:
78: if (isset($response->redirect) && !empty($response->redirect)) {
79: $subscription->setRedirect($response->redirect);
80: }
81:
82: return $subscription;
83: }
84: }
85: