From 497fbf07decd2f085e0b2154d4fbc82dd32b77c1 Mon Sep 17 00:00:00 2001 From: Daniel Subiabre Date: Tue, 4 Feb 2025 17:35:09 +0100 Subject: [PATCH] Add transformer function for checkout links --- src/ApiResource/Gateway/CheckoutApiResource.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/ApiResource/Gateway/CheckoutApiResource.php b/src/ApiResource/Gateway/CheckoutApiResource.php index 1ad6b23..751f9c9 100644 --- a/src/ApiResource/Gateway/CheckoutApiResource.php +++ b/src/ApiResource/Gateway/CheckoutApiResource.php @@ -8,6 +8,7 @@ use App\ApiResource\Accounting\AccountingApiResource; use App\Entity\Gateway\Checkout; use App\Gateway\CheckoutStatus; use App\Gateway\Link; +use App\Gateway\LinkType; use App\Gateway\Tracking; use App\Mapping\Transformer\GatewayNameMapTransformer; use App\State\ApiResourceStateProvider; @@ -69,6 +70,7 @@ class CheckoutApiResource * @var Link[] */ #[API\ApiProperty(writable: false)] + #[MapFrom(transformer: [self::class, 'parseLinks'])] public array $links = []; /** @@ -80,6 +82,19 @@ class CheckoutApiResource #[MapFrom(transformer: [self::class, 'parseTrackings'])] public array $trackings = []; + public static function parseLinks(array $values) + { + return \array_map(function ($value) { + $link = new Link(); + $link->href = $value['href']; + $link->rel = $value['rel']; + $link->method = $value['method']; + $link->type = LinkType::tryFrom($value['type']); + + return $link; + }, $values); + } + public static function parseTrackings(array $values) { return \array_map(function ($value) {