<?php namespace frontend\modules\api\controllers; use common\models\DocumentFieldValue; use Yii; use yii\filters\auth\HttpBearerAuth; use yii\web\NotFoundHttpException; use yii\rest\Controller; use yii\web\ServerErrorHttpException; class DocumentFieldValueController extends Controller { public function behaviors(): array { $behaviors = parent::behaviors(); $behaviors['authenticator']['authMethods'] = [ HttpBearerAuth::className(), ]; return $behaviors; } public function verbs(): array { return [ // 'get-task' => ['get'], 'document-field-value-list' => ['get'], // 'create-task' => ['post'], 'update' => ['post'], ]; } public function actionDocumentFieldValueList(): array { $document_id = Yii::$app->request->get('document_id'); if(empty($document_id) or !is_numeric($document_id)) { throw new NotFoundHttpException('Incorrect document ID'); } $fieldValues = DocumentFieldValue::find() ->where(['document_id' => $document_id]) ->all(); if(empty($fieldValues)) { throw new NotFoundHttpException('There is no such fields'); } return $fieldValues; } public function actionUpdate() { $model = $this->findModelDocumentFieldValue(Yii::$app->request->post('document_field_value_id')); if(empty($model)) { throw new NotFoundHttpException('The document field value does not exist'); } $model->load(Yii::$app->request->getBodyParams(), ''); if ($model->save() === false && !$model->hasErrors()) { throw new ServerErrorHttpException('Failed to update the object for unknown reason.'); } return $model; } private function findModelDocumentFieldValue($document_field_value_id) { return DocumentFieldValue::findOne($document_field_value_id); } }