BaseResponse::getStatus()   B
last analyzed

Complexity

Conditions 7
Paths 7

Size

Total Lines 14
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 12
c 3
b 0
f 0
dl 0
loc 14
rs 8.8333
cc 7
nc 7
nop 0
1
<?php
2
3
namespace Itau\API;
4
5
class BaseResponse implements \JsonSerializable
6
{
7
    use TraitEntity;
8
9
    const STATUS_AUTHORIZED = "AUTHORIZED";
10
    const STATUS_CONFIRMED = "CONFIRMED";
11
    const STATUS_PENDING = "PENDING";
12
    const STATUS_WAITING = "WAITING";
13
    const STATUS_APPROVED = "APPROVED";
14
    const STATUS_CANCELED = "CANCELED";
15
    const STATUS_DENIED = "DENIED";
16
    const STATUS_ERROR = "ERROR";
17
18
    private $responseJSON;
19
    private $status_code;
20
    private $status;
21
    private $mensagem;
22
    private $codigo;
23
24
    public function jsonSerialize(): mixed
25
    {
26
        return get_object_vars($this);
27
    }
28
29
    public function mapperJson($json)
30
    {
31
        if (is_array($json)) {
32
            array_walk_recursive($json, function ($value, $key) {
33
34
                if (property_exists($this, $key)) {
35
                    $this->$key = $value;
36
                }
37
            });
38
        }
39
40
        $this->setResponseJSON($json);
41
42
        return $this;
43
    }
44
45
    public function setResponseJSON($array)
46
    {
47
        $this->responseJSON = json_encode($array, JSON_PRETTY_PRINT);
48
49
        return $this;
50
    }
51
52
    public function setStatusCode($status_code)
53
    {
54
        $this->status_code = $status_code;
55
56
        return $this;
57
    }
58
59
    public function getStatusCode()
60
    {
61
        return empty($this->status_code) ? $this->codigo : $this->status_code;
62
    }
63
64
    public function setStatus($status)
65
    {
66
        $this->status = $status;
67
68
        return $this;
69
    }
70
71
    public function getStatus()
72
    {
73
        if ($this->status_code == 200) {
74
            $this->status = self::STATUS_CONFIRMED;
75
        } elseif ($this->status_code == 201) {
76
            $this->status = self::STATUS_AUTHORIZED;
77
        } elseif ($this->status_code == 202) {
78
            $this->status = self::STATUS_AUTHORIZED;
79
        } elseif ($this->status_code == 400) {
80
            $this->status = self::STATUS_ERROR;
81
        } elseif ($this->status_code == 402) {
82
            $this->status = self::STATUS_ERROR;
83
        } elseif ($this->status_code == 500) {
84
            $this->status = self::STATUS_ERROR;
85
        }
86
    }
87
88
    public function getMensagem(): ?string
89
    {
90
        return $this->mensagem;
91
    }
92
}