108 lines
2.9 KiB
PHP
108 lines
2.9 KiB
PHP
|
<?php
|
||
|
|
||
|
|
||
|
namespace frontend\modules\api\controllers;
|
||
|
|
||
|
use Exception;
|
||
|
use frontend\modules\api\models\profile\User;
|
||
|
use frontend\modules\api\models\UserTgBotToken;
|
||
|
use frontend\modules\api\services\UserTgBotTokenService;
|
||
|
use Yii;
|
||
|
use yii\helpers\ArrayHelper;
|
||
|
|
||
|
class UserTgBotController extends ApiController
|
||
|
{
|
||
|
public function behaviors(): array
|
||
|
{
|
||
|
return ArrayHelper::merge(parent::behaviors(), [
|
||
|
|
||
|
'verbs' => [
|
||
|
'class' => \yii\filters\VerbFilter::class,
|
||
|
'actions' => [
|
||
|
'get-token' => ['get'],
|
||
|
'get-user-by-token' => ['get'],
|
||
|
],
|
||
|
]
|
||
|
]);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @var UserTgBotTokenService
|
||
|
*/
|
||
|
private UserTgBotTokenService $userTgBotTokenService;
|
||
|
|
||
|
public function __construct(
|
||
|
$id,
|
||
|
$module,
|
||
|
UserTgBotTokenService $userTgBotTokenService,
|
||
|
$config = []
|
||
|
)
|
||
|
{
|
||
|
$this->userTgBotTokenService = $userTgBotTokenService;
|
||
|
parent::__construct($id, $module, $config);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @OA\Get(path="/user-tg-bot/get-token",
|
||
|
* summary="Токен ТГ бота",
|
||
|
* description="Метод для возвращает токен для ТГ бота",
|
||
|
* security={
|
||
|
* {"bearerAuth": {}}
|
||
|
* },
|
||
|
* tags={"UserTgBotToken"},
|
||
|
* @OA\Response(
|
||
|
* response=200,
|
||
|
* description="Возвращает объект токен ТГ бота",
|
||
|
* @OA\MediaType(
|
||
|
* mediaType="application/json",
|
||
|
* @OA\Schema(ref="#/components/schemas/UserTgBotTokenExample"),
|
||
|
* ),
|
||
|
* ),
|
||
|
* )
|
||
|
*
|
||
|
* @return UserTgBotToken
|
||
|
* @throws Exception
|
||
|
*/
|
||
|
public function actionGetToken()
|
||
|
{
|
||
|
return $this->userTgBotTokenService->getToken(Yii::$app->user->id);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @OA\Get(path="/user-tg-bot/get-user",
|
||
|
* summary="Получить данные пользователя",
|
||
|
* description="Метод для получения данныех пользователя по токену ТГ бота",
|
||
|
* security={
|
||
|
* {"bearerAuth": {}}
|
||
|
* },
|
||
|
* tags={"UserTgBotToken"},
|
||
|
* @OA\Parameter(
|
||
|
* name="token",
|
||
|
* in="query",
|
||
|
* example="HDAS7J",
|
||
|
* required=true,
|
||
|
* description="Токен ТГ бота",
|
||
|
* @OA\Schema(
|
||
|
* type="string",
|
||
|
* )
|
||
|
* ),
|
||
|
* @OA\Response(
|
||
|
* response=200,
|
||
|
* description="Возвращает данные пользователя",
|
||
|
* @OA\MediaType(
|
||
|
* mediaType="application/json",
|
||
|
* ),
|
||
|
* ),
|
||
|
* )
|
||
|
*
|
||
|
* @param string $token
|
||
|
* @return User|string[]
|
||
|
* @throws Exception
|
||
|
*/
|
||
|
public function actionGetUser(string $token)
|
||
|
{
|
||
|
return $this->userTgBotTokenService->getUserByToken($token);
|
||
|
}
|
||
|
}
|