109 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			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();
 | 
						|
    }
 | 
						|
 | 
						|
}
 |