Blame view

app/library/App/Resources/UserResource.php 4.22 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)
c4e1ecec   Alex Savenko   delete action for...
25
              ->handler(UserController::class);
15479603   Alex Savenko   initialize
26
  
c4e1ecec   Alex Savenko   delete action for...
27
          $this
15479603   Alex Savenko   initialize
28
29
              ->endpoint(ApiEndpoint::all()
                  ->allow(AclRoles::USER)
c4e1ecec   Alex Savenko   delete action for...
30
31
32
                  ->name('all')
                  ->description('Возвращает всех зарегистрированных пользователей')
              );
84125667   Alex Savenko   изменение пользов...
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
  
          $this
              ->endpoint(ApiEndpoint::remove()
                  ->name('remove')
                  ->description('Удаление пользователя')
                  ->allow(AclRoles::USER)
                  ->exampleResponse([
                      "result"  => "OK"
                  ])
              )
          ;
          $this
              ->endpoint(ApiEndpoint::update()
                  ->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"
                      ]
                  ])
              )
          ;
  
c4e1ecec   Alex Savenko   delete action for...
67
68
69
70
          $this
              ->endpoint(ApiEndpoint::factory('/me', HttpMethods::GET, 'meAction')
                  ->name('me')
                  ->description('Возвращает текущего залогиненного пользователя')
15479603   Alex Savenko   initialize
71
                  ->allow(AclRoles::USER)
c4e1ecec   Alex Savenko   delete action for...
72
73
74
75
76
77
              );
  
          $this
              ->endpoint(ApiEndpoint::factory('/authenticate', HttpMethods::POST, 'authenticateAction')
                  ->name('authenticate')
                  ->description('Авторизация пользователя через BasicAuth и возвращает токен доступа')
15479603   Alex Savenko   initialize
78
79
                  ->allow(AclRoles::UNAUTHORIZED)
                  ->deny(AclRoles::AUTHORIZED)
15479603   Alex Savenko   initialize
80
                  ->exampleResponse([
c4e1ecec   Alex Savenko   delete action for...
81
82
83
84
85
86
87
88
89
90
91
92
93
94
                      '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
95
                  ])
c4e1ecec   Alex Savenko   delete action for...
96
97
98
99
100
              );
          $this
              ->endpoint(ApiEndpoint::factory('/', HttpMethods::POST, 'registerAction')
                  ->name('register')
                  ->description('Регистрация нового пользователя')
3582f649   Alex Savenko   registration
101
102
                  ->allow(AclRoles::UNAUTHORIZED)
                  ->deny(AclRoles::AUTHORIZED)
a85cc509   Alex Savenko   registration
103
                  ->exampleResponse([
c4e1ecec   Alex Savenko   delete action for...
104
105
106
107
108
109
110
111
112
                      "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
113
                  ])
15479603   Alex Savenko   initialize
114
              );
15479603   Alex Savenko   initialize
115
116
      }
  }