Completed
Pull Request — master (#90)
by Bob Olde
04:21
created

AssetTransforms::getAssetTransformsService()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 2
1
<?php
2
3
namespace NerdsAndCompany\Schematic\Services;
4
5
use Craft\Craft;
6
7
/**
8
 * Schematic Asset Transforms Service.
9
 *
10
 * Sync Craft Setups.
11
 *
12
 * @author    Nerds & Company
13
 * @copyright Copyright (c) 2015-2017, Nerds & Company
14
 * @license   MIT
15
 *
16
 * @see      http://www.nerds.company
17
 */
18
class AssetTransforms extends Base
19
{
20
    /**
21
     * @return AssetTransformsService
22
     */
23
    private function getAssetTransformsService()
24
    {
25
        return Craft::app()->assetTransforms;
26
    }
27
28
    /**
29
     * @param $transformId
30
     *
31
     * @return array|mixed|null
32
     */
33
    public function getTransformById($transformId)
34
    {
35
        return AssetTransformRecord::model()->findByAttributes(['id' => $transformId]);
36
    }
37
38
    /**
39
     * @param $transformHandle
40
     *
41
     * @return array|mixed|null
42
     */
43
    public function getTransformByHandle($transformHandle)
44
    {
45
        return AssetTransformRecord::model()->findByAttributes(['handle' => $transformHandle]);
46
    }
47
48
    /**
49
     * Import asset transform definitions.
50
     *
51
     * @param array $assetTransformDefinitions
52
     * @param bool  $force
53
     *
54
     * @return Result
55
     */
56
    public function import(array $assetTransformDefinitions, $force = false)
57
    {
58
        Craft::log(Craft::t('Importing Asset Transforms'));
59
60
        foreach ($assetTransformDefinitions as $assetTransformHandle => $assetTransformDefinition) {
61
            $assetTransform = $this->populateAssetTransform($assetTransformHandle, $assetTransformDefinition);
62
63
            if (!Craft::app()->assetTransforms->saveTransform($assetTransform)) {
64
                $this->addErrors($assetTransform->getAllErrors());
65
            }
66
        }
67
68
        return $this->getResultModel();
69
    }
70
71
    /**
72
     * Populate asset transform.
73
     *
74
     * @param string $assetTransformHandle
75
     * @param array  $assetTransformDefinition
76
     *
77
     * @return AssetTransformModel
78
     */
79
    private function populateAssetSource($assetTransformHandle, array $assetTransformDefinition)
0 ignored issues
show
Unused Code introduced by
This method is not used, and could be removed.
Loading history...
80
    {
81
        $assetTransform = AssetTransformRecord::model()->findByAttributes(['handle' => $assetTransformHandle]);
82
        $assetTransform = $assetTransform ? AssetTransformModel::populateModel($assetTransform) : new AssetTransformModel();
83
84
        $assetTransform->setAttributes([
85
            'handle' => $assetTransformHandle,
86
            'name' => $assetTransformDefinition['name'],
87
            'width' => $assetTransformDefinition['width'],
88
            'height' => $assetTransformDefinition['height'],
89
            'format' => $assetTransformDefinition['format'],
90
            'dimensionChangeTime' => $assetTransformDefinition['dimensionChangeTime'],
91
            'mode' => $assetTransformDefinition['mode'],
92
            'position' => $assetTransformDefinition['position'],
93
            'quality' => $assetTransformDefinition['quality'],
94
        ]);
95
96
        return $assetTransform;
97
    }
98
99
    /**
100
     * Export all asset transforms.
101
     *
102
     * @param array $data
103
     *
104
     * @return array
105
     */
106
    public function export(array $data = [])
107
    {
108
        Craft::log(Craft::t('Exporting Asset Transforms'));
109
110
        $assetTransforms = $this->getAssetTransformsService()->getAllTransforms();
111
112
        $assetTransformDefinitions = [];
113
        foreach ($assetTransforms as $assetTransform) {
114
            $assetTransformDefinitions[$assetTransform->handle] = $this->getAssetTransformDefinition($assetTransform);
115
        }
116
117
        return $assetTransformDefinitions;
118
    }
119
120
    /**
121
     * @param AssetTransformModel $assetTransform
122
     *
123
     * @return array
124
     */
125
    private function getAssetTransformDefinition(AssetTransformModel $assetTransform)
126
    {
127
        return [
128
            'name' => $assetTransform->name,
129
            'width' => $assetTransform->width,
130
            'height' => $assetTransform->height,
131
            'format' => $assetTransform->format,
132
            'dimensionChangeTime' => $assetTransform->dimensionChangeTime,
133
            'mode' => $assetTransform->mode,
134
            'position' => $assetTransform->position,
135
            'quality' => $assetTransform->quality,
136
        ];
137
    }
138
}
139