From b19e1d95571a6811826869dea5c720ec1e80c55b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joachim=20L=C3=B8vgaard?= Date: Thu, 6 Jun 2024 13:07:57 +0200 Subject: [PATCH] Remove AbstractDataTransferObject::convertEnum because Valinor handles it out of the box --- .../AbstractDataTransferObject.php | 28 ------------------- .../SalesOrder/OrderLine/SalesOrderLine.php | 5 +--- .../SalesOrder/SalesOrder.php | 20 +++---------- .../SalesOrder/SalesOrderTest.php | 2 -- 4 files changed, 5 insertions(+), 50 deletions(-) diff --git a/src/DataTransferObject/AbstractDataTransferObject.php b/src/DataTransferObject/AbstractDataTransferObject.php index 1c8546f..17dd54f 100644 --- a/src/DataTransferObject/AbstractDataTransferObject.php +++ b/src/DataTransferObject/AbstractDataTransferObject.php @@ -49,32 +49,4 @@ protected static function convertDateTime(null|\DateTimeImmutable|string $value) return $res; } - - /** - * @template T of \BackedEnum - * - * @param int|string|T|null $value - * @param class-string $enumClass - * - * @return T|null - * - * @throws \InvalidArgumentException if the value is not an instance of the enum class - */ - protected static function convertEnum(null|int|string|\BackedEnum $value, string $enumClass): ?\BackedEnum - { - if (null === $value) { - return null; - } - - if ($value instanceof \BackedEnum) { - if (!is_a($value, $enumClass)) { - throw new \InvalidArgumentException(sprintf('The value %s is not an instance of the enum class %s', $value::class, $enumClass)); - } - - return $value; - } - - /** @psalm-suppress PossiblyInvalidArgument */ - return $enumClass::from($value); - } } diff --git a/src/DataTransferObject/SalesOrder/OrderLine/SalesOrderLine.php b/src/DataTransferObject/SalesOrder/OrderLine/SalesOrderLine.php index 62ca776..feedd05 100644 --- a/src/DataTransferObject/SalesOrder/OrderLine/SalesOrderLine.php +++ b/src/DataTransferObject/SalesOrder/OrderLine/SalesOrderLine.php @@ -14,8 +14,6 @@ final class SalesOrderLine extends AbstractDataTransferObject public ?string $variantId; - public ?State $state; - public function __construct( int|string $orderLineId, /** @@ -32,13 +30,12 @@ public function __construct( public ?float $salesDiscountPiece = null, public ?float $salesDiscountTaxPiece = null, public ?string $comments = null, - State|int $state = null, + public ?State $state = null, public ?int $materialId = null, public ?int $sendAgainQuantity = null, ) { $this->orderLineId = (string) $orderLineId; $this->productId = (string) $productId; $this->variantId = null === $variantId ? null : (string) $variantId; - $this->state = self::convertEnum($state, State::class); } } diff --git a/src/DataTransferObject/SalesOrder/SalesOrder.php b/src/DataTransferObject/SalesOrder/SalesOrder.php index 9207324..262be1b 100644 --- a/src/DataTransferObject/SalesOrder/SalesOrder.php +++ b/src/DataTransferObject/SalesOrder/SalesOrder.php @@ -22,14 +22,6 @@ final class SalesOrder extends AbstractDataTransferObject public ?DateTimeImmutable $requestedDeliveryDate = null; - public ?State $state; - - public ?OnHoldReason $onHoldReason; - - public ?PaymentStatus $paymentStatus; - - public ?PickAgainReason $pickAgainReason; - /** * @param list $orderLines */ @@ -51,8 +43,8 @@ public function __construct( DateTimeImmutable|string $requestedDeliveryDate = null, /** @var int<1, 10>|null $priority */ public ?int $priority = null, - int|State $state = null, - int|OnHoldReason $onHoldReason = null, + public ?State $state = null, + public ?OnHoldReason $onHoldReason = null, public ?string $paymentMethod = null, public ?float $paymentFee = null, public ?float $paymentFeeTax = null, @@ -74,8 +66,8 @@ public function __construct( public ?string $transactionNumber = null, public bool $giftWrap = false, public ?string $customerReference = null, - int|PaymentStatus $paymentStatus = null, - int|PickAgainReason $pickAgainReason = null, + public ?PaymentStatus $paymentStatus = null, + public ?PickAgainReason $pickAgainReason = null, public ?string $storeId = null, public ?Address $shippingAddress = null, public ?Address $senderAddress = null, @@ -88,9 +80,5 @@ public function __construct( $this->orderNumber = (string) $orderNumber; $this->orderDateTime = self::convertDateTime($orderDateTime); $this->requestedDeliveryDate = self::convertDateTime($requestedDeliveryDate); - $this->state = self::convertEnum($state, State::class); - $this->onHoldReason = self::convertEnum($onHoldReason, OnHoldReason::class); - $this->paymentStatus = self::convertEnum($paymentStatus, PaymentStatus::class); - $this->pickAgainReason = self::convertEnum($pickAgainReason, PickAgainReason::class); } } diff --git a/tests/DataTransferObject/SalesOrder/SalesOrderTest.php b/tests/DataTransferObject/SalesOrder/SalesOrderTest.php index b2431b5..799663a 100644 --- a/tests/DataTransferObject/SalesOrder/SalesOrderTest.php +++ b/tests/DataTransferObject/SalesOrder/SalesOrderTest.php @@ -28,7 +28,6 @@ public function it_initializes(): void country: 'DK', ), orderDateTime: $now->format(\DATE_ATOM), - state: 3, ); self::assertSame('123', $salesOrder->orderId); @@ -36,6 +35,5 @@ public function it_initializes(): void self::assertSame('123', $salesOrder->orderNumber); self::assertInstanceOf(Address::class, $salesOrder->billingAddress); self::assertSame($now->format(\DATE_ATOM), $salesOrder->orderDateTime?->format(\DATE_ATOM)); - self::assertSame(State::Packed, $salesOrder->state); } }