feat: adjust data returned by api calls for myep

This commit is contained in:
Björn Fromme
2025-11-20 19:02:17 +01:00
parent 5c284c1f11
commit 4596b88bee
@@ -53,26 +53,21 @@ class ProductApiMiddleware implements MiddlewareInterface
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
->getQueryBuilderForTable('tx_epproducts_domain_model_product'); ->getQueryBuilderForTable('tx_epproducts_domain_model_product');
$product = $queryBuilder $data = $queryBuilder
->select( ->select(
'uid', 'product.name as productName',
'name', 'product.code as productCode',
'code', 'country.name as countryName',
'headline', 'region.name as regionName',
'teaser', 'city.name as cityName',
'teaser_long',
'concept_description',
'board_description',
'programme_description',
'included_services',
'additional_services',
'ski_pass_alt_title',
'ski_pass_description'
) )
->from('tx_epproducts_domain_model_product') ->from('tx_epproducts_domain_model_product', 'product')
->leftJoin('product', 'tx_epproducts_domain_model_country', 'country', 'product.country = country.uid')
->leftJoin('product', 'tx_epproducts_domain_model_region', 'region', 'product.region = region.uid')
->leftJoin('product', 'tx_epproducts_domain_model_city', 'city', 'product.city = city.uid')
->where( ->where(
$queryBuilder->expr()->eq( $queryBuilder->expr()->eq(
'code', 'product.code',
$queryBuilder->createNamedParameter($productCode) $queryBuilder->createNamedParameter($productCode)
) )
) )
@@ -81,27 +76,28 @@ class ProductApiMiddleware implements MiddlewareInterface
->fetchAssociative() ->fetchAssociative()
; ;
if (false === $product) { if (false === $data) {
return null; return null;
} }
$images = GeneralUtility::makeInstance(ProductImageService::class) $images = GeneralUtility::makeInstance(ProductImageService::class)
->getImages((int) $product['uid']); ->getImages((int) $data['uid']);
return [ return [
'name' => $product['name'], 'product' => [
'code' => $product['code'], 'name' => $data['productName'],
'headline' => $product['headline'], 'code' => $data['productCode'],
'teaser' => $product['teaser'], 'images' => $images,
'teaserLong' => $product['teaser_long'], ],
'conceptDescription' => $product['concept_description'], 'country' => [
'boardDescription' => $product['board_description'], 'name' => $data['countryName'],
'programmeDescription' => $product['programme_description'], ],
'includedServices' => $product['included_services'], 'region' => [
'additionalServices' => $product['additional_services'], 'name' => $data['regionName'],
'skiPassAltTitle' => $product['ski_pass_alt_title'], ],
'skiPassDescription' => $product['ski_pass_description'], 'city' => [
'images' => $images, 'name' => $data['cityName'],
],
]; ];
} }