Skip to content
This repository was archived by the owner on Apr 29, 2019. It is now read-only.

Commit 8f293fd

Browse files
author
Stanislav Idolov
committed
CheckoutAgreements getList refactoring
-- review fixes
1 parent 44e7090 commit 8f293fd

File tree

12 files changed

+262
-378
lines changed

12 files changed

+262
-378
lines changed

app/code/Magento/CheckoutAgreements/Model/AgreementsConfigProvider.php

Lines changed: 10 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Magento\Checkout\Model\ConfigProviderInterface;
99
use Magento\Framework\App\ObjectManager;
1010
use Magento\Store\Model\ScopeInterface;
11+
use Magento\CheckoutAgreements\Model\Api\SearchCriteria\ActiveStoreAgreementsFilter;
1112

1213
/**
1314
* Configuration provider for GiftMessage rendering on "Shipping Method" step of checkout.
@@ -35,53 +36,33 @@ class AgreementsConfigProvider implements ConfigProviderInterface
3536
private $checkoutAgreementsList;
3637

3738
/**
38-
* @var \Magento\Framework\Api\FilterBuilder
39+
* @var ActiveStoreAgreementsFilter
3940
*/
40-
private $filterBuilder;
41-
42-
/**
43-
* @var \Magento\Framework\Api\SearchCriteriaBuilder
44-
*/
45-
private $searchCriteriaBuilder;
46-
47-
/**
48-
* @var \Magento\Store\Model\StoreManagerInterface
49-
*/
50-
private $storeManager;
41+
private $activeStoreAgreementsFilter;
5142

5243
/**
5344
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfiguration
5445
* @param \Magento\CheckoutAgreements\Api\CheckoutAgreementsRepositoryInterface $checkoutAgreementsRepository
5546
* @param \Magento\Framework\Escaper $escaper
5647
* @param \Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface|null $checkoutAgreementsList
57-
* @param \Magento\Framework\Api\FilterBuilder|null $filterBuilder
58-
* @param \Magento\Framework\Api\SearchCriteriaBuilder|null $searchCriteriaBuilder
59-
* @param \Magento\Store\Model\StoreManagerInterface|null $storeManager
48+
* @param ActiveStoreAgreementsFilter|null $activeStoreAgreementsFilter
6049
* @codeCoverageIgnore
6150
*/
6251
public function __construct(
6352
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfiguration,
6453
\Magento\CheckoutAgreements\Api\CheckoutAgreementsRepositoryInterface $checkoutAgreementsRepository,
6554
\Magento\Framework\Escaper $escaper,
6655
\Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface $checkoutAgreementsList = null,
67-
\Magento\Framework\Api\FilterBuilder $filterBuilder = null,
68-
\Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder = null,
69-
\Magento\Store\Model\StoreManagerInterface $storeManager = null
56+
ActiveStoreAgreementsFilter $activeStoreAgreementsFilter = null
7057
) {
7158
$this->scopeConfiguration = $scopeConfiguration;
7259
$this->checkoutAgreementsRepository = $checkoutAgreementsRepository;
7360
$this->escaper = $escaper;
7461
$this->checkoutAgreementsList = $checkoutAgreementsList ?: ObjectManager::getInstance()->get(
7562
\Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface::class
7663
);
77-
$this->filterBuilder = $filterBuilder ?: ObjectManager::getInstance()->get(
78-
\Magento\Framework\Api\FilterBuilder::class
79-
);
80-
$this->searchCriteriaBuilder = $searchCriteriaBuilder ?: ObjectManager::getInstance()->get(
81-
\Magento\Framework\Api\SearchCriteriaBuilder::class
82-
);
83-
$this->storeManager = $storeManager ?: ObjectManager::getInstance()->get(
84-
\Magento\Store\Model\StoreManagerInterface::class
64+
$this->activeStoreAgreementsFilter = $activeStoreAgreementsFilter ?: ObjectManager::getInstance()->get(
65+
ActiveStoreAgreementsFilter::class
8566
);
8667
}
8768

@@ -108,20 +89,9 @@ protected function getAgreementsConfig()
10889
ScopeInterface::SCOPE_STORE
10990
);
11091

