diff --git a/changes.md b/changes.md index fcde1c31f59..e3e21373500 100644 --- a/changes.md +++ b/changes.md @@ -217,6 +217,7 @@ - added type `RecurringOrderCustomFieldRemovedMessage` - added type `RecurringOrderCustomTypeRemovedMessage` - added type `RecurringOrderCustomTypeSetMessage` +- added type `RecurringOrderDeletedMessage` - added type `RecurringOrderKeySetMessage` - added type `RecurringOrderScheduleSetMessage` - added type `RecurringOrderStartsAtSetMessage` @@ -265,6 +266,7 @@ - added type `RecurringOrderCustomFieldRemovedMessagePayload` - added type `RecurringOrderCustomTypeRemovedMessagePayload` - added type `RecurringOrderCustomTypeSetMessagePayload` +- added type `RecurringOrderDeletedMessagePayload` - added type `RecurringOrderKeySetMessagePayload` - added type `RecurringOrderScheduleSetMessagePayload` - added type `RecurringOrderStartsAtSetMessagePayload` @@ -466,9 +468,11 @@ - added method `$apiRoot->withProjectKey()->recurringOrders()->withId()->get()` - added method `$apiRoot->withProjectKey()->recurringOrders()->withId()->head()` - added method `$apiRoot->withProjectKey()->recurringOrders()->withId()->post()` +- added method `$apiRoot->withProjectKey()->recurringOrders()->withId()->delete()` - added method `$apiRoot->withProjectKey()->recurringOrders()->withKey()->get()` - added method `$apiRoot->withProjectKey()->recurringOrders()->withKey()->head()` - added method `$apiRoot->withProjectKey()->recurringOrders()->withKey()->post()` +- added method `$apiRoot->withProjectKey()->recurringOrders()->withKey()->delete()` - added method `$apiRoot->withProjectKey()->recurrencePolicies()->withKey()->get()` - added method `$apiRoot->withProjectKey()->recurrencePolicies()->withKey()->head()` - added method `$apiRoot->withProjectKey()->recurrencePolicies()->withKey()->post()` diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyRecurringOrdersByIDTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyRecurringOrdersByIDTest.php index feba0183a8f..ba1594d7e55 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyRecurringOrdersByIDTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyRecurringOrdersByIDTest.php @@ -24,6 +24,7 @@ * @covers \Commercetools\Api\Client\Resource\ByProjectKeyRecurringOrdersByIDGet * @covers \Commercetools\Api\Client\Resource\ByProjectKeyRecurringOrdersByIDHead * @covers \Commercetools\Api\Client\Resource\ByProjectKeyRecurringOrdersByIDPost + * @covers \Commercetools\Api\Client\Resource\ByProjectKeyRecurringOrdersByIDDelete * @covers \Commercetools\Api\Client\Resource\ResourceByProjectKeyRecurringOrdersByID */ class ResourceByProjectKeyRecurringOrdersByIDTest extends TestCase @@ -148,6 +149,53 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 'post', 'test_projectKey/recurring-orders/test_ID', + ], + 'ByProjectKeyRecurringOrdersByIDDelete_withDataErasure' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey('test_projectKey') + ->recurringOrders() + ->withId('test_ID') + ->delete() + ->withDataErasure('dataErasure'); + }, + 'delete', + 'test_projectKey/recurring-orders/test_ID?dataErasure=dataErasure', + ], + 'ByProjectKeyRecurringOrdersByIDDelete_withVersion' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey('test_projectKey') + ->recurringOrders() + ->withId('test_ID') + ->delete() + ->withVersion('version'); + }, + 'delete', + 'test_projectKey/recurring-orders/test_ID?version=version', + ], + 'ByProjectKeyRecurringOrdersByIDDelete_withExpand' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey('test_projectKey') + ->recurringOrders() + ->withId('test_ID') + ->delete() + ->withExpand('expand'); + }, + 'delete', + 'test_projectKey/recurring-orders/test_ID?expand=expand', + ], + 'ByProjectKeyRecurringOrdersByIDDelete' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("test_projectKey") + ->recurringOrders() + ->withId("test_ID") + ->delete(); + }, + 'delete', + 'test_projectKey/recurring-orders/test_ID', ] ]; } @@ -187,6 +235,15 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withId("ID") ->post(null); } + ], + 'ByProjectKeyRecurringOrdersByIDDelete' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); + } ] ]; } @@ -473,6 +530,106 @@ function (ApiRequestBuilder $builder): RequestInterface { ->post(null); }, 599 + ], + 'ByProjectKeyRecurringOrdersByIDDelete_200' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); + }, + 200 + ], + 'ByProjectKeyRecurringOrdersByIDDelete_409' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); + }, + 409 + ], + 'ByProjectKeyRecurringOrdersByIDDelete_400' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); + }, + 400 + ], + 'ByProjectKeyRecurringOrdersByIDDelete_401' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); + }, + 401 + ], + 'ByProjectKeyRecurringOrdersByIDDelete_403' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); + }, + 403 + ], + 'ByProjectKeyRecurringOrdersByIDDelete_404' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); + }, + 404 + ], + 'ByProjectKeyRecurringOrdersByIDDelete_500' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); + }, + 500 + ], + 'ByProjectKeyRecurringOrdersByIDDelete_502' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); + }, + 502 + ], + 'ByProjectKeyRecurringOrdersByIDDelete_503' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); + }, + 503 + ], + 'ByProjectKeyRecurringOrdersByIDDelete_599' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); + }, + 599 ] ]; } diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyRecurringOrdersKeyByKeyTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyRecurringOrdersKeyByKeyTest.php index 488bd9b7bfa..528d1170021 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyRecurringOrdersKeyByKeyTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyRecurringOrdersKeyByKeyTest.php @@ -24,6 +24,7 @@ * @covers \Commercetools\Api\Client\Resource\ByProjectKeyRecurringOrdersKeyByKeyGet * @covers \Commercetools\Api\Client\Resource\ByProjectKeyRecurringOrdersKeyByKeyHead * @covers \Commercetools\Api\Client\Resource\ByProjectKeyRecurringOrdersKeyByKeyPost + * @covers \Commercetools\Api\Client\Resource\ByProjectKeyRecurringOrdersKeyByKeyDelete * @covers \Commercetools\Api\Client\Resource\ResourceByProjectKeyRecurringOrdersKeyByKey */ class ResourceByProjectKeyRecurringOrdersKeyByKeyTest extends TestCase @@ -148,6 +149,53 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 'post', 'test_projectKey/recurring-orders/key=test_key', + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_withDataErasure' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey('test_projectKey') + ->recurringOrders() + ->withKey('test_key') + ->delete() + ->withDataErasure('dataErasure'); + }, + 'delete', + 'test_projectKey/recurring-orders/key=test_key?dataErasure=dataErasure', + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_withVersion' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey('test_projectKey') + ->recurringOrders() + ->withKey('test_key') + ->delete() + ->withVersion('version'); + }, + 'delete', + 'test_projectKey/recurring-orders/key=test_key?version=version', + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_withExpand' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey('test_projectKey') + ->recurringOrders() + ->withKey('test_key') + ->delete() + ->withExpand('expand'); + }, + 'delete', + 'test_projectKey/recurring-orders/key=test_key?expand=expand', + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("test_projectKey") + ->recurringOrders() + ->withKey("test_key") + ->delete(); + }, + 'delete', + 'test_projectKey/recurring-orders/key=test_key', ] ]; } @@ -187,6 +235,15 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withKey("key") ->post(null); } + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); + } ] ]; } @@ -473,6 +530,106 @@ function (ApiRequestBuilder $builder): RequestInterface { ->post(null); }, 599 + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_200' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); + }, + 200 + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_409' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); + }, + 409 + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_400' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); + }, + 400 + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_401' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); + }, + 401 + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_403' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); + }, + 403 + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_404' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); + }, + 404 + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_500' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); + }, + 500 + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_502' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); + }, + 502 + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_503' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); + }, + 503 + ], + 'ByProjectKeyRecurringOrdersKeyByKeyDelete_599' => [ + function (ApiRequestBuilder $builder): RequestInterface { + return $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); + }, + 599 ] ]; } diff --git a/lib/commercetools-api/docs/RequestBuilder.md b/lib/commercetools-api/docs/RequestBuilder.md index 5915aefc759..028257d8d41 100644 --- a/lib/commercetools-api/docs/RequestBuilder.md +++ b/lib/commercetools-api/docs/RequestBuilder.md @@ -10923,6 +10923,22 @@ $request = $builder ->withId("ID") ->post(null); ``` +## `withProjectKey("projectKey")->recurringOrders()->withId("ID")->delete()` + +Deletes a Recurring Order in the Project. + + +### Example +```php +use Commercetools\Api\Client\ApiRequestBuilder; + +$builder = new ApiRequestBuilder(); +$request = $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withId("ID") + ->delete(); +``` ## `withProjectKey("projectKey")->recurringOrders()->withKey("key")->get()` Retrieves a Recurring Order with the provided `key`. @@ -10971,6 +10987,22 @@ $request = $builder ->withKey("key") ->post(null); ``` +## `withProjectKey("projectKey")->recurringOrders()->withKey("key")->delete()` + +Deletes a Recurring Order in the Project. + + +### Example +```php +use Commercetools\Api\Client\ApiRequestBuilder; + +$builder = new ApiRequestBuilder(); +$request = $builder + ->withProjectKey("projectKey") + ->recurringOrders() + ->withKey("key") + ->delete(); +``` ## `withProjectKey("projectKey")->reviews()->get()` null diff --git a/lib/commercetools-api/src/Client/Resource/ByProjectKeyRecurringOrdersByIDDelete.php b/lib/commercetools-api/src/Client/Resource/ByProjectKeyRecurringOrdersByIDDelete.php new file mode 100644 index 00000000000..c9543925b2f --- /dev/null +++ b/lib/commercetools-api/src/Client/Resource/ByProjectKeyRecurringOrdersByIDDelete.php @@ -0,0 +1,180 @@ + + * @template-implements Versioned + * @template-implements Conflicting + * @template-implements Expandable + * @template-implements Errorable + * @template-implements Deprecatable200 + */ +class ByProjectKeyRecurringOrdersByIDDelete extends ApiRequest implements DataErasure, Versioned, Conflicting, Expandable, Errorable, Deprecatable200 +{ + /** + * @param ?object|array|string $body + * @psalm-param array $headers + */ + public function __construct(string $projectKey, string $ID, $body = null, array $headers = [], ?ClientInterface $client = null) + { + $uri = str_replace(['{projectKey}', '{ID}'], [$projectKey, $ID], '{projectKey}/recurring-orders/{ID}'); + parent::__construct($client, 'DELETE', $uri, $headers, is_object($body) || is_array($body) ? json_encode($body) : $body); + } + + /** + * @template T of JsonObject + * @psalm-param ?class-string $resultType + * @return ErrorResponse|JsonObject|RecurringOrder|T|null + */ + public function mapFromResponse(?ResponseInterface $response, ?string $resultType = null) + { + if (is_null($response)) { + return null; + } + if (is_null($resultType)) { + switch ($response->getStatusCode()) { + case '200': + $resultType = RecurringOrderModel::class; + + break; + case '409': + $resultType = ErrorResponseModel::class; + + break; + case '400': + $resultType = ErrorResponseModel::class; + + break; + case '401': + $resultType = ErrorResponseModel::class; + + break; + case '403': + $resultType = ErrorResponseModel::class; + + break; + case '500': + $resultType = ErrorResponseModel::class; + + break; + case '502': + $resultType = ErrorResponseModel::class; + + break; + case '503': + $resultType = ErrorResponseModel::class; + + break; + default: + $resultType = JsonObjectModel::class; + + break; + } + } + + return $resultType::of($this->responseData($response)); + } + + /** + * @template T of JsonObject + * @psalm-param ?class-string $resultType + * + * @return null|T|ErrorResponse|JsonObject|RecurringOrder + */ + public function execute(array $options = [], ?string $resultType = null) + { + try { + $response = $this->send($options); + } catch (ServerException $e) { + $response = $e->getResponse(); + $e = ExceptionFactory::createServerException($e, $this, $response, $this->mapFromResponse($response, $resultType)); + throw $e; + } catch (ClientException $e) { + $response = $e->getResponse(); + $e = ExceptionFactory::createClientException($e, $this, $response, $this->mapFromResponse($response, $resultType)); + throw $e; + } + + return $this->mapFromResponse($response, $resultType); + } + + /** + * @template T of JsonObject + * @psalm-param ?class-string $resultType + * + * @return PromiseInterface + */ + public function executeAsync(array $options = [], ?string $resultType = null) + { + return $this->sendAsync($options)->then( + function (ResponseInterface $response) use ($resultType) { + return $this->mapFromResponse($response, $resultType); + }, + function (RequestException $e) use ($resultType) { + $response = $e->getResponse(); + if ($e instanceof ServerException) { + $e = ExceptionFactory::createServerException($e, $this, $response, $this->mapFromResponse($response, $resultType)); + } + if ($e instanceof ClientException) { + $e = ExceptionFactory::createClientException($e, $this, $response, $this->mapFromResponse($response, $resultType)); + } + throw $e; + } + ); + } + + /** + * + * @psalm-param scalar|scalar[] $dataErasure + */ + public function withDataErasure($dataErasure): ByProjectKeyRecurringOrdersByIDDelete + { + return $this->withQueryParam('dataErasure', $dataErasure); + } + + /** + * + * @psalm-param scalar|scalar[] $version + */ + public function withVersion($version): ByProjectKeyRecurringOrdersByIDDelete + { + return $this->withQueryParam('version', $version); + } + + /** + * + * @psalm-param scalar|scalar[] $expand + */ + public function withExpand($expand): ByProjectKeyRecurringOrdersByIDDelete + { + return $this->withQueryParam('expand', $expand); + } +} diff --git a/lib/commercetools-api/src/Client/Resource/ByProjectKeyRecurringOrdersKeyByKeyDelete.php b/lib/commercetools-api/src/Client/Resource/ByProjectKeyRecurringOrdersKeyByKeyDelete.php new file mode 100644 index 00000000000..a28f9a24a49 --- /dev/null +++ b/lib/commercetools-api/src/Client/Resource/ByProjectKeyRecurringOrdersKeyByKeyDelete.php @@ -0,0 +1,180 @@ + + * @template-implements Versioned + * @template-implements Conflicting + * @template-implements Expandable + * @template-implements Errorable + * @template-implements Deprecatable200 + */ +class ByProjectKeyRecurringOrdersKeyByKeyDelete extends ApiRequest implements DataErasure, Versioned, Conflicting, Expandable, Errorable, Deprecatable200 +{ + /** + * @param ?object|array|string $body + * @psalm-param array $headers + */ + public function __construct(string $projectKey, string $key, $body = null, array $headers = [], ?ClientInterface $client = null) + { + $uri = str_replace(['{projectKey}', '{key}'], [$projectKey, $key], '{projectKey}/recurring-orders/key={key}'); + parent::__construct($client, 'DELETE', $uri, $headers, is_object($body) || is_array($body) ? json_encode($body) : $body); + } + + /** + * @template T of JsonObject + * @psalm-param ?class-string $resultType + * @return ErrorResponse|JsonObject|RecurringOrder|T|null + */ + public function mapFromResponse(?ResponseInterface $response, ?string $resultType = null) + { + if (is_null($response)) { + return null; + } + if (is_null($resultType)) { + switch ($response->getStatusCode()) { + case '200': + $resultType = RecurringOrderModel::class; + + break; + case '409': + $resultType = ErrorResponseModel::class; + + break; + case '400': + $resultType = ErrorResponseModel::class; + + break; + case '401': + $resultType = ErrorResponseModel::class; + + break; + case '403': + $resultType = ErrorResponseModel::class; + + break; + case '500': + $resultType = ErrorResponseModel::class; + + break; + case '502': + $resultType = ErrorResponseModel::class; + + break; + case '503': + $resultType = ErrorResponseModel::class; + + break; + default: + $resultType = JsonObjectModel::class; + + break; + } + } + + return $resultType::of($this->responseData($response)); + } + + /** + * @template T of JsonObject + * @psalm-param ?class-string $resultType + * + * @return null|T|ErrorResponse|JsonObject|RecurringOrder + */ + public function execute(array $options = [], ?string $resultType = null) + { + try { + $response = $this->send($options); + } catch (ServerException $e) { + $response = $e->getResponse(); + $e = ExceptionFactory::createServerException($e, $this, $response, $this->mapFromResponse($response, $resultType)); + throw $e; + } catch (ClientException $e) { + $response = $e->getResponse(); + $e = ExceptionFactory::createClientException($e, $this, $response, $this->mapFromResponse($response, $resultType)); + throw $e; + } + + return $this->mapFromResponse($response, $resultType); + } + + /** + * @template T of JsonObject + * @psalm-param ?class-string $resultType + * + * @return PromiseInterface + */ + public function executeAsync(array $options = [], ?string $resultType = null) + { + return $this->sendAsync($options)->then( + function (ResponseInterface $response) use ($resultType) { + return $this->mapFromResponse($response, $resultType); + }, + function (RequestException $e) use ($resultType) { + $response = $e->getResponse(); + if ($e instanceof ServerException) { + $e = ExceptionFactory::createServerException($e, $this, $response, $this->mapFromResponse($response, $resultType)); + } + if ($e instanceof ClientException) { + $e = ExceptionFactory::createClientException($e, $this, $response, $this->mapFromResponse($response, $resultType)); + } + throw $e; + } + ); + } + + /** + * + * @psalm-param scalar|scalar[] $dataErasure + */ + public function withDataErasure($dataErasure): ByProjectKeyRecurringOrdersKeyByKeyDelete + { + return $this->withQueryParam('dataErasure', $dataErasure); + } + + /** + * + * @psalm-param scalar|scalar[] $version + */ + public function withVersion($version): ByProjectKeyRecurringOrdersKeyByKeyDelete + { + return $this->withQueryParam('version', $version); + } + + /** + * + * @psalm-param scalar|scalar[] $expand + */ + public function withExpand($expand): ByProjectKeyRecurringOrdersKeyByKeyDelete + { + return $this->withQueryParam('expand', $expand); + } +} diff --git a/lib/commercetools-api/src/Client/Resource/ResourceByProjectKeyRecurringOrdersByID.php b/lib/commercetools-api/src/Client/Resource/ResourceByProjectKeyRecurringOrdersByID.php index 41def2146a2..340fa9151b1 100644 --- a/lib/commercetools-api/src/Client/Resource/ResourceByProjectKeyRecurringOrdersByID.php +++ b/lib/commercetools-api/src/Client/Resource/ResourceByProjectKeyRecurringOrdersByID.php @@ -56,4 +56,14 @@ public function post(?RecurringOrderUpdate $body = null, array $headers = []): B return new ByProjectKeyRecurringOrdersByIDPost($args['projectKey'], $args['ID'], $body, $headers, $this->getClient()); } + /** + * @psalm-param ?object|array|string $body + * @psalm-param array $headers + */ + public function delete($body = null, array $headers = []): ByProjectKeyRecurringOrdersByIDDelete + { + $args = $this->getArgs(); + + return new ByProjectKeyRecurringOrdersByIDDelete($args['projectKey'], $args['ID'], $body, $headers, $this->getClient()); + } } diff --git a/lib/commercetools-api/src/Client/Resource/ResourceByProjectKeyRecurringOrdersKeyByKey.php b/lib/commercetools-api/src/Client/Resource/ResourceByProjectKeyRecurringOrdersKeyByKey.php index 3392bdcb40b..49e2136a01d 100644 --- a/lib/commercetools-api/src/Client/Resource/ResourceByProjectKeyRecurringOrdersKeyByKey.php +++ b/lib/commercetools-api/src/Client/Resource/ResourceByProjectKeyRecurringOrdersKeyByKey.php @@ -56,4 +56,14 @@ public function post(?RecurringOrderUpdate $body = null, array $headers = []): B return new ByProjectKeyRecurringOrdersKeyByKeyPost($args['projectKey'], $args['key'], $body, $headers, $this->getClient()); } + /** + * @psalm-param ?object|array|string $body + * @psalm-param array $headers + */ + public function delete($body = null, array $headers = []): ByProjectKeyRecurringOrdersKeyByKeyDelete + { + $args = $this->getArgs(); + + return new ByProjectKeyRecurringOrdersKeyByKeyDelete($args['projectKey'], $args['key'], $body, $headers, $this->getClient()); + } } diff --git a/lib/commercetools-api/src/Models/Common/BaseResource.php b/lib/commercetools-api/src/Models/Common/BaseResource.php index 45306cb49aa..0362e99f314 100644 --- a/lib/commercetools-api/src/Models/Common/BaseResource.php +++ b/lib/commercetools-api/src/Models/Common/BaseResource.php @@ -227,6 +227,7 @@ use Commercetools\Api\Models\Message\RecurringOrderCustomFieldRemovedMessage; use Commercetools\Api\Models\Message\RecurringOrderCustomTypeRemovedMessage; use Commercetools\Api\Models\Message\RecurringOrderCustomTypeSetMessage; +use Commercetools\Api\Models\Message\RecurringOrderDeletedMessage; use Commercetools\Api\Models\Message\RecurringOrderKeySetMessage; use Commercetools\Api\Models\Message\RecurringOrderScheduleSetMessage; use Commercetools\Api\Models\Message\RecurringOrderStartsAtSetMessage; diff --git a/lib/commercetools-api/src/Models/Common/BaseResourceBuilder.php b/lib/commercetools-api/src/Models/Common/BaseResourceBuilder.php index 5d4cdff55ef..7f9b96e0c44 100644 --- a/lib/commercetools-api/src/Models/Common/BaseResourceBuilder.php +++ b/lib/commercetools-api/src/Models/Common/BaseResourceBuilder.php @@ -446,6 +446,8 @@ use Commercetools\Api\Models\Message\RecurringOrderCustomTypeRemovedMessageBuilder; use Commercetools\Api\Models\Message\RecurringOrderCustomTypeSetMessage; use Commercetools\Api\Models\Message\RecurringOrderCustomTypeSetMessageBuilder; +use Commercetools\Api\Models\Message\RecurringOrderDeletedMessage; +use Commercetools\Api\Models\Message\RecurringOrderDeletedMessageBuilder; use Commercetools\Api\Models\Message\RecurringOrderKeySetMessage; use Commercetools\Api\Models\Message\RecurringOrderKeySetMessageBuilder; use Commercetools\Api\Models\Message\RecurringOrderScheduleSetMessage; diff --git a/lib/commercetools-api/src/Models/Common/BaseResourceModel.php b/lib/commercetools-api/src/Models/Common/BaseResourceModel.php index dbc99f263b8..81f5b200cc3 100644 --- a/lib/commercetools-api/src/Models/Common/BaseResourceModel.php +++ b/lib/commercetools-api/src/Models/Common/BaseResourceModel.php @@ -446,6 +446,8 @@ use Commercetools\Api\Models\Message\RecurringOrderCustomTypeRemovedMessageModel; use Commercetools\Api\Models\Message\RecurringOrderCustomTypeSetMessage; use Commercetools\Api\Models\Message\RecurringOrderCustomTypeSetMessageModel; +use Commercetools\Api\Models\Message\RecurringOrderDeletedMessage; +use Commercetools\Api\Models\Message\RecurringOrderDeletedMessageModel; use Commercetools\Api\Models\Message\RecurringOrderKeySetMessage; use Commercetools\Api\Models\Message\RecurringOrderKeySetMessageModel; use Commercetools\Api\Models\Message\RecurringOrderScheduleSetMessage; diff --git a/lib/commercetools-api/src/Models/Message/MessageModel.php b/lib/commercetools-api/src/Models/Message/MessageModel.php index b06f1639050..515001c4fd1 100644 --- a/lib/commercetools-api/src/Models/Message/MessageModel.php +++ b/lib/commercetools-api/src/Models/Message/MessageModel.php @@ -351,6 +351,7 @@ final class MessageModel extends JsonObjectModel implements Message 'RecurringOrderCustomFieldRemoved' => RecurringOrderCustomFieldRemovedMessageModel::class, 'RecurringOrderCustomTypeRemoved' => RecurringOrderCustomTypeRemovedMessageModel::class, 'RecurringOrderCustomTypeSet' => RecurringOrderCustomTypeSetMessageModel::class, + 'RecurringOrderDeleted' => RecurringOrderDeletedMessageModel::class, 'RecurringOrderKeySet' => RecurringOrderKeySetMessageModel::class, 'RecurringOrderScheduleSet' => RecurringOrderScheduleSetMessageModel::class, 'RecurringOrderStartsAtSet' => RecurringOrderStartsAtSetMessageModel::class, diff --git a/lib/commercetools-api/src/Models/Message/MessagePayloadModel.php b/lib/commercetools-api/src/Models/Message/MessagePayloadModel.php index 28b6412cc8b..65a4ff1e327 100644 --- a/lib/commercetools-api/src/Models/Message/MessagePayloadModel.php +++ b/lib/commercetools-api/src/Models/Message/MessagePayloadModel.php @@ -282,6 +282,7 @@ final class MessagePayloadModel extends JsonObjectModel implements MessagePayloa 'RecurringOrderCustomFieldRemoved' => RecurringOrderCustomFieldRemovedMessagePayloadModel::class, 'RecurringOrderCustomTypeRemoved' => RecurringOrderCustomTypeRemovedMessagePayloadModel::class, 'RecurringOrderCustomTypeSet' => RecurringOrderCustomTypeSetMessagePayloadModel::class, + 'RecurringOrderDeleted' => RecurringOrderDeletedMessagePayloadModel::class, 'RecurringOrderKeySet' => RecurringOrderKeySetMessagePayloadModel::class, 'RecurringOrderScheduleSet' => RecurringOrderScheduleSetMessagePayloadModel::class, 'RecurringOrderStartsAtSet' => RecurringOrderStartsAtSetMessagePayloadModel::class, diff --git a/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessage.php b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessage.php new file mode 100644 index 00000000000..b76825a0bae --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessage.php @@ -0,0 +1,31 @@ +RecurringOrder that was deleted.

