FieldsController   A
last analyzed

Complexity

Total Complexity 14

Size/Duplication

Total Lines 156
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 14
lcom 0
cbo 4
dl 0
loc 156
ccs 0
cts 105
cp 0
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A behaviors() 0 25 1
A actionPerformItemAction() 0 35 5
A actionPerformAction() 0 29 4
A actionCreateItem() 0 29 4
1
<?php
2
3
/**
4
 * @copyright  Copyright (c) Flipbox Digital Limited
5
 * @license    https://flipboxfactory.com/software/hubspot/license
6
 * @link       https://www.flipboxfactory.com/software/hubspot/
7
 */
8
9
namespace flipbox\craft\hubspot\cp\controllers;
10
11
use Craft;
12
use craft\helpers\ArrayHelper;
13
use flipbox\craft\hubspot\HubSpot;
14
use flipbox\craft\integration\actions\fields\CreateFieldItem;
15
use flipbox\craft\integration\actions\fields\PerformFieldAction;
16
use flipbox\craft\integration\actions\fields\PerformFieldItemAction;
17
use yii\web\BadRequestHttpException;
18
19
/**
20
 * @author Flipbox Factory <[email protected]>
21
 * @since 1.0.0
22
 */
23
class FieldsController extends AbstractController
24
{
25
    /**
26
     * @return array
27
     */
28
    public function behaviors()
29
    {
30
        return ArrayHelper::merge(
31
            parent::behaviors(),
32
            [
33
                'error' => [
34
                    'default' => 'action'
35
                ],
36
                'redirect' => [
37
                    'only' => ['perform-action'],
38
                    'actions' => [
39
                        'perform-action' => [200]
40
                    ]
41
                ],
42
                'flash' => [
43
                    'actions' => [
44
                        'perform-action' => [
45
                            200 => HubSpot::t("Action executed successfully."),
46
                            400 => HubSpot::t("Failed to execute action.")
47
                        ]
48
                    ]
49
                ]
50
            ]
51
        );
52
    }
53
54
    /**
55
     * Executes a Field Action.
56
     *
57
     * @param string|null $field
58
     * @param string|null $element
59
     * @param string|null $action
60
     * @param string|null $id
61
     * @return mixed
62
     * @throws BadRequestHttpException
63
     * @throws \yii\base\InvalidConfigException
64
     */
65
    public function actionPerformItemAction(
66
        string $field = null,
67
        string $element = null,
68
        string $action = null,
69
        string $id = null
70
    ) {
71
        if ($field === null) {
72
            $field = Craft::$app->getRequest()->getRequiredParam('field');
73
        }
74
75
        if ($element === null) {
76
            $element = Craft::$app->getRequest()->getRequiredParam('element');
77
        }
78
79
        if ($action === null) {
80
            $action = Craft::$app->getRequest()->getRequiredParam('action');
81
        }
82
83
        if ($id === null) {
84
            $id = Craft::$app->getRequest()->getRequiredParam('id');
85
        }
86
87
        /** @var PerformFieldItemAction $action */
88
        return (Craft::createObject([
89
            'class' => PerformFieldItemAction::class
90
        ], [
91
            'preform-action',
92
            $this
93
        ]))->runWithParams([
94
            'field' => $field,
95
            'element' => $element,
96
            'action' => $action,
97
            'id' => $id
98
        ]);
99
    }
100
101
    /**
102
     * Executes a Field Action.
103
     *
104
     * @param string|null $field
105
     * @param string|null $element
106
     * @param string|null $action
107
     * @return mixed
108
     * @throws BadRequestHttpException
109
     * @throws \yii\base\InvalidConfigException
110
     */
111
    public function actionPerformAction(
112
        string $field = null,
113
        string $element = null,
114
        string $action = null
115
    ) {
116
        if ($field === null) {
117
            $field = Craft::$app->getRequest()->getRequiredParam('field');
118
        }
119
120
        if ($element === null) {
121
            $element = Craft::$app->getRequest()->getRequiredParam('element');
122
        }
123
124
        if ($action === null) {
125
            $action = Craft::$app->getRequest()->getRequiredParam('action');
126
        }
127
128
        /** @var PerformFieldAction $action */
129
        return (Craft::createObject([
130
            'class' => PerformFieldAction::class
131
        ], [
132
            'preform-action',
133
            $this
134
        ]))->runWithParams([
135
            'field' => $field,
136
            'element' => $element,
137
            'action' => $action
138
        ]);
139
    }
140
141
    /**
142
     * @param string|null $field
143
     * @param string|null $element
144
     * @param string|null $id
145
     * @return mixed
146
     * @throws BadRequestHttpException
147
     * @throws \yii\base\InvalidConfigException
148
     */
149
    public function actionCreateItem(
150
        string $field = null,
151
        string $element = null,
152
        string $id = null
153
    ) {
154
        if ($field === null) {
155
            $field = Craft::$app->getRequest()->getRequiredParam('field');
156
        }
157
158
        if ($element === null) {
159
            $element = Craft::$app->getRequest()->getRequiredParam('element');
160
        }
161
162
        if ($id === null) {
163
            $id = Craft::$app->getRequest()->getParam('id');
164
        }
165
166
        /** @var CreateFieldItem $action */
167
        return (Craft::createObject([
168
            'class' => CreateFieldItem::class
169
        ], [
170
            'create-row',
171
            $this
172
        ]))->runWithParams([
173
            'field' => $field,
174
            'element' => $element,
175
            'id' => $id
176
        ]);
177
    }
178
}
179