Passed
Push — master ( b616ab...e5c15e )
by Murilo
01:33
created

Profile::addPhone()   B

Complexity

Conditions 6
Paths 5

Size

Total Lines 41
Code Lines 26

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 26
c 1
b 0
f 0
dl 0
loc 41
rs 8.8817
cc 6
nc 5
nop 1
1
<?php
2
3
namespace Source\Controllers;
4
5
use \stdClass;
6
7
use Source\Core\Request;
8
use Source\Core\Response;
9
10
use Source\Models\User;
11
use Source\Models\Phone;
12
use Source\Models\Gender;
13
use Source\Models\AccessLevel;
14
use Source\Models\Address\Address;
15
use Source\Models\Address\City;
16
17
use Source\Controllers\Auth;
18
19
class Profile
20
{
21
    private $Message;
22
23
    private $Request;
24
25
    private $token;
26
27
    public function __construct()
28
    {
29
        $this->Message = new stdClass();
30
        $this->Request = new Request();
31
32
        $this->token = (new Auth())->validateLogin();
33
    }
34
35
    public function cart()
36
    {
37
        $this->Message->message = $this->token;
38
        
39
        (new Response())->setStatusCode(HTTP_OK)->send($this->Message);
40
    }
41
42
    public function profile()
43
    {
44
        $User = new User();
45
        
46
        $result = $User->findById($this->token['id'], 'id, gender_id, access_level_id, first_name, last_name, email, cpf, birth_date, photo, status, receive_promotion');
47
        
48
        if (!$result || $result == null) {
49
            $this->Message->message = 'Usuário não encontrado!';
50
            (new Response())->setStatusCode(HTTP_NOT_FOUND)->send($this->Message);
51
            return;
52
        }
53
54
        $result = $result->data();
55
56
        $this->Message->message = $result;
57
        $this->Message->message->phone = (new Phone())->findByUserId($result->id);
58
        $this->Message->message->address = Address::getAddressByUserId($result->id);
59
        $this->Message->message->gender_id = (new Gender())->findById($result->gender_id)->data();
60
        $this->Message->message->access_level_id = (new AccessLevel())->findById($result->access_level_id)->data();
61
        
62
        (new Response())->setStatusCode(HTTP_OK)->send($this->Message);
63
    }
64
65
    public function update($data)
66
    {
67
        $data = filter_var_array($data, FILTER_SANITIZE_STRIPPED);
68
69
        if (empty($data)) {
70
            $this->Message->message = 'Campos inválidos!';
71
            (new Response())->setStatusCode(HTTP_PARTIAL_CONTENT)->send($this->Message);
72
            return;
73
        }
74
75
        $User = new User();
76
77
        /** @var \Source\Models\User $User */
78
        $User = $User->findById($this->token['id'], 'id');
79
80
        if (!$User || $User == null) {
81
            $this->Message->message = 'Usuário não encontrado!';
82
            (new Response())->setStatusCode(HTTP_NOT_FOUND)->send($this->Message);
83
            return;
84
        }
85
86
        if (isset($data['first_name'])) {
87
            $first_name = filter_var($data["first_name"], FILTER_DEFAULT);
88
            
89
            if (!$first_name) {
90
                $this->Message->message = 'Nome inválido';
91
                (new Response())->setStatusCode(HTTP_PARTIAL_CONTENT)->send($this->Message);
92
                return;
93
            }
94
95
            $User->first_name = $first_name;
96
        }
97
98
        if (isset($data['last_name'])) {
99
            $last_name = filter_var($data["last_name"], FILTER_DEFAULT);
100
101
            if (!$last_name) {
102
                $this->Message->message = 'Nome inválido';
103
                (new Response())->setStatusCode(HTTP_PARTIAL_CONTENT)->send($this->Message);
104
                return;
105
            }
106
107
            $User->last_name = $last_name;
108
        }
109
110
        if (isset($data['birth_date'])) {
111
            $birth_date = filter_var($data["birth_date"], FILTER_DEFAULT);
112
113
            if (!$birth_date) {
114
                $this->Message->message = 'Data de nascimento inválida';
115
                (new Response())->setStatusCode(HTTP_PARTIAL_CONTENT)->send($this->Message);
116
                return;
117
            }
118
119
            $User->birth_date = $birth_date;
120
        }
121
122
        if (isset($data['cpf'])) {
123
            $cpf = filter_var($data["cpf"], FILTER_DEFAULT);
124
125
            if (!$cpf) {
126
                $this->Message->message = 'CPF inválido';
127
                (new Response())->setStatusCode(HTTP_PARTIAL_CONTENT)->send($this->Message);
128
                return;
129
            }
130
131
            $User->cpf = $cpf;
132
        }
133
134
        if (!$User->updateUser()) {
135
            $this->Message->message = $User->message();
136
            (new Response())->setStatusCode(HTTP_PARTIAL_CONTENT)->send($this->Message);
137
            return;
138
        }
139
140
        $this->Message->message = 'Alteração realizada com sucesso';
141
        (new Response())->setStatusCode(HTTP_OK)->send($this->Message);
142
    }
143
}
144
145