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) {