Blame view

app/library/App/Resources/UserResource.php 5.17 KB
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
24
              ->itemKey('user')
              ->collectionKey('users')
              ->deny(AclRoles::UNAUTHORIZED, AclRoles::USER)
8baf4948   Alex Savenko   UserResource pret...
25
              ->handler(UserController::class)
15479603   Alex Savenko   initialize
26
  
8baf4948   Alex Savenko   UserResource pret...
27
28
29
30
31
32
33
              /** -------------------- [GET] users -------------------------------- **/
                  ->endpoint(ApiEndpoint::all()
                      ->allow(AclRoles::USER)
                      ->name('all')
                      ->description('Возвращает всех зарегистрированных пользователей')
                  )
              /** ----------------------------------------------------------------- **/
84125667   Alex Savenko   изменение пользов...
34
  
8baf4948   Alex Savenko   UserResource pret...
35
36
37
38
              /** -------------------- [GET] users/me ----------------------------- **/
                  ->endpoint(ApiEndpoint::factory('/me', HttpMethods::GET, 'meAction')
                  ->name('me')
                  ->description('Возвращает текущего залогиненного пользователя')
84125667   Alex Savenko   изменение пользов...
39
                  ->allow(AclRoles::USER)
84125667   Alex Savenko   изменение пользов...
40
              )
8baf4948   Alex Savenko   UserResource pret...
41
42
43
44
              /** ----------------------------------------------------------------- **/
  
              /** -------------------- [PUT] users/{id}  -------------------------- **/
                  ->endpoint(ApiEndpoint::update()
84125667   Alex Savenko   изменение пользов...
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
                  ->name('update')
                  ->description('Изменение данных пользователя')
                  ->allow(AclRoles::ADMINISTRATOR)
                  ->deny(AclRoles::MANAGER)
                  ->exampleRequest([
                      'role' => 'Manager'
                  ])
                  ->exampleResponse([
                      "result"  => "OK",
                      "user"    => [
                          "id"        => 101,
                          "username"  => "qwerty",
                          "email"     => "1a23@awd.awd",
                          "role"      => "Manager",
                          "createdAt" => "2017-02-16 19:05:18",
                          "updatedAt" => "2017-03-21 14:31:48"
                      ]
                  ])
              )
8baf4948   Alex Savenko   UserResource pret...
64
              /** ----------------------------------------------------------------- **/
84125667   Alex Savenko   изменение пользов...
65
  
8baf4948   Alex Savenko   UserResource pret...
66
67
68
69
              /** -------------------- [DELETE] users/{id} ------------------------ **/
                  ->endpoint(ApiEndpoint::remove()
                  ->name('remove')
                  ->description('Удаление пользователя')
15479603   Alex Savenko   initialize
70
                  ->allow(AclRoles::USER)
8baf4948   Alex Savenko   UserResource pret...
71
72
73
74
75
                  ->exampleResponse([
                      "result"  => "OK"
                  ])
              )
              /** ----------------------------------------------------------------- **/
c4e1ecec   Alex Savenko   delete action for...
76
  
8baf4948   Alex Savenko   UserResource pret...
77
78
              /** -------------------- [POST] users/authenticate ------------------ **/
                  ->endpoint(ApiEndpoint::factory('/authenticate', HttpMethods::POST, 'authenticateAction')
c4e1ecec   Alex Savenko   delete action for...
79
80
                  ->name('authenticate')
                  ->description('Авторизация пользователя через BasicAuth и возвращает токен доступа')
15479603   Alex Savenko   initialize
81
82
                  ->allow(AclRoles::UNAUTHORIZED)
                  ->deny(AclRoles::AUTHORIZED)
15479603   Alex Savenko   initialize
83
                  ->exampleResponse([
c4e1ecec   Alex Savenko   delete action for...
84
85
86
87
88
89
90
91
92
93
94
95
96
97
                      '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
98
                  ])
8baf4948   Alex Savenko   UserResource pret...
99
100
101
102
103
              )
              /** ----------------------------------------------------------------- **/
  
              /** -------------------- [POST] users -------------------------------- **/
                  ->endpoint(ApiEndpoint::factory('/', HttpMethods::POST, 'registerAction')
c4e1ecec   Alex Savenko   delete action for...
104
105
                  ->name('register')
                  ->description('Регистрация нового пользователя')
3582f649   Alex Savenko   registration
106
107
                  ->allow(AclRoles::UNAUTHORIZED)
                  ->deny(AclRoles::AUTHORIZED)
a85cc509   Alex Savenko   registration
108
                  ->exampleResponse([
c4e1ecec   Alex Savenko   delete action for...
109
110
111
112
113
114
115
116
117
                      "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
118
                  ])
8baf4948   Alex Savenko   UserResource pret...
119
120
121
              )
              /** ----------------------------------------------------------------- **/
          ;
15479603   Alex Savenko   initialize
122
123
      }
  }