Skip to content

Commit e5b0062

Browse files
TomasGottvaldvitek-rostislav
authored andcommitted
FE API: move productsByCatnums endpoint from project-base to frontend-api package
1 parent 5f0b69b commit e5b0062

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

src/Model/Product/ProductRepository.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,4 +472,41 @@ public function getAllOfferedProducts(int $domainId, PricingGroup $pricingGroup)
472472
{
473473
return $this->getAllOfferedQueryBuilder($domainId, $pricingGroup)->getQuery()->execute();
474474
}
475+
476+
/**
477+
* @param string[] $catnums
478+
* @return int[]
479+
*/
480+
public function getProductIdsByCatnums(array $catnums): array
481+
{
482+
$result = $this->em->createQueryBuilder()
483+
->select('p.id, p.catnum')
484+
->from(Product::class, 'p')
485+
->where('p.catnum IN (:catnums)')
486+
->setParameter('catnums', $catnums)
487+
->getQuery()
488+
->getScalarResult();
489+
490+
$catnumToIdMap = array_column($result, 'id', 'catnum');
491+
492+
return $this->getSortedProductIds($catnums, $catnumToIdMap);
493+
}
494+
495+
/**
496+
* @param string[] $catnumsToSortBy
497+
* @param array<string, int> $catnumToIdMap
498+
* @return int[]
499+
*/
500+
protected function getSortedProductIds(array $catnumsToSortBy, array $catnumToIdMap): array
501+
{
502+
$sortedProductIds = [];
503+
504+
foreach ($catnumsToSortBy as $catnum) {
505+
if (array_key_exists($catnum, $catnumToIdMap)) {
506+
$sortedProductIds[] = $catnumToIdMap[$catnum];
507+
}
508+
}
509+
510+
return $sortedProductIds;
511+
}
475512
}

0 commit comments

Comments
 (0)