+ * + + * @return null|RecurringOrder + */ + public function getRecurringOrder(); + + /** + * @param ?RecurringOrder $recurringOrder + */ + public function setRecurringOrder(?RecurringOrder $recurringOrder): void; +} diff --git a/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessageBuilder.php b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessageBuilder.php new file mode 100644 index 00000000000..b1673d5236d --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessageBuilder.php @@ -0,0 +1,417 @@ + + */ +final class RecurringOrderDeletedMessageBuilder implements Builder +{ + /** + + * @var ?string + */ + private $id; + + /** + + * @var ?int + */ + private $version; + + /** + + * @var ?DateTimeImmutable + */ + private $createdAt; + + /** + + * @var ?DateTimeImmutable + */ + private $lastModifiedAt; + + /** + + * @var null|LastModifiedBy|LastModifiedByBuilder + */ + private $lastModifiedBy; + + /** + + * @var null|CreatedBy|CreatedByBuilder + */ + private $createdBy; + + /** + + * @var ?int + */ + private $sequenceNumber; + + /** + + * @var null|Reference|ReferenceBuilder + */ + private $resource; + + /** + + * @var ?int + */ + private $resourceVersion; + + /** + + * @var null|UserProvidedIdentifiers|UserProvidedIdentifiersBuilder + */ + private $resourceUserProvidedIdentifiers; + + /** + + * @var null|RecurringOrder|RecurringOrderBuilder + */ + private $recurringOrder; + + /** + *

Unique identifier of the Message. Can be used to track which Messages have been processed.

+ * + + * @return null|string + */ + public function getId() + { + return $this->id; + } + + /** + *

Version of a resource. In case of Messages, this is always 1.

+ * + + * @return null|int + */ + public function getVersion() + { + return $this->version; + } + + /** + *

Date and time (UTC) the Message was generated.

+ * + + * @return null|DateTimeImmutable + */ + public function getCreatedAt() + { + return $this->createdAt; + } + + /** + *

Value of createdAt.

+ * + + * @return null|DateTimeImmutable + */ + public function getLastModifiedAt() + { + return $this->lastModifiedAt; + } + + /** + *

IDs and references that last modified the Message.

+ * + + * @return null|LastModifiedBy + */ + public function getLastModifiedBy() + { + return $this->lastModifiedBy instanceof LastModifiedByBuilder ? $this->lastModifiedBy->build() : $this->lastModifiedBy; + } + + /** + *

IDs and references that created the Message.

+ * + + * @return null|CreatedBy + */ + public function getCreatedBy() + { + return $this->createdBy instanceof CreatedByBuilder ? $this->createdBy->build() : $this->createdBy; + } + + /** + *

Message number in relation to other Messages for a given resource. The sequenceNumber of the next Message for the resource is the successor of the sequenceNumber of the current Message. Meaning, the sequenceNumber of the next Message equals the sequenceNumber of the current Message + 1. + * sequenceNumber can be used to ensure that Messages are processed in the correct order for a particular resource.

+ * + + * @return null|int + */ + public function getSequenceNumber() + { + return $this->sequenceNumber; + } + + /** + *

Reference to the resource on which the change or action was performed.

+ * + + * @return null|Reference + */ + public function getResource() + { + return $this->resource instanceof ReferenceBuilder ? $this->resource->build() : $this->resource; + } + + /** + *

Version of the resource on which the change or action was performed.

+ * + + * @return null|int + */ + public function getResourceVersion() + { + return $this->resourceVersion; + } + + /** + *

User-provided identifiers of the resource, such as key or externalId. Only present if the resource has such identifiers.

+ * + + * @return null|UserProvidedIdentifiers + */ + public function getResourceUserProvidedIdentifiers() + { + return $this->resourceUserProvidedIdentifiers instanceof UserProvidedIdentifiersBuilder ? $this->resourceUserProvidedIdentifiers->build() : $this->resourceUserProvidedIdentifiers; + } + + /** + *

RecurringOrder that was deleted.

+ * + + * @return null|RecurringOrder + */ + public function getRecurringOrder() + { + return $this->recurringOrder instanceof RecurringOrderBuilder ? $this->recurringOrder->build() : $this->recurringOrder; + } + + /** + * @param ?string $id + * @return $this + */ + public function withId(?string $id) + { + $this->id = $id; + + return $this; + } + + /** + * @param ?int $version + * @return $this + */ + public function withVersion(?int $version) + { + $this->version = $version; + + return $this; + } + + /** + * @param ?DateTimeImmutable $createdAt + * @return $this + */ + public function withCreatedAt(?DateTimeImmutable $createdAt) + { + $this->createdAt = $createdAt; + + return $this; + } + + /** + * @param ?DateTimeImmutable $lastModifiedAt + * @return $this + */ + public function withLastModifiedAt(?DateTimeImmutable $lastModifiedAt) + { + $this->lastModifiedAt = $lastModifiedAt; + + return $this; + } + + /** + * @param ?LastModifiedBy $lastModifiedBy + * @return $this + */ + public function withLastModifiedBy(?LastModifiedBy $lastModifiedBy) + { + $this->lastModifiedBy = $lastModifiedBy; + + return $this; + } + + /** + * @param ?CreatedBy $createdBy + * @return $this + */ + public function withCreatedBy(?CreatedBy $createdBy) + { + $this->createdBy = $createdBy; + + return $this; + } + + /** + * @param ?int $sequenceNumber + * @return $this + */ + public function withSequenceNumber(?int $sequenceNumber) + { + $this->sequenceNumber = $sequenceNumber; + + return $this; + } + + /** + * @param ?Reference $resource + * @return $this + */ + public function withResource(?Reference $resource) + { + $this->resource = $resource; + + return $this; + } + + /** + * @param ?int $resourceVersion + * @return $this + */ + public function withResourceVersion(?int $resourceVersion) + { + $this->resourceVersion = $resourceVersion; + + return $this; + } + + /** + * @param ?UserProvidedIdentifiers $resourceUserProvidedIdentifiers + * @return $this + */ + public function withResourceUserProvidedIdentifiers(?UserProvidedIdentifiers $resourceUserProvidedIdentifiers) + { + $this->resourceUserProvidedIdentifiers = $resourceUserProvidedIdentifiers; + + return $this; + } + + /** + * @param ?RecurringOrder $recurringOrder + * @return $this + */ + public function withRecurringOrder(?RecurringOrder $recurringOrder) + { + $this->recurringOrder = $recurringOrder; + + return $this; + } + + /** + * @deprecated use withLastModifiedBy() instead + * @return $this + */ + public function withLastModifiedByBuilder(?LastModifiedByBuilder $lastModifiedBy) + { + $this->lastModifiedBy = $lastModifiedBy; + + return $this; + } + + /** + * @deprecated use withCreatedBy() instead + * @return $this + */ + public function withCreatedByBuilder(?CreatedByBuilder $createdBy) + { + $this->createdBy = $createdBy; + + return $this; + } + + /** + * @deprecated use withResource() instead + * @return $this + */ + public function withResourceBuilder(?ReferenceBuilder $resource) + { + $this->resource = $resource; + + return $this; + } + + /** + * @deprecated use withResourceUserProvidedIdentifiers() instead + * @return $this + */ + public function withResourceUserProvidedIdentifiersBuilder(?UserProvidedIdentifiersBuilder $resourceUserProvidedIdentifiers) + { + $this->resourceUserProvidedIdentifiers = $resourceUserProvidedIdentifiers; + + return $this; + } + + /** + * @deprecated use withRecurringOrder() instead + * @return $this + */ + public function withRecurringOrderBuilder(?RecurringOrderBuilder $recurringOrder) + { + $this->recurringOrder = $recurringOrder; + + return $this; + } + + public function build(): RecurringOrderDeletedMessage + { + return new RecurringOrderDeletedMessageModel( + $this->id, + $this->version, + $this->createdAt, + $this->lastModifiedAt, + $this->lastModifiedBy instanceof LastModifiedByBuilder ? $this->lastModifiedBy->build() : $this->lastModifiedBy, + $this->createdBy instanceof CreatedByBuilder ? $this->createdBy->build() : $this->createdBy, + $this->sequenceNumber, + $this->resource instanceof ReferenceBuilder ? $this->resource->build() : $this->resource, + $this->resourceVersion, + $this->resourceUserProvidedIdentifiers instanceof UserProvidedIdentifiersBuilder ? $this->resourceUserProvidedIdentifiers->build() : $this->resourceUserProvidedIdentifiers, + $this->recurringOrder instanceof RecurringOrderBuilder ? $this->recurringOrder->build() : $this->recurringOrder + ); + } + + public static function of(): RecurringOrderDeletedMessageBuilder + { + return new self(); + } +} diff --git a/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessageCollection.php b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessageCollection.php new file mode 100644 index 00000000000..a25a33afb2d --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessageCollection.php @@ -0,0 +1,56 @@ + + * @method RecurringOrderDeletedMessage current() + * @method RecurringOrderDeletedMessage end() + * @method RecurringOrderDeletedMessage at($offset) + */ +class RecurringOrderDeletedMessageCollection extends MessageCollection +{ + /** + * @psalm-assert RecurringOrderDeletedMessage $value + * @psalm-param RecurringOrderDeletedMessage|stdClass $value + * @throws InvalidArgumentException + * + * @return RecurringOrderDeletedMessageCollection + */ + public function add($value) + { + if (!$value instanceof RecurringOrderDeletedMessage) { + throw new InvalidArgumentException(); + } + $this->store($value); + + return $this; + } + + /** + * @psalm-return callable(int):?RecurringOrderDeletedMessage + */ + protected function mapper() + { + return function (?int $index): ?RecurringOrderDeletedMessage { + $data = $this->get($index); + if ($data instanceof stdClass) { + /** @var RecurringOrderDeletedMessage $data */ + $data = RecurringOrderDeletedMessageModel::of($data); + $this->set($data, $index); + } + + return $data; + }; + } +} diff --git a/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessageModel.php b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessageModel.php new file mode 100644 index 00000000000..39503de2220 --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessageModel.php @@ -0,0 +1,493 @@ +id = $id; + $this->version = $version; + $this->createdAt = $createdAt; + $this->lastModifiedAt = $lastModifiedAt; + $this->lastModifiedBy = $lastModifiedBy; + $this->createdBy = $createdBy; + $this->sequenceNumber = $sequenceNumber; + $this->resource = $resource; + $this->resourceVersion = $resourceVersion; + $this->resourceUserProvidedIdentifiers = $resourceUserProvidedIdentifiers; + $this->recurringOrder = $recurringOrder; + $this->type = $type ?? self::DISCRIMINATOR_VALUE; + } + + /** + *

Unique identifier of the Message. Can be used to track which Messages have been processed.

+ * + * + * @return null|string + */ + public function getId() + { + if (is_null($this->id)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_ID); + if (is_null($data)) { + return null; + } + $this->id = (string) $data; + } + + return $this->id; + } + + /** + *

Version of a resource. In case of Messages, this is always 1.

+ * + * + * @return null|int + */ + public function getVersion() + { + if (is_null($this->version)) { + /** @psalm-var ?int $data */ + $data = $this->raw(self::FIELD_VERSION); + if (is_null($data)) { + return null; + } + $this->version = (int) $data; + } + + return $this->version; + } + + /** + *

Date and time (UTC) the Message was generated.

+ * + * + * @return null|DateTimeImmutable + */ + public function getCreatedAt() + { + if (is_null($this->createdAt)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_CREATED_AT); + if (is_null($data)) { + return null; + } + $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data); + if (false === $data) { + return null; + } + $this->createdAt = $data; + } + + return $this->createdAt; + } + + /** + *

Value of createdAt.

+ * + * + * @return null|DateTimeImmutable + */ + public function getLastModifiedAt() + { + if (is_null($this->lastModifiedAt)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_LAST_MODIFIED_AT); + if (is_null($data)) { + return null; + } + $data = DateTimeImmutable::createFromFormat(MapperFactory::DATETIME_FORMAT, $data); + if (false === $data) { + return null; + } + $this->lastModifiedAt = $data; + } + + return $this->lastModifiedAt; + } + + /** + *

IDs and references that last modified the Message.

+ * + * + * @return null|LastModifiedBy + */ + public function getLastModifiedBy() + { + if (is_null($this->lastModifiedBy)) { + /** @psalm-var stdClass|array|null $data */ + $data = $this->raw(self::FIELD_LAST_MODIFIED_BY); + if (is_null($data)) { + return null; + } + + $this->lastModifiedBy = LastModifiedByModel::of($data); + } + + return $this->lastModifiedBy; + } + + /** + *

IDs and references that created the Message.

+ * + * + * @return null|CreatedBy + */ + public function getCreatedBy() + { + if (is_null($this->createdBy)) { + /** @psalm-var stdClass|array|null $data */ + $data = $this->raw(self::FIELD_CREATED_BY); + if (is_null($data)) { + return null; + } + + $this->createdBy = CreatedByModel::of($data); + } + + return $this->createdBy; + } + + /** + *

Message number in relation to other Messages for a given resource. The sequenceNumber of the next Message for the resource is the successor of the sequenceNumber of the current Message. Meaning, the sequenceNumber of the next Message equals the sequenceNumber of the current Message + 1. + * sequenceNumber can be used to ensure that Messages are processed in the correct order for a particular resource.

+ * + * + * @return null|int + */ + public function getSequenceNumber() + { + if (is_null($this->sequenceNumber)) { + /** @psalm-var ?int $data */ + $data = $this->raw(self::FIELD_SEQUENCE_NUMBER); + if (is_null($data)) { + return null; + } + $this->sequenceNumber = (int) $data; + } + + return $this->sequenceNumber; + } + + /** + *

Reference to the resource on which the change or action was performed.

+ * + * + * @return null|Reference + */ + public function getResource() + { + if (is_null($this->resource)) { + /** @psalm-var stdClass|array|null $data */ + $data = $this->raw(self::FIELD_RESOURCE); + if (is_null($data)) { + return null; + } + $className = ReferenceModel::resolveDiscriminatorClass($data); + $this->resource = $className::of($data); + } + + return $this->resource; + } + + /** + *

Version of the resource on which the change or action was performed.

+ * + * + * @return null|int + */ + public function getResourceVersion() + { + if (is_null($this->resourceVersion)) { + /** @psalm-var ?int $data */ + $data = $this->raw(self::FIELD_RESOURCE_VERSION); + if (is_null($data)) { + return null; + } + $this->resourceVersion = (int) $data; + } + + return $this->resourceVersion; + } + + /** + *

Message Type of the Message.

+ * + * + * @return null|string + */ + public function getType() + { + if (is_null($this->type)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_TYPE); + if (is_null($data)) { + return null; + } + $this->type = (string) $data; + } + + return $this->type; + } + + /** + *

User-provided identifiers of the resource, such as key or externalId. Only present if the resource has such identifiers.

+ * + * + * @return null|UserProvidedIdentifiers + */ + public function getResourceUserProvidedIdentifiers() + { + if (is_null($this->resourceUserProvidedIdentifiers)) { + /** @psalm-var stdClass|array|null $data */ + $data = $this->raw(self::FIELD_RESOURCE_USER_PROVIDED_IDENTIFIERS); + if (is_null($data)) { + return null; + } + + $this->resourceUserProvidedIdentifiers = UserProvidedIdentifiersModel::of($data); + } + + return $this->resourceUserProvidedIdentifiers; + } + + /** + *

RecurringOrder that was deleted.

+ * + * + * @return null|RecurringOrder + */ + public function getRecurringOrder() + { + if (is_null($this->recurringOrder)) { + /** @psalm-var stdClass|array|null $data */ + $data = $this->raw(self::FIELD_RECURRING_ORDER); + if (is_null($data)) { + return null; + } + + $this->recurringOrder = RecurringOrderModel::of($data); + } + + return $this->recurringOrder; + } + + + /** + * @param ?string $id + */ + public function setId(?string $id): void + { + $this->id = $id; + } + + /** + * @param ?int $version + */ + public function setVersion(?int $version): void + { + $this->version = $version; + } + + /** + * @param ?DateTimeImmutable $createdAt + */ + public function setCreatedAt(?DateTimeImmutable $createdAt): void + { + $this->createdAt = $createdAt; + } + + /** + * @param ?DateTimeImmutable $lastModifiedAt + */ + public function setLastModifiedAt(?DateTimeImmutable $lastModifiedAt): void + { + $this->lastModifiedAt = $lastModifiedAt; + } + + /** + * @param ?LastModifiedBy $lastModifiedBy + */ + public function setLastModifiedBy(?LastModifiedBy $lastModifiedBy): void + { + $this->lastModifiedBy = $lastModifiedBy; + } + + /** + * @param ?CreatedBy $createdBy + */ + public function setCreatedBy(?CreatedBy $createdBy): void + { + $this->createdBy = $createdBy; + } + + /** + * @param ?int $sequenceNumber + */ + public function setSequenceNumber(?int $sequenceNumber): void + { + $this->sequenceNumber = $sequenceNumber; + } + + /** + * @param ?Reference $resource + */ + public function setResource(?Reference $resource): void + { + $this->resource = $resource; + } + + /** + * @param ?int $resourceVersion + */ + public function setResourceVersion(?int $resourceVersion): void + { + $this->resourceVersion = $resourceVersion; + } + + /** + * @param ?UserProvidedIdentifiers $resourceUserProvidedIdentifiers + */ + public function setResourceUserProvidedIdentifiers(?UserProvidedIdentifiers $resourceUserProvidedIdentifiers): void + { + $this->resourceUserProvidedIdentifiers = $resourceUserProvidedIdentifiers; + } + + /** + * @param ?RecurringOrder $recurringOrder + */ + public function setRecurringOrder(?RecurringOrder $recurringOrder): void + { + $this->recurringOrder = $recurringOrder; + } + + + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + $data = $this->toArray(); + if (isset($data[Message::FIELD_CREATED_AT]) && $data[Message::FIELD_CREATED_AT] instanceof \DateTimeImmutable) { + $data[Message::FIELD_CREATED_AT] = $data[Message::FIELD_CREATED_AT]->setTimeZone(new \DateTimeZone('UTC'))->format('c'); + } + + if (isset($data[Message::FIELD_LAST_MODIFIED_AT]) && $data[Message::FIELD_LAST_MODIFIED_AT] instanceof \DateTimeImmutable) { + $data[Message::FIELD_LAST_MODIFIED_AT] = $data[Message::FIELD_LAST_MODIFIED_AT]->setTimeZone(new \DateTimeZone('UTC'))->format('c'); + } + return (object) $data; + } +} diff --git a/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayload.php b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayload.php new file mode 100644 index 00000000000..feadc43617b --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayload.php @@ -0,0 +1,31 @@ +RecurringOrder that was deleted.

