<?php namespace frontend\modules\api\controllers; use common\models\TaskUser; use Yii; use yii\filters\auth\HttpBearerAuth; use yii\rest\Controller; use yii\web\BadRequestHttpException; use yii\web\NotFoundHttpException; class TaskUserController extends ApiController { public function verbs(): array { return [ 'get-task-users' => ['get'], 'set-task-user' => ['post', 'patch'], ]; } public function actionSetTaskUser() { $taskUserModel = new TaskUser(); $params = Yii::$app->request->post(); $taskUserModel->attributes = $params; if(!$taskUserModel->validate()){ throw new BadRequestHttpException(json_encode($taskUserModel->errors)); } $taskUserModel->save(); return $taskUserModel->toArray(); } /** * @throws NotFoundHttpException */ public function actionGetTaskUsers() { $task_id = Yii::$app->request->get('task_id'); if(empty($task_id) or !is_numeric($task_id)) { throw new NotFoundHttpException('Incorrect task ID'); } $tasks = $this->findUsers($task_id); if(empty($tasks)) { throw new NotFoundHttpException('The task does not exist or there are no employees for it'); } return $tasks; } private function findUsers($project_id): array { return TaskUser::find()->where(['task_id' => $project_id])->all(); } }