Blame view

app/library/App/Resources/UserResource.php 3.37 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
33
34
35
36
                  ->name('all')
                  ->description('Возвращает всех зарегистрированных пользователей')
              );
          $this
              ->endpoint(ApiEndpoint::factory('/me', HttpMethods::GET, 'meAction')
                  ->name('me')
                  ->description('Возвращает текущего залогиненного пользователя')
15479603   Alex Savenko   initialize
37
                  ->allow(AclRoles::USER)
c4e1ecec   Alex Savenko   delete action for...
38
39
40
41
42
43
              );
  
          $this
              ->endpoint(ApiEndpoint::factory('/authenticate', HttpMethods::POST, 'authenticateAction')
                  ->name('authenticate')
                  ->description('Авторизация пользователя через BasicAuth и возвращает токен доступа')
15479603   Alex Savenko   initialize
44
45
                  ->allow(AclRoles::UNAUTHORIZED)
                  ->deny(AclRoles::AUTHORIZED)
15479603   Alex Savenko   initialize
46
                  ->exampleResponse([
c4e1ecec   Alex Savenko   delete action for...
47
48
49
50
51
52
53
54
55
56
57
58
59
60
                      '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
61
                  ])
c4e1ecec   Alex Savenko   delete action for...
62
63
64
65
66
              );
          $this
              ->endpoint(ApiEndpoint::factory('/', HttpMethods::POST, 'registerAction')
                  ->name('register')
                  ->description('Регистрация нового пользователя')
3582f649   Alex Savenko   registration
67
68
                  ->allow(AclRoles::UNAUTHORIZED)
                  ->deny(AclRoles::AUTHORIZED)
a85cc509   Alex Savenko   registration
69
                  ->exampleResponse([
c4e1ecec   Alex Savenko   delete action for...
70
71
72
73
74
75
76
77
78
                      "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
79
                  ])
15479603   Alex Savenko   initialize
80
              );
c4e1ecec   Alex Savenko   delete action for...
81
82
83
84
85
86
87
88
89
90
          $this
              ->endpoint(ApiEndpoint::remove()
                  ->name('remove')
                  ->description('Удаление пользователя')
                  ->allow(AclRoles::USER)
                  ->exampleResponse([
                      "result"  => "OK"
                  ])
              )
          ;
15479603   Alex Savenko   initialize
91
92
      }
  }