CodebaseEnvironmentResponse::__construct()   A
last analyzed

Complexity

Conditions 5
Paths 5

Size

Total Lines 23
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 5
eloc 17
c 1
b 0
f 0
nc 5
nop 1
dl 0
loc 23
rs 9.3888
1
<?php
2
3
namespace AcquiaCloudApi\Response;
4
5
class CodebaseEnvironmentResponse
6
{
7
    public object $links;
8
9
    public string $id;
10
11
    public string $name;
12
13
    public string $label;
14
15
    public string $description;
16
17
    public string $status;
18
19
    public string $reference;
20
21
    public string $code_switch_status;
22
23
    public object $flags;
24
25
    /**
26
     * @var array<string, mixed> $properties
27
     */
28
    public array $properties;
29
30
    public object $codebase;
31
32
    public ?string $codebase_uuid = null;
33
34
    public function __construct(object $environment)
35
    {
36
        $this->links = $environment->_links;
37
        $this->id = $environment->id;
38
        $this->name = $environment->name;
39
        $this->label = $environment->label;
40
        $this->description = $environment->description;
41
        $this->status = $environment->status;
42
        $this->reference = $environment->reference;
43
        $this->code_switch_status = $environment->code_switch_status ?? 'IDLE';
44
        $this->flags = $environment->flags;
45
        $this->properties = (array) ($environment->properties ?? []);
46
47
        // Initialize codebase as empty object by default
48
        $this->codebase = new \stdClass();
49
50
        // Handle embedded codebase or direct codebase reference
51
        if (isset($environment->_embedded->codebase)) {
52
            $hasId = isset($environment->_embedded->codebase->id);
53
            $this->codebase_uuid = $hasId ? $environment->_embedded->codebase->id : null;
54
        } elseif (isset($environment->codebase)) {
55
            $hasId = isset($environment->codebase->id);
56
            $this->codebase_uuid = $hasId ? $environment->codebase->id : null;
57
        }
58
    }
59
}
60