pmtpenza

Untitled

Sep 5th, 2019
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. <?php
  2. namespace api\controllers;
  3.  
  4. use Yii;
  5. use yii\rest\Controller;
  6. use api\models\LoginForm;
  7. use yii\filters\VerbFilter;
  8. use yii\filters\AccessControl;
  9. use yii\filters\ContentNegotiator;
  10. use yii\web\Response;
  11. use yii\filters\Cors;
  12. use yii\helpers\Json;
  13. use common\models\Token;
  14. use api\models\UserForm;
  15.  
  16.  
  17.  
  18. class SiteController extends Controller
  19. {
  20. public $enableCsrfValidation = false;
  21. public function actionIndex()
  22. {
  23. return 'api';
  24. }
  25. public function behaviors()
  26. {
  27.  
  28. $behaviors = parent::behaviors();
  29. $behaviors['corsFilter'] = [
  30. 'class' => \yii\filters\Cors::className(),
  31. 'cors' => [
  32. 'Origin' => ['*'],
  33. 'Access-Control-Request-Method' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],
  34. 'Access-Control-Allow-Credentials' => false,
  35. ],
  36.  
  37. ];
  38. return $behaviors;
  39. }
  40. public function actionLogin()
  41. {
  42. $params = json_decode(Yii::$app->getRequest()->getRawBody());
  43. $model = new LoginForm();
  44. $model->attributes=$params;
  45. if ($token = $model->auth()) {
  46. return [
  47. 'token' => $token->token,
  48. ];
  49. } else {
  50. return $model;
  51. }
  52. }
  53. public function actionCreate()
  54. {
  55. $params = json_decode(Yii::$app->getRequest()->getRawBody());
  56. $model = new UserForm();
  57. $model->attributes = $params;
  58. if ($model->validate() && $model->save()){
  59.  
  60. $response = Yii::$app->getResponse();
  61. $response->setStatusCode(201);
  62. $id = implode(',', array_values($model->getPrimaryKey(true)));
  63. $response->getHeaders()->set('Location',Url::toRoute(['view', 'id' => $id],true));
  64. } elseif (!$model->hasErrors()) {
  65. throw new ServerErrorHttpException('Проверет правильность внесенных данных');
  66. }
  67. return $model;
  68. }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment