commercetools-sdk-php-v2
The commercetools platform, import-api and PHP sdks generated from our api reference.
Loading...
Searching...
No Matches
ByProjectKeySubscriptionsGet.php
1<?php
2
3declare(strict_types=1);
10
22use GuzzleHttp\ClientInterface;
23use GuzzleHttp\Exception\ClientException;
24use GuzzleHttp\Exception\RequestException;
25use GuzzleHttp\Exception\ServerException;
26use GuzzleHttp\Promise\PromiseInterface;
27
28use Psr\Http\Message\ResponseInterface;
29
40{
45 public function __construct(string $projectKey, $body = null, array $headers = [], ClientInterface $client = null)
46 {
47 $uri = str_replace(['{projectKey}'], [$projectKey], '{projectKey}/subscriptions');
48 parent::__construct($client, 'GET', $uri, $headers, is_object($body) || is_array($body) ? json_encode($body) : $body);
49 }
50
56 public function mapFromResponse(?ResponseInterface $response, string $resultType = null)
57 {
58 if (is_null($response)) {
59 return null;
60 }
61 if (is_null($resultType)) {
62 switch ($response->getStatusCode()) {
63 case '200':
64 $resultType = SubscriptionPagedQueryResponseModel::class;
65
66 break;
67 case '400':
68 $resultType = ErrorResponseModel::class;
69
70 break;
71 case '401':
72 $resultType = ErrorResponseModel::class;
73
74 break;
75 case '403':
76 $resultType = ErrorResponseModel::class;
77
78 break;
79 case '500':
80 $resultType = ErrorResponseModel::class;
81
82 break;
83 case '502':
84 $resultType = ErrorResponseModel::class;
85
86 break;
87 case '503':
88 $resultType = ErrorResponseModel::class;
89
90 break;
91 default:
92 $resultType = JsonObjectModel::class;
93
94 break;
95 }
96 }
97
98 return $resultType::of($this->responseData($response));
99 }
100
107 public function execute(array $options = [], string $resultType = null)
108 {
109 try {
110 $response = $this->send($options);
111 } catch (ServerException $e) {
112 $response = $e->getResponse();
113 $e = ExceptionFactory::createServerException($e, $this, $response, $this->mapFromResponse($response, $resultType));
114 throw $e;
115 } catch (ClientException $e) {
116 $response = $e->getResponse();
117 $e = ExceptionFactory::createClientException($e, $this, $response, $this->mapFromResponse($response, $resultType));
118 throw $e;
119 }
120
121 return $this->mapFromResponse($response, $resultType);
122 }
123
130 public function executeAsync(array $options = [], string $resultType = null)
131 {
132 return $this->sendAsync($options)->then(
133 function (ResponseInterface $response) use ($resultType) {
134 return $this->mapFromResponse($response, $resultType);
135 },
136 function (RequestException $e) use ($resultType) {
137 $response = $e->getResponse();
138 if ($e instanceof ServerException) {
139 $e = ExceptionFactory::createServerException($e, $this, $response, $this->mapFromResponse($response, $resultType));
140 }
141 if ($e instanceof ClientException) {
142 $e = ExceptionFactory::createClientException($e, $this, $response, $this->mapFromResponse($response, $resultType));
143 }
144 throw $e;
145 }
146 );
147 }
148
154 {
155 return $this->withQueryParam('sort', $sort);
156 }
157
163 {
164 return $this->withQueryParam('limit', $limit);
165 }
166
171 public function withOffset($offset): ByProjectKeySubscriptionsGet
172 {
173 return $this->withQueryParam('offset', $offset);
174 }
175
180 public function withWithTotal($withTotal): ByProjectKeySubscriptionsGet
181 {
182 return $this->withQueryParam('withTotal', $withTotal);
183 }
184
190 {
191 return $this->withQueryParam('where', $where);
192 }
193
198 public function withPredicateVar(string $varName, $predicateVar): ByProjectKeySubscriptionsGet
199 {
200 return $this->withQueryParam(sprintf('var.%s', $varName), $predicateVar);
201 }
202}
__construct(string $projectKey, $body=null, array $headers=[], ClientInterface $client=null)
mapFromResponse(?ResponseInterface $response, string $resultType=null)
responseData(ResponseInterface $response)
withQueryParam(string $parameterName, $value)