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

Book   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 114
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 27.27%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 1
dl 0
loc 114
ccs 3
cts 11
cp 0.2727
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getUrl() 0 13 2
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
 * @property mixed name
17
 * @property mixed description
18
 * @property mixed isbn
19
 * @property mixed year
20
 * @property mixed edition
21
 * @property mixed pages
22
 * @property mixed special_marks
23
 * @property mixed classification
24
 * @property mixed authors
25
 * @property mixed author_additions
26
 * @property mixed bibliographic_record
27
 * @property mixed content_quality
28
 * @property mixed publisher
29
 * @property mixed url
30
 * @property mixed thumb
31
 */
32
class Book extends Model
33
{
34
    /**
35
     * Наименование книги
36
     */
37
    const FIELD_NAME = 'name';
38
39
    /**
40
     * Описание книги
41
     */
42
    const FIELD_DESCRIPTION = 'description';
43
44
    /**
45
     * ISBN книги
46
     */
47
    const FIELD_ISBN = 'isbn';
48
49
    /**
50
     * Год издания книги
51
     */
52
    const FIELD_YEAR = 'year';
53
54
    /**
55
     * Издание
56
     */
57
    const FIELD_EDITION = 'edition';
58
59
    /**
60
     * Объем книги
61
     */
62
    const FIELD_PAGES = 'pages';
63
64
    /**
65
     * Специальные отметки
66
     */
67
    const FIELD_SPECIAL_MARKS = 'special_marks';
68
69
    /**
70
     * Гриф
71
     */
72
    const FIELD_CLASSIFICATION = 'classification';
73
74
    /**
75
     * Авторы
76
     */
77
    const FIELD_AUTHORS = 'authors';
78
79
    /**
80
     * Дополнительные авторы
81
     */
82
    const FIELD_AUTHOR_ADDITIONS = 'author_additions';
83
84
    /**
85
     * Библиографическая запись
86
     */
87
    const FIELD_BIBLIOGRAPHIC_RECORD = 'bibliographic_record';
88
89
    /**
90
     * Качество текста книг (процент)
91
     */
92
    const FIELD_CONTENT_QUALITY = 'content_quality';
93
94
    /**
95
     * Издательство
96
     */
97
    const FIELD_PUBLISHER = 'publisher';
98
99
    /**
100
     * Ссылка на карточку книги
101
     */
102
    const FIELD_URL = 'url';
103
104
    /**
105
     * Ссылка на обложку книги
106
     */
107
    const FIELD_THUMB = 'thumb';
108
109
    /**
110
     * Конструктор модели пользователя
111
     *
112
     * @param Client $client Инстанс клиента
113
     * @param array $fields Поля для выборки
114
     *
115
     * @throws Exception
116
     */
117 2
    public function __construct(Client $client, array $fields = [])
118
    {
119 2
        parent::__construct($client, $fields);
120 2
    }
121
122
    /**
123
     * Получение данных для запроса через API
124
     *
125
     * @param string $method Http-метод запроса
126
     * @param array $params Параметры для формирования урла
127
     *
128
     * @return array
129
     *
130
     * @throws Exception
131
     */
132
    public function getUrl($method, array $params = [])
133
    {
134
        switch ($method) {
135
            case 'get':
136
                return [
137
                    'url' => vsprintf('/1.0/resource/book/get/%d', $params),
138
                    'method' => 'GET',
139
                    'code' => 200
140
                ];
141
            default:
142
                throw new Exception('Route for ' . $method . ' not found');
143
        }
144
    }
145
}