pmtpenza

Untitled

Jun 28th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.62 KB | None | 0 0
  1. <?php
  2.  
  3. namespace api\controllers;
  4. use Yii;
  5. use yii\rest\Controller;
  6. use yii\filters\VerbFilter;
  7. use yii\filters\AccessControl;
  8. use yii\filters\ContentNegotiator;
  9. use yii\web\Response;
  10. use yii\filters\Cors;
  11. use yii\rest\ActiveController;
  12. use api\models\Zayvki;
  13. use yii\filters\auth\HttpBearerAuth;
  14. use common\models\User;
  15. use api\models\Users;
  16. use yii\helpers\Url;
  17. use api\models\Order;
  18. use api\models\Category;
  19. use backend\models\Uslugi;
  20.  
  21. class ZayvkiController extends ActiveController
  22. {
  23. public $modelClass = 'api\models\Zayvki';
  24.  
  25. public function actions()
  26. {
  27. $actions = parent::actions();
  28.  
  29. unset($actions['create']);
  30.  
  31. return $actions;
  32. }
  33.  
  34. public function behaviors()
  35. {
  36. $behaviors['corsFilter'] = [
  37. 'class' => \yii\filters\Cors::className(),
  38. 'cors' => [
  39. 'Origin' => ['*'],
  40. 'Access-Control-Request-Method' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],
  41. 'Access-Control-Allow-Credentials' => false,
  42. ],
  43.  
  44. ];
  45. $behaviors['contentNegotiator'] = [
  46. 'class' => ContentNegotiator::className(),
  47. 'formats' => [
  48. 'application/json' => Response::FORMAT_JSON
  49. ]
  50.  
  51. ];
  52. unset($behaviors['authenticator']);
  53. $behaviors['authenticator'] = [
  54. 'class' => HttpBearerAuth::className(),
  55. ];
  56.  
  57. $behaviors['access'] = [
  58. 'class' => AccessControl::className(),
  59. 'rules' => [
  60. [
  61. 'allow' => true,
  62. 'roles' => ['@'],
  63. ],
  64. ],
  65. ];
  66.  
  67. return $behaviors;
  68. }
  69.  
  70. public function actionCreate()
  71. {
  72. $params = \yii\helpers\Json::decode(Yii::$app->getRequest()->getRawBody());
  73.  
  74. $model = new Zayvki();
  75. $model->attributes = $params;
  76. $model->user_id = Yii::$app->user-id;
  77.  
  78. if ($model->validate() && $model->save()){
  79. $order = new Order();
  80. $order->uslugi_id = $params['uslugi_id'];
  81. $order->link('zayvki', $model);
  82.  
  83. $response = Yii::$app->getResponse();
  84. $response->setStatusCode(201);
  85. $id = implode(',', array_values($model->getPrimaryKey(true)));
  86. $response->getHeaders()->set('Location',Url::toRoute(['view', 'id' => $id],true));
  87. } elseif (!$model->hasErrors()) {
  88. throw new ServerErrorHttpException('Проверет правильность внесенных данных');
  89. }
  90. return $model;
  91. }
  92.  
  93.  
  94. public function actionCreateiko()
  95. {
  96. $params = \yii\helpers\Json::decode(Yii::$app->getRequest()->getRawBody());
  97.  
  98. $model = new Zayvki();
  99. $model->attributes = $params;
  100. $model->user_id = Yii::$app->user-id;
  101.  
  102. if ($model->validate() && $model->save()){
  103. foreach ($params as $service) {
  104. $order = new Order();
  105. $order->category_id = Uslugi::findOne( $service['id'])->category_id;
  106. $order->uslugi_id = $service['id'];
  107. $order->link('zayvki', $model);
  108. }
  109.  
  110. $response = Yii::$app->getResponse();
  111. $response->setStatusCode(201);
  112. $id = implode(',', array_values($model->getPrimaryKey(true)));
  113. $response->getHeaders()->set('Location',Url::toRoute(['view', 'id' => $id],true));
  114. } elseif (!$model->hasErrors()) {
  115. throw new ServerErrorHttpException('Проверет правильность внесенных данных');
  116. }
  117. return $model;
  118. }
  119.  
  120. public function actionMyzayvki(){
  121. return $this->findModel();
  122. }
  123.  
  124. private function findModel(){
  125. return Zayvki::find()->where(['user_id' => Yii::$app->user->identity->id])->all();
  126. }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment