Add transformer function for checkout links

This commit is contained in:
2025-02-04 17:35:09 +01:00
parent 951b90f872
commit 497fbf07de
@@ -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) {