Skip to content

Commit 6d1e819

Browse files
authored
[project-base] repeat order improvements (#2876)
2 parents f14064e + 34ead70 commit 6d1e819

File tree

6 files changed

+65
-12
lines changed

6 files changed

+65
-12
lines changed

src/Model/Order/OrderFacade.php renamed to src/Model/Order/OrderApiFacade.php

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,34 @@
55
namespace Shopsys\FrontendApiBundle\Model\Order;
66

77
use Shopsys\FrameworkBundle\Model\Customer\User\CustomerUser;
8+
use Shopsys\FrameworkBundle\Model\Order\Exception\OrderNotFoundException;
89
use Shopsys\FrameworkBundle\Model\Order\Order;
10+
use Shopsys\FrameworkBundle\Model\Order\OrderFacade;
11+
use Shopsys\FrontendApiBundle\Model\Resolver\Order\Exception\OrderNotFoundUserError;
912

10-
class OrderFacade
13+
class OrderApiFacade
1114
{
1215
/**
1316
* @param \Shopsys\FrontendApiBundle\Model\Order\OrderRepository $orderRepository
17+
* @param \Shopsys\FrameworkBundle\Model\Order\OrderFacade $orderFacade
1418
*/
15-
public function __construct(protected readonly OrderRepository $orderRepository)
19+
public function __construct(
20+
protected readonly OrderRepository $orderRepository,
21+
protected readonly OrderFacade $orderFacade,
22+
) {
23+
}
24+
25+
/**
26+
* @param string $orderUuid
27+
* @return \Shopsys\FrameworkBundle\Model\Order\Order
28+
*/
29+
public function getByUuid(string $orderUuid): Order
1630
{
31+
try {
32+
return $this->orderFacade->getByUuid($orderUuid);
33+
} catch (OrderNotFoundException) {
34+
throw new OrderNotFoundUserError('Order with UUID \'' . $orderUuid . '\' not found.');
35+
}
1736
}
1837

1938
/**

src/Model/Order/OrderRepository.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public function __construct(EntityManagerInterface $entityManager)
2323

2424
/**
2525
* @return \Doctrine\ORM\QueryBuilder
26-
* @internal This will be replaced by \Shopsys\FrameworkBundle\Model\Order::getOrderRepository() with visibility set to public
2726
*/
2827
protected function createOrderQueryBuilder()
2928
{

src/Model/Resolver/Order/OrderQuery.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
use Shopsys\FrameworkBundle\Model\Order\Exception\OrderNotFoundException;
1111
use Shopsys\FrameworkBundle\Model\Order\Order;
1212
use Shopsys\FrameworkBundle\Model\Order\OrderFacade;
13-
use Shopsys\FrontendApiBundle\Model\Order\OrderFacade as FrontendApiOrderFacade;
13+
use Shopsys\FrontendApiBundle\Model\Order\OrderApiFacade;
1414
use Shopsys\FrontendApiBundle\Model\Resolver\AbstractQuery;
1515
use Shopsys\FrontendApiBundle\Model\Resolver\Order\Exception\InvalidAccessUserError;
1616
use Shopsys\FrontendApiBundle\Model\Resolver\Order\Exception\OrderNotFoundUserError;
@@ -21,13 +21,13 @@ class OrderQuery extends AbstractQuery
2121
* @param \Shopsys\FrameworkBundle\Model\Customer\User\CurrentCustomerUser $currentCustomerUser
2222
* @param \Shopsys\FrameworkBundle\Model\Order\OrderFacade $orderFacade
2323
* @param \Shopsys\FrameworkBundle\Component\Domain\Domain $domain
24-
* @param \Shopsys\FrontendApiBundle\Model\Order\OrderFacade $frontendApiOrderFacade
24+
* @param \Shopsys\FrontendApiBundle\Model\Order\OrderApiFacade $orderApiFacade
2525
*/
2626
public function __construct(
2727
protected readonly CurrentCustomerUser $currentCustomerUser,
2828
protected readonly OrderFacade $orderFacade,
2929
protected readonly Domain $domain,
30-
protected readonly FrontendApiOrderFacade $frontendApiOrderFacade,
30+
protected readonly OrderApiFacade $orderApiFacade,
3131
) {
3232
}
3333

@@ -64,6 +64,6 @@ protected function getOrderForCustomerUserByUuid(
6464
CustomerUser $customerUser,
6565
string $uuid,
6666
): Order {
67-
return $this->frontendApiOrderFacade->getByUuidAndCustomerUser($uuid, $customerUser);
67+
return $this->orderApiFacade->getByUuidAndCustomerUser($uuid, $customerUser);
6868
}
6969
}

src/Model/Resolver/Order/OrdersQuery.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use Overblog\GraphQLBundle\Definition\Argument;
88
use Overblog\GraphQLBundle\Relay\Connection\Paginator;
99
use Shopsys\FrameworkBundle\Model\Customer\User\CurrentCustomerUser;
10-
use Shopsys\FrontendApiBundle\Model\Order\OrderFacade;
10+
use Shopsys\FrontendApiBundle\Model\Order\OrderApiFacade;
1111
use Shopsys\FrontendApiBundle\Model\Resolver\AbstractQuery;
1212
use Shopsys\FrontendApiBundle\Model\Token\Exception\InvalidTokenUserMessageException;
1313

@@ -17,11 +17,11 @@ class OrdersQuery extends AbstractQuery
1717

1818
/**
1919
* @param \Shopsys\FrameworkBundle\Model\Customer\User\CurrentCustomerUser $currentCustomerUser
20-
* @param \Shopsys\FrontendApiBundle\Model\Order\OrderFacade $orderFacade
20+
* @param \Shopsys\FrontendApiBundle\Model\Order\OrderApiFacade $orderApiFacade
2121
*/
2222
public function __construct(
2323
protected readonly CurrentCustomerUser $currentCustomerUser,
24-
protected readonly OrderFacade $orderFacade,
24+
protected readonly OrderApiFacade $orderApiFacade,
2525
) {
2626
}
2727

@@ -40,10 +40,10 @@ public function ordersQuery(Argument $argument)
4040
}
4141

4242
$paginator = new Paginator(function ($offset, $limit) use ($customerUser) {
43-
return $this->orderFacade->getCustomerUserOrderLimitedList($customerUser, $limit, $offset);
43+
return $this->orderApiFacade->getCustomerUserOrderLimitedList($customerUser, $limit, $offset);
4444
});
4545

46-
return $paginator->auto($argument, $this->orderFacade->getCustomerUserOrderCount($customerUser));
46+
return $paginator->auto($argument, $this->orderApiFacade->getCustomerUserOrderCount($customerUser));
4747
}
4848

