Skip to content

Commit 38ae801

Browse files
mdevaudmdevaud
and
mdevaud
authored
Feat: add new route (#24)
Add new PUT route for CustomerFamilyProductPrice Co-authored-by: mdevaud <mdevaud@openstudio.fr>
1 parent e8ed25e commit 38ae801

File tree

3 files changed

+54
-1
lines changed

3 files changed

+54
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
namespace CustomerFamily\Api\Controller;
4+
5+
use CustomerFamily\Api\Resource\CustomerFamilyProductPrice;
6+
use CustomerFamily\Model\CustomerFamilyProductPriceQuery;
7+
use Symfony\Component\HttpFoundation\Request;
8+
use Symfony\Component\HttpKernel\Attribute\AsController;
9+
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
10+
use Thelia\Api\Bridge\Propel\Service\ApiResourcePropelTransformerService;
11+
12+
#[AsController]
13+
class CustomerFamilyProductPriceUpdateByRef
14+
{
15+
public function __construct(
16+
private ApiResourcePropelTransformerService $apiResourcePropelTransformerService
17+
)
18+
{
19+
}
20+
21+
public function __invoke(string $productSaleElementsRef, string $customerFamilyCode, Request $request)
22+
{
23+
$customerFamilyProductPrice = CustomerFamilyProductPriceQuery::create()
24+
->useProductSaleElementsQuery()
25+
->filterByRef($productSaleElementsRef)
26+
->endUse()
27+
->useCustomerFamilyQuery()
28+
->filterByCode($customerFamilyCode)
29+
->endUse()
30+
->findOne()
31+
;
32+
33+
if(!$customerFamilyProductPrice){
34+
throw new NotFoundHttpException('NotFound');
35+
}
36+
/** @var CustomerFamilyProductPrice $customerFamilyProductPriceResource */
37+
$customerFamilyProductPriceResource = $this->apiResourcePropelTransformerService->modelToResource(CustomerFamilyProductPrice::class,$customerFamilyProductPrice,[]);
38+
39+
/** @var CustomerFamilyProductPrice $data */
40+
$data = $request->get('data');
41+
42+
return $customerFamilyProductPriceResource
43+
->setPromo(isset($data->promo) ? $data->getPromo() : $customerFamilyProductPriceResource->getPromo() )
44+
->setPrice( isset($data->price) ? $data->getPrice() : $customerFamilyProductPriceResource->getPrice())
45+
->setPromoPrice( isset($data->promoPrice) ? $data->getPromoPrice() : $customerFamilyProductPriceResource->getPromoPrice() );
46+
}
47+
}

Api/Resource/CustomerFamilyProductPrice.php

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use ApiPlatform\Metadata\Get;
88
use ApiPlatform\Metadata\Post;
99
use ApiPlatform\Metadata\Put;
10+
use CustomerFamily\Api\Controller\CustomerFamilyProductPriceUpdateByRef;
1011
use CustomerFamily\Api\State\CustomerFamilyPricePersistProcessor;
1112
use CustomerFamily\Model\Map\CustomerFamilyProductPriceTableMap;
1213
use Propel\Runtime\Map\TableMap;
@@ -24,6 +25,11 @@
2425
new Get(
2526
uriTemplate: '/admin/customer_family_product_prices/{productSaleElementsId}/family/{customerFamilyCode}',
2627
),
28+
new Put(
29+
uriTemplate: '/admin/customer_family_product_prices/reference/{productSaleElementsRef}/family/{customerFamilyCode}',
30+
controller: CustomerFamilyProductPriceUpdateByRef::class,
31+
read: false,
32+
),
2733
new Put(
2834
uriTemplate: '/admin/customer_family_product_prices/{productSaleElementsId}/family/{customerFamilyCode}',
2935
),

Config/module.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<descriptive locale="fr_FR">
88
<title>Famille de clients et prix d'achat</title>
99
</descriptive>
10-
<version>3.1.3</version>
10+
<version>3.1.4</version>
1111
<author>
1212
<name>Guillaume Barral / Etienne Perriere</name>
1313
<email>gbarral@openstudio.fr / eperriere@openstudio.fr</email>

0 commit comments

Comments
 (0)