GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( eeec88...a15255 )
by Bob Olde
10s
created

PaymentMethods::import()   C

Complexity

Conditions 7
Paths 20

Size

Total Lines 34
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 34
rs 6.7272
c 0
b 0
f 0
cc 7
eloc 19
nc 20
nop 2
1
<?php
2
3
namespace NerdsAndCompany\Schematic\Commerce\Services;
4
5
use Craft\Craft;
6
use Craft\Commerce_PaymentMethodModel;
7
use NerdsAndCompany\Schematic\Services\Base;
8
9
/**
10
 * Schematic Commerce Payment Methods Service.
11
 *
12
 * Sync Craft Setups.
13
 *
14
 * @author    Nerds & Company
15
 * @copyright Copyright (c) 2015-2017, Nerds & Company
16
 * @license   MIT
17
 *
18
 * @see      http://www.nerds.company
19
 */
20
class PaymentMethods extends Base
21
{
22
    /**
23
     * Export paymentMethods.
24
     *
25
     * @param PaymentMethodModel[] $paymentMethods
26
     *
27
     * @return array
28
     */
29
    public function export(array $paymentMethods = [])
30
    {
31
        if (!count($paymentMethods)) {
32
            $paymentMethods = Craft::app()->commerce_paymentMethods->getAllPaymentMethods();
33
        }
34
35
        Craft::log(Craft::t('Exporting Commerce Payment Methods'));
36
37
        $paymentMethodDefinitions = [];
38
39
        foreach ($paymentMethods as $paymentMethod) {
40
            $paymentMethodDefinitions[$paymentMethod->name] = $this->getPaymentMethodDefinition($paymentMethod);
41
        }
42
43
        return $paymentMethodDefinitions;
44
    }
45
46
    /**
47
     * Get payment methods definition.
48
     *
49
     * @param Commerce_PaymentMethodModel $paymentMethod
50
     *
51
     * @return array
52
     */
53
    private function getPaymentMethodDefinition(Commerce_PaymentMethodModel $paymentMethod)
54
    {
55
        return [
56
            'class' => $paymentMethod->class,
57
            'name' => $paymentMethod->name,
58
            'paymentType' => $paymentMethod->paymentType,
59
            'frontendEnabled' => $paymentMethod->frontendEnabled,
60
            'isArchived' => $paymentMethod->isArchived,
61
            'dateArchived' => $paymentMethod->dateArchived,
62
            'settings' => $paymentMethod->settings,
63
        ];
64
    }
65
66
    /**
67
     * Attempt to import payment methods.
68
     *
69
     * @param array $paymentMethodDefinitions
70
     * @param bool  $force                    If set to true payment methods not included in the import will be deleted
71
     *
72
     * @return Result
73
     */
74
    public function import(array $paymentMethodDefinitions, $force = false)
75
    {
76
        Craft::log(Craft::t('Importing Commerce Payment Methods'));
77
78
        $paymentMethods = array();
79
        foreach (Craft::app()->commerce_paymentMethods->getAllPaymentMethods() as $paymentMethod) {
80
            $paymentMethods[$paymentMethod->name] = $paymentMethod;
81
        }
82
83
        foreach ($paymentMethodDefinitions as $paymentMethodDefinition) {
84
            $paymentMethodHandle = $paymentMethodDefinition['name'];
85
            $paymentMethod = array_key_exists($paymentMethodHandle, $paymentMethods)
86
                ? $paymentMethods[$paymentMethodHandle]
87
                : new Commerce_PaymentMethodModel();
88
89
            unset($paymentMethods[$paymentMethodHandle]);
90
91
            $this->populatePaymentMethod($paymentMethod, $paymentMethodDefinition, $paymentMethodHandle);
92
93
            if (!Craft::app()->commerce_paymentMethods->savePaymentMethod($paymentMethod)) { // Save paymentmethod via craft
94
                $this->addErrors($paymentMethod->getAllErrors());
95
96
                continue;
97
            }
98
        }
99
100
        if ($force) {
101
            foreach ($paymentMethods as $paymentMethod) {
102
                Craft::app()->commerce_paymentMethods->archivePaymentMethod($paymentMethod->id);
103
            }
104
        }
105
106
        return $this->getResultModel();
107
    }
108
109
    /**
110
     * Populate paymentMethod.
111
     *
112
     * @param Commerce_PaymentMethodModel $paymentMethod
113
     * @param array                       $paymentMethodDefinition
114
     * @param string                      $paymentMethodHandle
115
     */
116
    private function populatePaymentMethod(Commerce_PaymentMethodModel $paymentMethod, array $paymentMethodDefinition, $paymentMethodHandle)
117
    {
118
        $paymentMethod->setAttributes([
119
            'name' => $paymentMethodHandle,
120
            'class' => $paymentMethodDefinition['class'],
121
            'paymentType' => $paymentMethodDefinition['paymentType'],
122
            'frontendEnabled' => $paymentMethodDefinition['frontendEnabled'],
123
            'isArchived' => $paymentMethodDefinition['isArchived'],
124
            'dateArchived' => $paymentMethodDefinition['dateArchived'],
125
            'settings' => $paymentMethodDefinition['settings'],
126
        ]);
127
    }
128
}
129