4949
/**
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Shopsys\FrontendApiBundle\Model\Resolver\Settings;
6+
7+
use Shopsys\FrameworkBundle\Component\EntityExtension\EntityNameResolver;
8+
use Shopsys\FrameworkBundle\Model\Order\Order;
9+
use Shopsys\FrontendApiBundle\Model\Resolver\AbstractQuery;
10+
11+
class MaxAllowedPaymentTransactionsQuery extends AbstractQuery
12+
{
13+
/**
14+
* @param \Shopsys\FrameworkBundle\Component\EntityExtension\EntityNameResolver $entityNameResolver
15+
*/
16+
public function __construct(
17+
protected readonly EntityNameResolver $entityNameResolver,
18+
) {
19+
}
20+
21+
/**
22+
* @return int
23+
*/
24+
public function maxAllowedPaymentTransactionsQuery(): int
25+
{
26+
/** @var \Shopsys\FrameworkBundle\Model\Order\Order $orderClass */
27+
$orderClass = $this->entityNameResolver->resolve(Order::class);
28+
29+
return $orderClass::MAX_TRANSACTION_COUNT;
30+
}
31+
}

src/Resources/config/graphql-types/SettingsDecorator.types.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,7 @@ SettingsDecorator:
88
type: "SeoSetting!"
99
resolve: "@=query('seoSettingsQuery')"
1010
description: "Settings related to SEO"
11+
maxAllowedPaymentTransactions:
12+
type: Int!
13+
resolve: "@=query('maxAllowedPaymentTransactionsQuery')"
14+
description: "Max allowed payment transactions (how many times is user allowed to try the same payment)"

0 commit comments

Comments
 (0)