guild/frontend/modules/api/controllers/SkillsController.php

109 lines
2.7 KiB
PHP
Executable File

<?php
namespace frontend\modules\api\controllers;
use common\behaviors\GsCors;
use common\models\Options;
use common\models\Skill;
use yii\filters\AccessControl;
use yii\filters\auth\CompositeAuth;
use yii\filters\auth\HttpBearerAuth;
use yii\filters\auth\QueryParamAuth;
use yii\filters\ContentNegotiator;
use yii\web\Response;
class SkillsController extends ApiController
{
public function behaviors()
{
$parent = parent::behaviors();
$b = [
[
'class' => ContentNegotiator::className(),
'formats' => [
'application/json' => Response::FORMAT_JSON,
],
],
'authenticator' => [
'class' => CompositeAuth::class,
'authMethods' => [
HttpBearerAuth::class,
],
]
];
return array_merge($parent, $b);
}
public function verbs(): array
{
return [
'skills-on-main-page' => ['get'],
'get-skills-list' => ['get'],
];
}
public function actionIndex()
{
return ['some' => 'rrr'];
}
/**
*
* @OA\Get(path="/skills/skills-on-main-page",
* summary="Получить список навыков для отображения на главной",
* description="Получить список навыков на главной странице",
* tags={"Skills"},
* security={
* {"bearerAuth": {}}
* },
* @OA\Response(
* response=200,
* description="Возвращает массив навыков",
* @OA\MediaType(
* mediaType="application/json",
* ),
*
* ),
* )
*
* @return array|mixed
*/
public function actionSkillsOnMainPage()
{
$data = \common\models\Options::getValue('skills_on_main_page_to_front');
if ($data) $data = json_decode($data, true);
else return [];
return $data;
}
/**
*
* @OA\Get(path="/skills/get-skills-list",
* summary="Получить список навыков",
* description="Получить список навыков",
* tags={"Skills"},
* security={
* {"bearerAuth": {}}
* },
* @OA\Response(
* response=200,
* description="Возвращает массив навыков",
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(ref="#/components/schemas/SkillsExample"),
* ),
*
* ),
* )
*
* @return array|\yii\db\ActiveRecord[]
*/
public function actionGetSkillsList(): array
{
return Skill::find()->all();
}
}