15479603
Alex Savenko
initialize
|
1
2
3
4
|
<?php
namespace App\Resources;
|
c4e1ecec
Alex Savenko
delete action for...
|
5
|
use PhalconApi\Constants\HttpMethods;
|
15479603
Alex Savenko
initialize
|
6
7
|
use PhalconRest\Api\ApiResource;
use PhalconRest\Api\ApiEndpoint;
|
0fc77352
Alex Savenko
registration
|
8
|
use App\Model\User;
|
15479603
Alex Savenko
initialize
|
9
10
11
12
13
14
15
16
17
18
|
use App\Transformers\UserTransformer;
use App\Controllers\UserController;
use App\Constants\AclRoles;
class UserResource extends ApiResource {
public function initialize()
{
$this
->name('User')
|
0fc77352
Alex Savenko
registration
|
19
|
->model(User::class)
|
15479603
Alex Savenko
initialize
|
20
21
|
->expectsJsonData()
->transformer(UserTransformer::class)
|
15479603
Alex Savenko
initialize
|
22
23
|
->itemKey('user')
->collectionKey('users')
|
8baf4948
Alex Savenko
UserResource pret...
|
24
|
->handler(UserController::class)
|
0b8d4ffc
Alex Savenko
Add Roles.
|
25
|
->deny(AclRoles::ALL_ROLES)
|
15479603
Alex Savenko
initialize
|
26
|
|
8baf4948
Alex Savenko
UserResource pret...
|
27
28
|
/** -------------------- [GET] users -------------------------------- **/
->endpoint(ApiEndpoint::all()
|
8baf4948
Alex Savenko
UserResource pret...
|
29
30
|
->name('all')
->description('Возвращает всех зарегистрированных пользователей')
|
0b8d4ffc
Alex Savenko
Add Roles.
|
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
->allow(
AclRoles::ADMINISTRATOR
)
)
/** ----------------------------------------------------------------- **/
/** -------------------- [GET] users/editors ------------------------ **/
->endpoint(ApiEndpoint::factory('/editors', HttpMethods::GET, 'editorsAction')
->name('all editors')
->description('Возвращает всех зарегистрированных пользователей c ролью "'.AclRoles::EDITOR.'" по каждому проэкту')
->allow(
AclRoles::ADMINISTRATOR,
AclRoles::USER
)
->exampleResponse([
"68" => [
[
"id" => 4,
"username" => "Tim2",
"email" => "timTEST2@awd.awd",
"role" => "Editor",
"createdAt" => "2017-02-16 19:05:18",
"updatedAt" => "2017-03-21 14:31:48"
],
[
"id" => 5,
"username" => "Tim3",
"email" => "timTEST3@awd.awd",
"role" => "Editor",
"createdAt" => "2017-02-16 19:05:18",
"updatedAt" => "2017-03-21 14:31:48"
]
]
])
)
/** ----------------------------------------------------------------- **/
/** -------------------- [GET] users/authors ------------------------ **/
->endpoint(ApiEndpoint::factory('/authors', HttpMethods::GET, 'authorsAction')
->name('all authors')
->description('Возвращает всех зарегистрированных пользователей c ролью "'.AclRoles::AUTHOR.'" по каждому проэкту')
->allow(
AclRoles::ADMINISTRATOR,
AclRoles::USER,
AclRoles::EDITOR
)
->exampleResponse([
"68" => [
[
"id" => 4,
"username" => "Tim2",
"email" => "timTEST2@awd.awd",
"role" => "Author",
"createdAt" => "2017-02-16 19:05:18",
"updatedAt" => "2017-03-21 14:31:48"
],
[
"id" => 5,
"username" => "Tim3",
"email" => "timTEST3@awd.awd",
"role" => "Author",
"createdAt" => "2017-02-16 19:05:18",
"updatedAt" => "2017-03-21 14:31:48"
]
]
])
|
8baf4948
Alex Savenko
UserResource pret...
|
97
98
|
)
/** ----------------------------------------------------------------- **/
|
84125667
Alex Savenko
изменение пользов...
|
99
|
|
8baf4948
Alex Savenko
UserResource pret...
|
100
101
|
/** -------------------- [GET] users/me ----------------------------- **/
->endpoint(ApiEndpoint::factory('/me', HttpMethods::GET, 'meAction')
|
0b8d4ffc
Alex Savenko
Add Roles.
|
102
103
104
105
106
107
108
109
110
|
->name('me')
->description('Возвращает текущего залогиненного пользователя')
->allow(
AclRoles::ADMINISTRATOR,
AclRoles::USER,
AclRoles::EDITOR,
AclRoles::AUTHOR
)
)
|
8baf4948
Alex Savenko
UserResource pret...
|
111
112
113
|
/** ----------------------------------------------------------------- **/
/** -------------------- [PUT] users/{id} -------------------------- **/
|
0b8d4ffc
Alex Savenko
Add Roles.
|
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
->endpoint(ApiEndpoint::factory('/{id}', HttpMethods::PUT, 'updateAction')
->name('update')
->description('Изменение данных пользователя')
->allow(
AclRoles::ADMINISTRATOR,
AclRoles::USER,
AclRoles::EDITOR,
AclRoles::AUTHOR
)
->exampleRequest([
'role' => 'User'
])
->exampleResponse([
"result" => "OK",
"user" => [
"id" => 101,
"username" => "qwerty",
"email" => "1a23@awd.awd",
"role" => "User",
"createdAt" => "2017-02-16 19:05:18",
"updatedAt" => "2017-03-21 14:31:48"
]
])
)
|
8baf4948
Alex Savenko
UserResource pret...
|
138
|
/** ----------------------------------------------------------------- **/
|
84125667
Alex Savenko
изменение пользов...
|
139
|
|
8baf4948
Alex Savenko
UserResource pret...
|
140
|
/** -------------------- [DELETE] users/{id} ------------------------ **/
|
0b8d4ffc
Alex Savenko
Add Roles.
|
141
|
->endpoint(ApiEndpoint::factory('/{id}', HttpMethods::DELETE, 'removeAction')
|
8baf4948
Alex Savenko
UserResource pret...
|
142
143
|
->name('remove')
->description('Удаление пользователя')
|
0b8d4ffc
Alex Savenko
Add Roles.
|
144
145
146
147
148
149
|
->allow(
AclRoles::ADMINISTRATOR,
AclRoles::USER,
AclRoles::EDITOR,
AclRoles::AUTHOR
)
|
8baf4948
Alex Savenko
UserResource pret...
|
150
151
152
153
154
|
->exampleResponse([
"result" => "OK"
])
)
/** ----------------------------------------------------------------- **/
|
c4e1ecec
Alex Savenko
delete action for...
|
155
|
|
8baf4948
Alex Savenko
UserResource pret...
|
156
157
|
/** -------------------- [POST] users/authenticate ------------------ **/
->endpoint(ApiEndpoint::factory('/authenticate', HttpMethods::POST, 'authenticateAction')
|
c4e1ecec
Alex Savenko
delete action for...
|
158
159
|
->name('authenticate')
->description('Авторизация пользователя через BasicAuth и возвращает токен доступа')
|
15479603
Alex Savenko
initialize
|
160
|
->allow(AclRoles::UNAUTHORIZED)
|
15479603
Alex Savenko
initialize
|
161
|
->exampleResponse([
|
c4e1ecec
Alex Savenko
delete action for...
|
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
'data' => [
'token' => 'co126bbm40wqp41i3bo7pj1gfsvt9lp6',
'expires' => 1451139067,
"user" =>
[
"id" => 1,
"username" => "demo",
"email" => "test@example.com",
"role" => "User",
"createdAt" => "2015-12-28 16:20:58",
"updatedAt" => null
]
]
|
15479603
Alex Savenko
initialize
|
176
|
])
|
8baf4948
Alex Savenko
UserResource pret...
|
177
178
179
|
)
/** ----------------------------------------------------------------- **/
|
0b8d4ffc
Alex Savenko
Add Roles.
|
180
|
/** -------------------- [POST] users ------------------------------- **/
|
8baf4948
Alex Savenko
UserResource pret...
|
181
|
->endpoint(ApiEndpoint::factory('/', HttpMethods::POST, 'registerAction')
|
c4e1ecec
Alex Savenko
delete action for...
|
182
183
|
->name('register')
->description('Регистрация нового пользователя')
|
3582f649
Alex Savenko
registration
|
184
|
->allow(AclRoles::UNAUTHORIZED)
|
a85cc509
Alex Savenko
registration
|
185
|
->exampleResponse([
|
c4e1ecec
Alex Savenko
delete action for...
|
186
187
188
189
190
191
192
193
194
|
"result" => "OK",
"user" => [
"id" => "95",
"username" => "MyLogin",
"email" => "myGmail@gmail.com",
"role" => "User",
"createdAt" => "2017-02-16 17:57:52",
"updatedAt" => "2017-02-16 17:57:52"
]
|
a85cc509
Alex Savenko
registration
|
195
|
])
|
8baf4948
Alex Savenko
UserResource pret...
|
196
197
|
)
/** ----------------------------------------------------------------- **/
|
0b8d4ffc
Alex Savenko
Add Roles.
|
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
/** -------------------- [POST] users/invite ------------------------ **/
->endpoint(ApiEndpoint::factory('/invite', HttpMethods::POST, 'inviteAction')
->name('invite')
->description('Приглашение существующего пользователя в проэкт')
->allow(
AclRoles::ADMINISTRATOR,
AclRoles::USER,
AclRoles::EDITOR
)
->exampleResponse([
"result" => "OK",
"user" => [
"id" => "95",
"username" => "MyLogin",
"email" => "myGmail@gmail.com",
"role" => "User",
"createdAt" => "2017-02-16 17:57:52",
"updatedAt" => "2017-02-16 17:57:52"
]
])
)
/** ----------------------------------------------------------------- **/
|
8baf4948
Alex Savenko
UserResource pret...
|
221
|
;
|
15479603
Alex Savenko
initialize
|
222
223
|
}
}
|