commercetools-sdk-php-v2
The commercetools platform, import-api and PHP sdks generated from our api reference.
Loading...
Searching...
No Matches
ByProjectKeyPost.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
35class ByProjectKeyPost extends ApiRequest implements Conflicting
36{
41 public function __construct(string $projectKey, $body = null, array $headers = [], ClientInterface $client = null)
42 {
43 $uri = str_replace(['{projectKey}'], [$projectKey], '{projectKey}');
44 parent::__construct($client, 'POST', $uri, $headers, is_object($body) || is_array($body) ? json_encode($body) : $body);
45 }
46
52 public function mapFromResponse(?ResponseInterface $response, string $resultType = null)
53 {
54 if (is_null($response)) {
55 return null;
56 }
57 if (is_null($resultType)) {
58 switch ($response->getStatusCode()) {
59 case '200':
60 $resultType = ProjectModel::class;
61
62 break;
63 case '409':
64 $resultType = ErrorResponseModel::class;
65
66 break;
67 default:
68 $resultType = JsonObjectModel::class;
69
70 break;
71 }
72 }
73
74 return $resultType::of($this->responseData($response));
75 }
76
83 public function execute(array $options = [], string $resultType = null)
84 {
85 try {
86 $response = $this->send($options);
87 } catch (ServerException $e) {
88 $response = $e->getResponse();
89 $e = ExceptionFactory::createServerException($e, $this, $response, $this->mapFromResponse($response, $resultType));
90 throw $e;
91 } catch (ClientException $e) {
92 $response = $e->getResponse();
93 $e = ExceptionFactory::createClientException($e, $this, $response, $this->mapFromResponse($response, $resultType));
94 throw $e;
95 }
96
97 return $this->mapFromResponse($response, $resultType);
98 }
99
106 public function executeAsync(array $options = [], string $resultType = null)
107 {
108 return $this->sendAsync($options)->then(
109 function (ResponseInterface $response) use ($resultType) {
110 return $this->mapFromResponse($response, $resultType);
111 },
112 function (RequestException $e) use ($resultType) {
113 $response = $e->getResponse();
114 if ($e instanceof ServerException) {
115 $e = ExceptionFactory::createServerException($e, $this, $response, $this->mapFromResponse($response, $resultType));
116 }
117 if ($e instanceof ClientException) {
118 $e = ExceptionFactory::createClientException($e, $this, $response, $this->mapFromResponse($response, $resultType));
119 }
120 throw $e;
121 }
122 );
123 }
124}
executeAsync(array $options=[], string $resultType=null)
__construct(string $projectKey, $body=null, array $headers=[], ClientInterface $client=null)
mapFromResponse(?ResponseInterface $response, string $resultType=null)
execute(array $options=[], string $resultType=null)
responseData(ResponseInterface $response)