Blame view

app/library/App/Controllers/UserController.php 2.43 KB
15479603   Alex Savenko   initialize
1
2
3
4
  <?php
  
  namespace App\Controllers;
  
a6aec719   Alex Savenko   registration
5
  use App\Model\User;
15479603   Alex Savenko   initialize
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  use PhalconRest\Mvc\Controllers\CrudResourceController;
  
  class UserController extends CrudResourceController
  {
      public function me()
      {
          return $this->createResourceResponse($this->userService->getDetails());
      }
  
      public function authenticate()
      {
          $username = $this->request->getUsername();
          $password = $this->request->getPassword();
  
          $session = $this->authManager->loginWithUsernamePassword(\App\Auth\UsernameAccountType::NAME, $username,
              $password);
  
          $transformer = new \App\Transformers\UserTransformer;
          $transformer->setModelClass('App\Model\User');
  
          $user = $this->createItemResponse(\App\Model\User::findFirst($session->getIdentity()), $transformer);
  
          $response = [
              'token' => $session->getToken(),
              'expires' => $session->getExpirationTime(),
              'user' => $user
          ];
  
          return $this->createArrayResponse($response, 'data');
      }
  
3582f649   Alex Savenko   registration
37
      public function register() {
95d1b70c   Alex Savenko   registration
38
  
d0e9f21e   Alex Savenko   registration
39
          $data = $this->getPostedData();
95d1b70c   Alex Savenko   registration
40
  
d0e9f21e   Alex Savenko   registration
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
          if (!$data || count($data) == 0) {
              return $this->onNoDataProvided();
          }
  
          if (!$this->postDataValid($data, false)) {
              return $this->onDataInvalid($data);
          }
  
          if (!$this->saveAllowed($data) || !$this->createAllowed($data)) {
              return $this->onNotAllowed();
          }
  
          $data = $this->transformPostData($data);
  
          $item = $this->createModelInstance();
  
          //$newItem = $this->createItem($item, $data);
              $item->assign($data, null, $this->whitelistCreate());
              $this->afterAssignData($item, $data);
  
              $this->beforeSave($item);
              $this->beforeCreate($item);
  
              $success = $item->create();
  
              if ($success) {
  
                  $this->afterCreate($item);
                  $this->afterSave($item);
              }
  
              $newItem = $success ? $item : null;
  
          if (!$newItem) {
              return $this->onCreateFailed($item, $data);
          }
  
          die(var_dump($newItem));
  
          $primaryKey = $this->getModelPrimaryKey();
          $responseData = $this->getFindData($newItem->$primaryKey);
  
          $response = $this->getCreateResponse($responseData, $data);
  
          return $response;
3582f649   Alex Savenko   registration
86
87
      }
  
15479603   Alex Savenko   initialize
88
89
90
      public function whitelist()
      {
          return [
c5ed21cc   Alex Savenko   registration
91
92
93
              'username',
              'password',
              'email'
15479603   Alex Savenko   initialize
94
95
96
          ];
      }
  }