111-
$storeFilter = $this->filterBuilder
112-
->setField('store_id')
113-
->setConditionType('eq')
114-
->setValue($this->storeManager->getStore()->getId())
115-
->create();
116-
$isActiveFilter = $this->filterBuilder
117-
->setField('is_active')
118-
->setConditionType('eq')
119-
->setValue(1)
120-
->create();
121-
$this->searchCriteriaBuilder->addFilters([$storeFilter]);
122-
$this->searchCriteriaBuilder->addFilters([$isActiveFilter]);
123-
124-
$agreementsList = $this->checkoutAgreementsList->getList($this->searchCriteriaBuilder->create());
92+
$agreementsList = $this->checkoutAgreementsList->getList(
93+
$this->activeStoreAgreementsFilter->buildSearchCriteria()
94+
);
12595
$agreementConfiguration['isEnabled'] = (bool)($isAgreementsEnabled && count($agreementsList) > 0);
12696

12797
foreach ($agreementsList as $agreement) {
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\CheckoutAgreements\Model\Api\SearchCriteria;
8+
9+
/**
10+
* Build search criteria for agreements list.
11+
*/
12+
class ActiveStoreAgreementsFilter
13+
{
14+
/**
15+
* @var \Magento\Framework\Api\FilterBuilder
16+
*/
17+
private $filterBuilder;
18+
19+
/**
20+
* @var \Magento\Framework\Api\SearchCriteriaBuilder
21+
*/
22+
private $searchCriteriaBuilder;
23+
24+
/**
25+
* @var \Magento\Store\Model\StoreManagerInterface
26+
*/
27+
private $storeManager;
28+
29+
/**
30+
* @param \Magento\Framework\Api\FilterBuilder $filterBuilder
31+
* @param \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder
32+
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
33+
*/
34+
public function __construct(
35+
\Magento\Framework\Api\FilterBuilder $filterBuilder,
36+
\Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder,
37+
\Magento\Store\Model\StoreManagerInterface $storeManager
38+
) {
39+
$this->filterBuilder = $filterBuilder;
40+
$this->searchCriteriaBuilder = $searchCriteriaBuilder;
41+
$this->storeManager = $storeManager;
42+
}
43+
44+
/**
45+
* Build search criteria with store and is_active filters.
46+
*
47+
* @return \Magento\Framework\Api\SearchCriteriaInterface
48+
*/
49+
public function buildSearchCriteria() : \Magento\Framework\Api\SearchCriteriaInterface
50+
{
51+
$storeFilter = $this->filterBuilder
52+
->setField('store_id')
53+
->setConditionType('eq')
54+
->setValue($this->storeManager->getStore()->getId())
55+
->create();
56+
$isActiveFilter = $this->filterBuilder->setField('is_active')
57+
->setConditionType('eq')
58+
->setValue(1)
59+
->create();
60+
$this->searchCriteriaBuilder->addFilters([$storeFilter]);
61+
$this->searchCriteriaBuilder->addFilters([$isActiveFilter]);
62+
return $this->searchCriteriaBuilder->create();
63+
}
64+
}

app/code/Magento/CheckoutAgreements/Model/Checkout/Plugin/GuestValidation.php

Lines changed: 12 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
namespace Magento\CheckoutAgreements\Model\Checkout\Plugin;
77

88
use Magento\CheckoutAgreements\Model\AgreementsProvider;
9-
use Magento\Framework\App\ObjectManager;
109
use Magento\Store\Model\ScopeInterface;
10+
use Magento\CheckoutAgreements\Model\Api\SearchCriteria\ActiveStoreAgreementsFilter;
1111

1212
/**
1313
* Class GuestValidation
@@ -39,53 +39,29 @@ class GuestValidation
3939
private $checkoutAgreementsList;
4040

4141
/**
42-
* @var \Magento\Framework\Api\FilterBuilder
42+
* @var \Magento\CheckoutAgreements\Model\Api\SearchCriteria\ActiveStoreAgreementsFilter
4343
*/
44-
private $filterBuilder;
45-
46-
/**
47-
* @var \Magento\Framework\Api\SearchCriteriaBuilder
48-
*/
49-
private $searchCriteriaBuilder;
50-
51-
/**
52-
* @var \Magento\Store\Model\StoreManagerInterface
53-
*/
54-
private $storeManager;
44+
private $activeStoreAgreementsFilter;
5545

5646
/**
5747
* @param \Magento\Checkout\Api\AgreementsValidatorInterface $agreementsValidator
5848
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfiguration
5949
* @param \Magento\CheckoutAgreements\Api\CheckoutAgreementsRepositoryInterface $checkoutAgreementsRepository
60-
* @param \Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface|null $checkoutAgreementsList
61-
* @param \Magento\Framework\Api\FilterBuilder|null $filterBuilder
62-
* @param \Magento\Framework\Api\SearchCriteriaBuilder|null $searchCriteriaBuilder
63-
* @param \Magento\Store\Model\StoreManagerInterface|null $storeManager
50+
* @param \Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface $checkoutAgreementsList
51+
* @param ActiveStoreAgreementsFilter $activeStoreAgreementsFilter
6452
*/
6553
public function __construct(
6654
\Magento\Checkout\Api\AgreementsValidatorInterface $agreementsValidator,
6755
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfiguration,
6856
\Magento\CheckoutAgreements\Api\CheckoutAgreementsRepositoryInterface $checkoutAgreementsRepository,
69-
\Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface $checkoutAgreementsList = null,
70-
\Magento\Framework\Api\FilterBuilder $filterBuilder = null,
71-
\Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder = null,
72-
\Magento\Store\Model\StoreManagerInterface $storeManager = null
57+
\Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface $checkoutAgreementsList,
58+
\Magento\CheckoutAgreements\Model\Api\SearchCriteria\ActiveStoreAgreementsFilter $activeStoreAgreementsFilter
7359
) {
7460
$this->agreementsValidator = $agreementsValidator;
7561
$this->scopeConfiguration = $scopeConfiguration;
7662
$this->checkoutAgreementsRepository = $checkoutAgreementsRepository;
77-
$this->checkoutAgreementsList = $checkoutAgreementsList ?: ObjectManager::getInstance()->get(
78-
\Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface::class
79-
);
80-
$this->filterBuilder = $filterBuilder ?: ObjectManager::getInstance()->get(
81-
\Magento\Framework\Api\FilterBuilder::class
82-
);
83-
$this->searchCriteriaBuilder = $searchCriteriaBuilder ?: ObjectManager::getInstance()->get(
84-
\Magento\Framework\Api\SearchCriteriaBuilder::class
85-
);
86-
$this->storeManager = $storeManager ?: ObjectManager::getInstance()->get(
87-
\Magento\Store\Model\StoreManagerInterface::class
88-
);
63+
$this->checkoutAgreementsList = $checkoutAgreementsList;
64+
$this->activeStoreAgreementsFilter = $activeStoreAgreementsFilter;
8965
}
9066

9167
/**
@@ -95,6 +71,7 @@ public function __construct(
9571
* @param \Magento\Quote\Api\Data\PaymentInterface $paymentMethod
9672
* @param \Magento\Quote\Api\Data\AddressInterface|null $billingAddress
9773
* @throws \Magento\Framework\Exception\CouldNotSaveException
74+
* @return void
9875
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
9976
*/
10077
public function beforeSavePaymentInformationAndPlaceOrder(
@@ -116,6 +93,7 @@ public function beforeSavePaymentInformationAndPlaceOrder(
11693
* @param \Magento\Quote\Api\Data\PaymentInterface $paymentMethod
11794
* @param \Magento\Quote\Api\Data\AddressInterface|null $billingAddress
11895
* @throws \Magento\Framework\Exception\CouldNotSaveException
96+
* @return void
11997
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
12098
*/
12199
public function beforeSavePaymentInformation(
@@ -158,20 +136,8 @@ private function isAgreementEnabled()
158136
AgreementsProvider::PATH_ENABLED,
159137
ScopeInterface::SCOPE_STORE
160138
);
161-
$storeFilter = $this->filterBuilder
162-
->setField('store_id')
163-
->setConditionType('eq')
164-
->setValue($this->storeManager->getStore()->getId())
165-
->create();
166-
$isActiveFilter = $this->filterBuilder->setField('is_active')
167-
->setConditionType('eq')
168-
->setValue(1)
169-
->create();
170-
$this->searchCriteriaBuilder->addFilters([$storeFilter]);
171-
$this->searchCriteriaBuilder->addFilters([$isActiveFilter]);
172-
173139
$agreementsList = $isAgreementsEnabled
174-
? $this->checkoutAgreementsList->getList($this->searchCriteriaBuilder->create())
140+
? $this->checkoutAgreementsList->getList($this->activeStoreAgreementsFilter->buildSearchCriteria())
175141
: [];
176142
return (bool)($isAgreementsEnabled && count($agreementsList) > 0);
177143
}

app/code/Magento/CheckoutAgreements/Model/Checkout/Plugin/Validation.php

Lines changed: 12 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
namespace Magento\CheckoutAgreements\Model\Checkout\Plugin;
77

88
use Magento\CheckoutAgreements\Model\AgreementsProvider;
9-
use Magento\Framework\App\ObjectManager;
109
use Magento\Store\Model\ScopeInterface;
10+
use Magento\CheckoutAgreements\Model\Api\SearchCriteria\ActiveStoreAgreementsFilter;
1111

1212
/**
1313
* Class Validation
@@ -35,53 +35,29 @@ class Validation
3535
private $checkoutAgreementsList;
3636

3737
/**
38-
* @var \Magento\Framework\Api\FilterBuilder
38+
* @var \Magento\CheckoutAgreements\Model\Api\SearchCriteria\ActiveStoreAgreementsFilter
3939
*/
40-
private $filterBuilder;
41-
42-
/**
43-
* @var \Magento\Framework\Api\SearchCriteriaBuilder
44-
*/
45-
private $searchCriteriaBuilder;
46-
47-
/**
48-
* @var \Magento\Store\Model\StoreManagerInterface
49-
*/
50-
private $storeManager;
40+
private $activeStoreAgreementsFilter;
5141

5242
/**
5343
* @param \Magento\Checkout\Api\AgreementsValidatorInterface $agreementsValidator
5444
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfiguration
5545
* @param \Magento\CheckoutAgreements\Api\CheckoutAgreementsRepositoryInterface $checkoutAgreementsRepository
56-
* @param \Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface|null $checkoutAgreementsList
57-
* @param \Magento\Framework\Api\FilterBuilder|null $filterBuilder
58-
* @param \Magento\Framework\Api\SearchCriteriaBuilder|null $searchCriteriaBuilder
59-
* @param \Magento\Store\Model\StoreManagerInterface|null $storeManager
46+
* @param \Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface $checkoutAgreementsList
47+
* @param ActiveStoreAgreementsFilter $activeStoreAgreementsFilter
6048
*/
6149
public function __construct(
6250
\Magento\Checkout\Api\AgreementsValidatorInterface $agreementsValidator,
6351
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfiguration,
6452
\Magento\CheckoutAgreements\Api\CheckoutAgreementsRepositoryInterface $checkoutAgreementsRepository,
65-
\Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface $checkoutAgreementsList = null,
66-
\Magento\Framework\Api\FilterBuilder $filterBuilder = null,
67-
\Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder = null,
68-
\Magento\Store\Model\StoreManagerInterface $storeManager = null
53+
\Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface $checkoutAgreementsList,
54+
\Magento\CheckoutAgreements\Model\Api\SearchCriteria\ActiveStoreAgreementsFilter $activeStoreAgreementsFilter
6955
) {
7056
$this->agreementsValidator = $agreementsValidator;
7157
$this->scopeConfiguration = $scopeConfiguration;
7258
$this->checkoutAgreementsRepository = $checkoutAgreementsRepository;
73-
$this->checkoutAgreementsList = $checkoutAgreementsList ?: ObjectManager::getInstance()->get(
74-
\Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface::class
75-
);
76-
$this->filterBuilder = $filterBuilder ?: ObjectManager::getInstance()->get(
77-
\Magento\Framework\Api\FilterBuilder::class
78-
);
79-
$this->searchCriteriaBuilder = $searchCriteriaBuilder ?: ObjectManager::getInstance()->get(
80-
\Magento\Framework\Api\SearchCriteriaBuilder::class
81-
);
82-
$this->storeManager = $storeManager ?: ObjectManager::getInstance()->get(
83-
\Magento\Store\Model\StoreManagerInterface::class
84-
);
59+
$this->checkoutAgreementsList = $checkoutAgreementsList;
60+
$this->activeStoreAgreementsFilter = $activeStoreAgreementsFilter;
8561
}
8662

8763
/**
@@ -90,6 +66,7 @@ public function __construct(
9066
* @param \Magento\Quote\Api\Data\PaymentInterface $paymentMethod
9167
* @param \Magento\Quote\Api\Data\AddressInterface|null $billingAddress
9268
* @throws \Magento\Framework\Exception\CouldNotSaveException
69+
* @return void
9370
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
9471
*/
9572
public function beforeSavePaymentInformationAndPlaceOrder(
@@ -109,6 +86,7 @@ public function beforeSavePaymentInformationAndPlaceOrder(
10986
* @param \Magento\Quote\Api\Data\PaymentInterface $paymentMethod
11087
* @param \Magento\Quote\Api\Data\AddressInterface|null $billingAddress
11188
* @throws \Magento\Framework\Exception\CouldNotSaveException
89+
* @return void
11290
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
11391
*/
11492
public function beforeSavePaymentInformation(
@@ -150,20 +128,8 @@ protected function isAgreementEnabled()
150128
AgreementsProvider::PATH_ENABLED,
151129
ScopeInterface::SCOPE_STORE
152130
);
153-
$storeFilter = $this->filterBuilder
154-
->setField('store_id')
155-
->setConditionType('eq')
156-
->setValue($this->storeManager->getStore()->getId())
157-
->create();
158-
$isActiveFilter = $this->filterBuilder->setField('is_active')
159-
->setConditionType('eq')
160-
->setValue(1)
161-
->create();
162-
$this->searchCriteriaBuilder->addFilters([$storeFilter]);
163-
$this->searchCriteriaBuilder->addFilters([$isActiveFilter]);
164-
165131
$agreementsList = $isAgreementsEnabled
166-
? $this->checkoutAgreementsList->getList($this->searchCriteriaBuilder->create())
132+
? $this->checkoutAgreementsList->getList($this->activeStoreAgreementsFilter->buildSearchCriteria())
167133
: [];
168134
return (bool)($isAgreementsEnabled && count($agreementsList) > 0);
169135
}

app/code/Magento/CheckoutAgreements/Model/CheckoutAgreementsList.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66

77
namespace Magento\CheckoutAgreements\Model;
88

9+
/**
10+
* {@inheritdoc}
11+
*/
912
class CheckoutAgreementsList implements \Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface
1013
{
1114
/**

0 commit comments

Comments
 (0)