Passed
Push — main ( 2962a2...bc4cf3 )
by Garbuz
02:48
created

Package::setForm()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 2
c 1
b 0
f 0
dl 0
loc 4
ccs 3
cts 3
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 4
    public function init(array $package): self
45
    {
46 4
        $this->packageArr = $package;
47 4
        $this->setName();
48 4
        $this->setDescription();
49 4
        $this->setPackageVendor();
50 4
        $this->setPackageName();
51
52 4
        $this->setGeneratorTests();
53 4
        $this->setGeneratorSeed();
54 4
        $this->setGeneratorApi();
55 4
        $this->setGeneratorApiFrontend();
56 4
        $this->setGeneratorLaravelAdmin();
57
58 4
        $this->setFields();
59 4
        $this->setForm();
60 4
        $this->setFilter();
61
62 4
        return $this;
63
    }
64
65
    /**
66
     * @return $this
67
     */
68 4
    public function setName(): self
69
    {
70 4
        $this->name = $this->packageArr['name'] ?? $this->name;
71 4
        return $this;
72
    }
73
74
    /**
75
     * @return $this
76
     */
77 4
    public function setDescription(): self
78
    {
79 4
        $this->name = $this->packageArr['description'] ?? $this->description;
80 4
        return $this;
81
    }
82
83
    /**
84
     * @return $this
85
     */
86 4
    public function setPackageVendor(): self
87
    {
88 4
        $this->packageVendor = $this->packageArr['vendor'] ?? $this->packageVendor;
89 4
        return $this;
90
    }
91
92
    /**
93
     * @return $this
94
     */
95 4
    public function setPackageName(): self
96
    {
97 4
        $this->packageName = $this->packageArr['package'] ?? $this->packageName;
98 4
        return $this;
99
    }
100
101
    /**
102
     * @return $this
103
     */
104 4
    public function setGeneratorTests(): self
105
    {
106 4
        $this->generator_tests = $this->packageArr['generator']['tests'] ?? $this->generator_tests;
107 4
        return $this;
108
    }
109
110
    /**
111
     * @return $this
112
     */
113 4
    public function setGeneratorSeed(): self
114
    {
115 4
        $this->generator_seed = $this->packageArr['generator']['seed'] ?? $this->generator_seed;
116 4
        return $this;
117
    }
118
119
    /**
120
     * @return $this
121
     */
122 4
    public function setGeneratorApi(): self
123
    {
124 4
        $this->generator_api = $this->packageArr['generator']['api'] ?? $this->generator_api;
125 4
        return $this;
126
    }
127
128
    /**
129
     * @return $this
130
     */
131 4
    public function setGeneratorApiFrontend(): self
132
    {
133 4
        $this->generator_api_frontend = $this->packageArr['generator']['api_frontend'] ?? $this->generator_api_frontend;
134 4
        return $this;
135
    }
136
137
    /**
138
     * @return $this
139
     */
140 4
    public function setGeneratorLaravelAdmin(): self
141
    {
142 4
        $this->generator_laravel_admin = $this->packageArr['generator']['laravel_admin'] ?? $this->generator_laravel_admin;
143 4
        return $this;
144
    }
145
146
    /**
147
     * @return $this
148
     */
149 4
    public function setFields(): self
150
    {
151 4
        if (!is_array($this->packageArr['fields'])) {
152
            return $this;
153
        }
154 4
        foreach ($this->packageArr['fields'] as $fieldKey => $fieldParam) {
155 4
            $this->fields[$fieldKey] = Field::loadFieldFromArray($fieldKey, $fieldParam);
156
        }
157 4
        return $this;
158
    }
159
160
    /**
161
     * @return $this
162
     */
163 4
    public function setForm(): self
164
    {
165 4
        $this->form = $this->packageArr['form'] ?? $this->form;
166 4
        return $this;
167
    }
168
169
    /**
170
     * @return $this
171
     */
172 4
    public function setFilter(): self
173
    {
174 4
        $this->filter = $this->packageArr['filter'] ?? $this->filter;
175 4
        return $this;
176
    }
177
178
    /**
179
     * @return string
180
     */
181
    public function getName(): string
182
    {
183
        return $this->name;
184
    }
185
186
    /**
187
     * @return string
188
     */
189
    public function getDescripton(): string
190
    {
191
        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
    public function getGeneratorTests(): bool
214
    {
215
        return $this->generator_tests;
216
    }
217
218
    /**
219
     * @return bool
220
     */
221
    public function getGeneratorSeed(): bool
222
    {
223
        return $this->generator_seed;
224
    }
225
226
    /**
227
     * @return bool
228
     */
229
    public function getGeneratorApi(): bool
230
    {
231
        return $this->generator_api;
232
    }
233
234
    /**
235
     * @return bool
236
     */
237
    public function getGeneratorApiFrontend(): bool
238
    {
239
        return $this->generator_api_frontend;
240
    }
241
242
    /**
243
     * @return bool
244
     */
245
    public function getGeneratorLaravelAdmin(): bool
246
    {
247
        return $this->generator_laravel_admin;
248
    }
249
250
    /**
251
     * @return array
252
     */
253
    public function getFields(): array
254
    {
255
        return $this->fields;
256
    }
257
258
    /**
259
     * @return array
260
     */
261
    public function getForm(): array
262
    {
263
        return $this->form;
264
    }
265
266
    /**
267
     * @return array
268
     */
269
    public function getFilter(): array
270
    {
271
        return $this->filter;
272
    }
273
}
274