Completed
Push — master ( c14aad...5ba59a )
by Denis
06:56
created

User   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 83
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 41.67%

Importance

Changes 0
Metric Value
wmc 6
lcom 0
cbo 1
dl 0
loc 83
ccs 10
cts 24
cp 0.4167
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
B getUrl() 0 32 5
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: dp
5
 * Date: 26.07.17
6
 * Time: 11:57
7
 */
8
9
namespace Lan\Ebs\Sdk\Model;
10
11
use Exception;
12
use Lan\Ebs\Sdk\Classes\Model;
13
use Lan\Ebs\Sdk\Client;
14
15
/**
16
 * Модель пользователя
17
 *
18
 * @property mixed login
19
 * @property mixed email
20
 * @property mixed fio
21
 * @property mixed registered_at
22
 */
23
class User extends Model
24
{
25
    /**
26
     * Логин пользователя
27
     */
28
    const FIELD_LOGIN = 'login';
29
30
    /**
31
     * ФИО пользователя
32
     */
33
    const FIELD_FIO = 'fio';
34
35
    /**
36
     * Email пользователя
37
     */
38
    const FIELD_EMAIL = 'email';
39
40
    /**
41
     * Дата и время регистрации
42
     */
43
    const FIELD_REGISTERED = 'registered_at';
44
45
    /**
46
     * Пароль пользователя
47
     */
48
    const FIELD_PASSWORD = 'password';
49
50
    /**
51
     * Конструктор модели пользователя
52
     *
53
     * @param Client $client Инстанс клиента
54
     * @param array $fields Поля для выборки
55
     *
56
     * @throws Exception
57
     */
58 4
    public function __construct(Client $client, array $fields = [])
59
    {
60 4
        parent::__construct($client, $fields);
61 4
    }
62
63
    /**
64
     * Получение данных для запроса через API
65
     *
66
     * @param string $method Http-метод запроса
67
     * @param array $params Параметры для формирования урла
68
     *
69
     * @return array
70
     *
71
     * @throws Exception
72
     */
73 1
    public function getUrl($method, array $params = [])
74
    {
75
        switch ($method) {
76 1
            case 'get':
77
                return [
78
                    'url' => vsprintf('/1.0/security/user/get/%d', $params),
79
                    'method' => 'GET',
80
                    'code' => 200
81
                ];
82 1
            case 'post':
83
                return [
84 1
                    'url' => '/1.0/security/user/post',
85 1
                    'params' => [],
86 1
                    'method' => 'POST',
87
                    'code' => 201
88 1
                ];
89
            case 'put':
90
                return [
91
                    'url' => vsprintf('/1.0/security/user/put/%d', $params),
92
                    'method' => 'PUT',
93
                    'code' => 200
94
                ];
95
            case 'delete':
96
                return [
97
                    'url' => vsprintf('/1.0/security/user/delete/%d', $params),
98
                    'method' => 'DELETE',
99
                    'code' => 200
100
                ];
101
            default:
102
                throw new Exception('Route for ' . $method . ' not found');
103
        }
104
    }
105
}