Failed Conditions
Push — master ( ae631c...a04781 )
by
unknown
52:50 queued 12:37
created

SspAssetSearchFormHandler::handleSearchForm()   B

Complexity

Conditions 7
Paths 6

Size

Total Lines 35
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 7
eloc 17
nc 6
nop 3
dl 0
loc 35
rs 8.8333
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerFeature\Yves\SelfServicePortal\Asset\Handler;
9
10
use ArrayObject;
11
use Generated\Shared\Transfer\CompanyUserTransfer;
12
use Generated\Shared\Transfer\SortTransfer;
13
use Generated\Shared\Transfer\SspAssetConditionsTransfer;
14
use Generated\Shared\Transfer\SspAssetCriteriaTransfer;
15
use Generated\Shared\Transfer\SspAssetTransfer;
16
use SprykerFeature\Yves\SelfServicePortal\Asset\Form\SspAssetSearchForm;
17
use Symfony\Component\Form\FormInterface;
18
19
class SspAssetSearchFormHandler implements SspAssetSearchFormHandlerInterface
20
{
21
    public function handleSearchForm(
22
        FormInterface $sspAssetSearchForm,
23
        SspAssetCriteriaTransfer $sspAssetCriteriaTransfer,
24
        CompanyUserTransfer $companyUserTransfer
25
    ): SspAssetCriteriaTransfer {
26
        if (!$sspAssetCriteriaTransfer->getSspAssetConditions()) {
27
            $sspAssetCriteriaTransfer->setSspAssetConditions(new SspAssetConditionsTransfer());
28
        }
29
30
        $sspAssetSearchFormData = $sspAssetSearchForm->getData();
31
32
        $isAscending = ($sspAssetSearchFormData[SspAssetSearchForm::FIELD_ORDER_DIRECTION] ?? 'DESC') === 'ASC';
33
34
        $fieldOrderBy = $sspAssetSearchFormData[SspAssetSearchForm::FIELD_ORDER_BY] ?? SspAssetTransfer::ID_SSP_ASSET;
35
36
        $sortTransfer = (new SortTransfer())
37
            ->setField($fieldOrderBy === SspAssetTransfer::REFERENCE ? SspAssetTransfer::ID_SSP_ASSET : $fieldOrderBy)
38
            ->setIsAscending($isAscending);
39
40
        $sortCollection = new ArrayObject();
41
        $sortCollection->append($sortTransfer);
42
43
        $sspAssetCriteriaTransfer->setSortCollection($sortCollection);
44
45
        if (isset($sspAssetSearchFormData['reset']) && $sspAssetSearchFormData['reset']) {
46
            return $sspAssetCriteriaTransfer;
47
        }
48
49
        if (isset($sspAssetSearchFormData['filters']) && $sspAssetSearchFormData['filters']['scope'] === 'filterByBusinessUnit') {
50
            $sspAssetCriteriaTransfer->getSspAssetConditionsOrFail()->setAssignedBusinessUnitId($companyUserTransfer->getFkCompanyBusinessUnitOrFail());
51
        }
52
53
        $sspAssetCriteriaTransfer->getSspAssetConditionsOrFail()->setSearchText($sspAssetSearchFormData[SspAssetSearchForm::FIELD_SEARCH_TEXT] ?? null);
54
55
        return $sspAssetCriteriaTransfer;
56
    }
57
}
58