+ * + + * @return null|RecurringOrder + */ + public function getRecurringOrder(); + + /** + * @param ?RecurringOrder $recurringOrder + */ + public function setRecurringOrder(?RecurringOrder $recurringOrder): void; +} diff --git a/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayloadBuilder.php b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayloadBuilder.php new file mode 100644 index 00000000000..2f6dfc801c1 --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayloadBuilder.php @@ -0,0 +1,75 @@ + + */ +final class RecurringOrderDeletedMessagePayloadBuilder implements Builder +{ + /** + + * @var null|RecurringOrder|RecurringOrderBuilder + */ + private $recurringOrder; + + /** + *

RecurringOrder that was deleted.

+ * + + * @return null|RecurringOrder + */ + public function getRecurringOrder() + { + return $this->recurringOrder instanceof RecurringOrderBuilder ? $this->recurringOrder->build() : $this->recurringOrder; + } + + /** + * @param ?RecurringOrder $recurringOrder + * @return $this + */ + public function withRecurringOrder(?RecurringOrder $recurringOrder) + { + $this->recurringOrder = $recurringOrder; + + return $this; + } + + /** + * @deprecated use withRecurringOrder() instead + * @return $this + */ + public function withRecurringOrderBuilder(?RecurringOrderBuilder $recurringOrder) + { + $this->recurringOrder = $recurringOrder; + + return $this; + } + + public function build(): RecurringOrderDeletedMessagePayload + { + return new RecurringOrderDeletedMessagePayloadModel( + $this->recurringOrder instanceof RecurringOrderBuilder ? $this->recurringOrder->build() : $this->recurringOrder + ); + } + + public static function of(): RecurringOrderDeletedMessagePayloadBuilder + { + return new self(); + } +} diff --git a/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayloadCollection.php b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayloadCollection.php new file mode 100644 index 00000000000..b482a0f062c --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayloadCollection.php @@ -0,0 +1,56 @@ + + * @method RecurringOrderDeletedMessagePayload current() + * @method RecurringOrderDeletedMessagePayload end() + * @method RecurringOrderDeletedMessagePayload at($offset) + */ +class RecurringOrderDeletedMessagePayloadCollection extends MessagePayloadCollection +{ + /** + * @psalm-assert RecurringOrderDeletedMessagePayload $value + * @psalm-param RecurringOrderDeletedMessagePayload|stdClass $value + * @throws InvalidArgumentException + * + * @return RecurringOrderDeletedMessagePayloadCollection + */ + public function add($value) + { + if (!$value instanceof RecurringOrderDeletedMessagePayload) { + throw new InvalidArgumentException(); + } + $this->store($value); + + return $this; + } + + /** + * @psalm-return callable(int):?RecurringOrderDeletedMessagePayload + */ + protected function mapper() + { + return function (?int $index): ?RecurringOrderDeletedMessagePayload { + $data = $this->get($index); + if ($data instanceof stdClass) { + /** @var RecurringOrderDeletedMessagePayload $data */ + $data = RecurringOrderDeletedMessagePayloadModel::of($data); + $this->set($data, $index); + } + + return $data; + }; + } +} diff --git a/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayloadModel.php b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayloadModel.php new file mode 100644 index 00000000000..7b8e283e12d --- /dev/null +++ b/lib/commercetools-api/src/Models/Message/RecurringOrderDeletedMessagePayloadModel.php @@ -0,0 +1,96 @@ +recurringOrder = $recurringOrder; + $this->type = $type ?? self::DISCRIMINATOR_VALUE; + } + + /** + * + * @return null|string + */ + public function getType() + { + if (is_null($this->type)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_TYPE); + if (is_null($data)) { + return null; + } + $this->type = (string) $data; + } + + return $this->type; + } + + /** + *

RecurringOrder that was deleted.

+ * + * + * @return null|RecurringOrder + */ + public function getRecurringOrder() + { + if (is_null($this->recurringOrder)) { + /** @psalm-var stdClass|array|null $data */ + $data = $this->raw(self::FIELD_RECURRING_ORDER); + if (is_null($data)) { + return null; + } + + $this->recurringOrder = RecurringOrderModel::of($data); + } + + return $this->recurringOrder; + } + + + /** + * @param ?RecurringOrder $recurringOrder + */ + public function setRecurringOrder(?RecurringOrder $recurringOrder): void + { + $this->recurringOrder = $recurringOrder; + } +} diff --git a/references.txt b/references.txt index 1860355c80e..f2b58bcc550 100644 --- a/references.txt +++ b/references.txt @@ -470,3 +470,4 @@ cd07396232802b1c29238fb92214946462f19e5d a3b3120c87d02dcb4019d8f0dcc6d1f7496725ca 53775bb9cfdee1169d81256fcf9b33ce5718b6e5 0e52ed3672e48fed855eed94497de9b16e7a50fa +e4973c1b97c71699c2945d476161cd47eded2e6d