commerce_api-8.x-1.x-dev/src/Resource/CartClearResource.php
src/Resource/CartClearResource.php
<?php
namespace Drupal\commerce_api\Resource;
use Drupal\commerce_order\Entity\OrderInterface;
use Drupal\commerce_order\Exception\OrderVersionMismatchException;
use Drupal\Core\Entity\EntityStorageException;
use Drupal\jsonapi\ResourceResponse;
use Symfony\Component\HttpKernel\Exception\ConflictHttpException;
final class CartClearResource extends CartResourceBase {
/**
* Clear a cart's items.
*
* @param \Drupal\commerce_order\Entity\OrderInterface $commerce_order
* The cart.
*
* @return \Drupal\jsonapi\ResourceResponse
* The response.
*/
public function process(OrderInterface $commerce_order): ResourceResponse {
try {
$this->cartManager->emptyCart($commerce_order);
}
catch (EntityStorageException $exception) {
if ($exception->getPrevious() instanceof OrderVersionMismatchException) {
throw new ConflictHttpException($exception->getMessage(), $exception);
}
throw $exception;
}
return new ResourceResponse(NULL, 204);
}
}
