Completed
Push — develop ( f37ae4...1d947e )
by Nate
18:30
created

ResourcesController::actionAssociate()   A

Complexity

Conditions 5
Paths 16

Size

Total Lines 36

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 30

Importance

Changes 0
Metric Value
dl 0
loc 36
ccs 0
cts 30
cp 0
rs 9.0328
c 0
b 0
f 0
cc 5
nc 16
nop 4
crap 30
1
<?php
2
3
/**
4
 * @copyright  Copyright (c) Flipbox Digital Limited
5
 * @license    https://flipboxfactory.com/software/force/license
6
 * @link       https://www.flipboxfactory.com/software/force/
7
 */
8
9
namespace flipbox\hubspot\cp\controllers;
10
11
use Craft;
12
use craft\helpers\ArrayHelper;
13
use flipbox\hubspot\actions\resources\Associate;
14
use flipbox\hubspot\actions\resources\Dissociate;
15
16
/**
17
 * @author Flipbox Factory <[email protected]>
18
 * @since 1.0.0
19
 */
20
class ResourcesController extends AbstractController
21
{
22
    /**
23
     * @return array
24
     */
25
    public function behaviors()
26
    {
27
        return ArrayHelper::merge(
28
            parent::behaviors(),
29
            [
30
                'error' => [
31
                    'default' => 'element'
32
                ],
33
                'redirect' => [
34
                    'only' => ['associate', 'dissociate'],
35
                    'actions' => [
36
                        'associate' => [200],
37
                        'dissociate' => [200]
38
                    ]
39
                ],
40
                'flash' => [
41
                    'actions' => [
42
                        'associate' => [
43
                            200 => Craft::t('force', "HubSpot Resource associated successfully"),
44
                            400 => Craft::t('force', "Failed to associate HubSpot Resource")
45
                        ],
46
                        'dissociate' => [
47
                            200 => Craft::t('force', "HubSpot Resource dissociated successfully"),
48
                            400 => Craft::t('force', "Failed to dissociate Salesforce Resource")
49
                        ]
50
                    ]
51
                ]
52
            ]
53
        );
54
    }
55
56
    /**
57
     * @param string|null $newHubSpotId
58
     * @param string|null $hubSpotId
59
     * @param string|null $field
60
     * @param string|null $element
61
     * @return \flipbox\force\records\SObjectAssociation|null
62
     * @throws \yii\base\InvalidConfigException
63
     * @throws \yii\web\BadRequestHttpException
64
     */
65
    public function actionAssociate(
66
        string $newHubSpotId = null,
67
        string $hubSpotId = null,
68
        string $field = null,
69
        string $element = null
70
    ) {
71
72
        if ($hubSpotId === null) {
73
            $hubSpotId = Craft::$app->getRequest()->getParam('hubSpotId');
74
        }
75
76
        if ($newHubSpotId === null) {
77
            $newHubSpotId = Craft::$app->getRequest()->getRequiredParam('newHubSpotId');
78
        }
79
80
        if ($field === null) {
81
            $field = Craft::$app->getRequest()->getRequiredParam('field');
82
        }
83
84
        if ($element === null) {
85
            $element = Craft::$app->getRequest()->getRequiredParam('element');
86
        }
87
88
        /** @var Associate $action */
89
        return (Craft::createObject([
90
            'class' => Associate::class
91
        ], [
92
            'associate',
93
            $this
94
        ]))->runWithParams([
95
            'field' => $field,
96
            'element' => $element,
97
            'hubSpotId' => $hubSpotId,
98
            'newHubSpotId' => $newHubSpotId
99
        ]);
100
    }
101
102
    /**
103
     * @param string|null $hubSpotId
104
     * @param string|null $field
105
     * @param string|null $element
106
     * @return \flipbox\force\records\SObjectAssociation|null
107
     * @throws \yii\base\InvalidConfigException
108
     * @throws \yii\web\BadRequestHttpException
109
     */
110
    public function actionDissociate(
111
        string $hubSpotId = null,
112
        string $field = null,
113
        string $element = null
114
    ) {
115
116
        if ($hubSpotId === null) {
117
            $hubSpotId = Craft::$app->getRequest()->getRequiredParam('hubSpotId');
118
        }
119
120
        if ($field === null) {
121
            $field = Craft::$app->getRequest()->getRequiredParam('field');
122
        }
123
124
        if ($element === null) {
125
            $element = Craft::$app->getRequest()->getRequiredParam('element');
126
        }
127
128
        /** @var Dissociate $action */
129
        return (Craft::createObject([
130
            'class' => Dissociate::class
131
        ], [
132
            'dissociate',
133
            $this
134
        ]))->runWithParams([
135
            'field' => $field,
136
            'element' => $element,
137
            'hubSpotId' => $hubSpotId
138
        ]);
139
    }
140
}
141