Passed
Push — main ( 4d84a2...575a83 )
by Garbuz
02:46
created

Package::getGeneratorApiFrontend()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
ccs 2
cts 2
cp 1
rs 10
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace GarbuzIvan\LaravelGeneratorPackage\Builder;
6
7
use GarbuzIvan\LaravelGeneratorPackage\Facades\Field;
8
9
class Package
10
{
11
    private array $packageArr;
12
    /**
13
     * @var string
14
     */
15
    private string $name = 'name new package';
16
    private string $description = 'Description new package';
17
18
    /**
19
     * @var string|null
20
     */
21
    private ?string $packageVendor = null;
22
    private ?string $packageName = null;
23
24
    /**
25
     * @var bool
26
     */
27
    private bool $generator_tests = true;
28
    private bool $generator_seed = true;
29
    private bool $generator_api = true;
30
    private bool $generator_api_frontend = true;
31
    private bool $generator_laravel_admin = true;
32
33
    /**
34
     * @var array
35
     */
36
    private array $fields = [];
37
    private array $form = [];
38
    private array $filter = [];
39
40
    /**
41
     * @param array $package
42
     * @return $this
43
     */
44 14
    public function init(array $package): self
45
    {
46 14
        $this->packageArr = $package;
47 14
        $this->setName();
48 14
        $this->setDescription();
49 14
        $this->setPackageVendor();
50 14
        $this->setPackageName();
51
52 14
        $this->setGeneratorTests();
53 14
        $this->setGeneratorSeed();
54 14
        $this->setGeneratorApi();
55 14
        $this->setGeneratorApiFrontend();
56 14
        $this->setGeneratorLaravelAdmin();
57
58 14
        $this->setFields();
59 14
        $this->setForm();
60 14
        $this->setFilter();
61
62 14
        return $this;
63
    }
64
65
    /**
66
     * @return $this
67
     */
68 14
    public function setName(): self
69
    {
70 14
        $this->name = $this->packageArr['name'] ?? $this->name;
71 14
        return $this;
72
    }
73
74
    /**
75
     * @return $this
76
     */
77 14
    public function setDescription(): self
78
    {
79 14
        $this->description = $this->packageArr['description'] ?? $this->description;
80 14
        return $this;
81
    }
82
83
    /**
84
     * @return $this
85
     */
86 14
    public function setPackageVendor(): self
87
    {
88 14
        $this->packageVendor = $this->packageArr['vendor'] ?? $this->packageVendor;
89 14
        return $this;
90
    }
91
92
    /**
93
     * @return $this
94
     */
95 14
    public function setPackageName(): self
96
    {
97 14
        $this->packageName = $this->packageArr['package'] ?? $this->packageName;
98 14
        return $this;
99
    }
100
101
    /**
102
     * @return $this
103
     */
104 14
    public function setGeneratorTests(): self
105
    {
106 14
        $this->generator_tests = $this->packageArr['generator']['tests'] ?? $this->generator_tests;
107 14
        return $this;
108
    }
109
110
    /**
111
     * @return $this
112
     */
113 14
    public function setGeneratorSeed(): self
114
    {
115 14
        $this->generator_seed = $this->packageArr['generator']['seed'] ?? $this->generator_seed;
116 14
        return $this;
117
    }
118
119
    /**
120
     * @return $this
121
     */
122 14
    public function setGeneratorApi(): self
123
    {
124 14
        $this->generator_api = $this->packageArr['generator']['api'] ?? $this->generator_api;
125 14
        return $this;
126
    }
127
128
    /**
129
     * @return $this
130
     */
131 14
    public function setGeneratorApiFrontend(): self
132
    {
133 14
        $this->generator_api_frontend = $this->packageArr['generator']['api_frontend'] ?? $this->generator_api_frontend;
134 14
        return $this;
135
    }
136
137
    /**
138
     * @return $this
139
     */
140 14
    public function setGeneratorLaravelAdmin(): self
141
    {
142 14
        $this->generator_laravel_admin = $this->packageArr['generator']['laravel_admin'] ?? $this->generator_laravel_admin;
143 14
        return $this;
144
    }
145
146
    /**
147
     * @return $this
148
     */
149 14
    public function setFields(): self
150
    {
151 14
        if (!is_array($this->packageArr['fields'])) {
152
            return $this;
153
        }
154 14
        foreach ($this->packageArr['fields'] as $fieldKey => $fieldParam) {
155 14
            $this->fields[$fieldKey] = Field::loadFieldFromArray($fieldKey, $fieldParam);
156
        }
157 14
        return $this;
158
    }
159
160
    /**
161
     * @return $this
162
     */
163 14
    public function setForm(): self
164
    {
165 14
        $this->form = $this->packageArr['form'] ?? $this->form;
166 14
        return $this;
167
    }
168
169
    /**
170
     * @return $this
171
     */
172 14
    public function setFilter(): self
173
    {
174 14
        $this->filter = $this->packageArr['filter'] ?? $this->filter;
175 14
        return $this;
176
    }
177
178
    /**
179
     * @return string
180
     */
181 1
    public function getName(): string
182
    {
183 1
        return $this->name;
184
    }
185
186
    /**
187
     * @return string
188
     */
189 1
    public function getDescripton(): string
190
    {
191 1
        return $this->description;
192
    }
193
194
    /**
195
     * @return string|null
196
     */
197 3
    public function getPackageVendor(): ?string
198
    {
199 3
        return $this->packageVendor;
200
    }
201
202
    /**
203
     * @return string|null
204
     */
205 4
    public function getPackageName(): ?string
206
    {
207 4
        return $this->packageName;
208
    }
209
210
    /**
211
     * @return bool
212
     */
213 1
    public function getGeneratorTests(): bool
214
    {
215 1
        return $this->generator_tests;
216
    }
217
218
    /**
219
     * @return bool
220
     */
221 1
    public function getGeneratorSeed(): bool
222
    {
223 1
        return $this->generator_seed;
224
    }
225
226
    /**
227
     * @return bool
228
     */
229 1
    public function getGeneratorApi(): bool
230
    {
231 1
        return $this->generator_api;
232
    }
233
234
    /**
235
     * @return bool
236
     */
237 1
    public function getGeneratorApiFrontend(): bool
238
    {
239 1
        return $this->generator_api_frontend;
240
    }
241
242
    /**
243
     * @return bool
244
     */
245 1
    public function getGeneratorLaravelAdmin(): bool
246
    {
247 1
        return $this->generator_laravel_admin;
248
    }
249
250
    /**
251
     * @return array
252
     */
253 1
    public function getFields(): array
254
    {
255 1
        return $this->fields;
256
    }
257
258
    /**
259
     * @return array
260
     */
261 1
    public function getForm(): array
262
    {
263 1
        return $this->form;
264
    }
265
266
    /**
267
     * @return array
268
     */
269 1
    public function getFilter(): array
270
    {
271 1
        return $this->filter;
272
    }
273
}
274