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();
 | |
|     }
 | |
| 
 | |
| }
 |