This commit is contained in:
Artem Tsyrulnikov
2026-01-09 13:11:32 +03:00
parent 9fbb6fdbbf
commit a0b12dbcca
10 changed files with 257 additions and 119 deletions

View File

@@ -6,19 +6,13 @@ from src import deps, dto
internal_router = APIRouter(prefix='/internal', tags=['internal'])
class CreateLoginTokenResponse(BaseModel):
token: str
@internal_router.post('/auth/login-token')
async def create_login_token(input: dto.CreateLoginTokenRequest) -> str:
token = await deps.get_usecase().create_telegram_login_token(
telegram_id=input.telegram_id,
username=input.username,
)
return token
return await deps.get_usecase().create_telegram_login_token(telegram_id=input.telegram_id)
class ValidateTokenRequest(BaseModel):
@@ -27,7 +21,6 @@ class ValidateTokenRequest(BaseModel):
username: str | None = None
@internal_router.get('/auth/jwt')
async def get_jwt_by_telegram_id(
telegram_id: int,

View File

@@ -98,19 +98,19 @@ from .analytics import (
GetChannelAnalyticsOutput,
GetCreativesAnalyticsInput,
GetCreativesAnalyticsOutput,
GetOverviewAnalyticsInput,
GetOverviewAnalyticsOutput,
GetPlacementsAnalyticsInput,
GetPlacementsAnalyticsOutput,
GetOverviewAnalyticsInput,
GetProjectsAnalyticsInput,
GetProjectsAnalyticsOutput,
GetSpendingAnalyticsInput,
GetSpendingAnalyticsOutput,
GetOverviewAnalyticsOutput,
NumberWithDelta,
PlacementAnalyticsOutput,
OverviewDailyPoint,
OverviewChannelPerformance,
OverviewDailyPoint,
OverviewProjectSpending,
PlacementAnalyticsOutput,
ProjectAnalyticsPeriod,
ProjectMetrics,
ProjectMetricsData,
@@ -189,4 +189,3 @@ from .workspace import (
class CreateLoginTokenRequest(BaseModel):
telegram_id: int
username: str | None

View File

@@ -10,14 +10,11 @@ if typing.TYPE_CHECKING:
from .. import Usecase
async def create_telegram_login_token(self: 'Usecase', telegram_id: int, username: str | None) -> str:
async def create_telegram_login_token(self: 'Usecase', telegram_id: int) -> str:
telegram_user = await self.database.get_telegram_user(telegram_id=telegram_id)
if not telegram_user:
telegram_user = domain.TelegramUser(telegram_id=telegram_id, username=username)
telegram_user = domain.TelegramUser(telegram_id=telegram_id)
await self.database.create_telegram_user(telegram_user)
elif username and telegram_user.username != username:
telegram_user.username = username
await self.database.update_telegram_user(telegram_user)
user = await self.database.get_user(telegram_id=telegram_id)
if not user: