feat(goals): Add endpoints to get and create custom goals
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -1,26 +1,31 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import List
|
||||
|
||||
class GoalCreateRequest(BaseModel):
|
||||
"""Схема запроса на создание стандартных целей."""
|
||||
goal_identifiers: List[str] = Field(
|
||||
...,
|
||||
description="Список идентификаторов стандартных целей для квиза.",
|
||||
# --- ИЗМЕНЕНИЕ ЗДЕСЬ: Обновляем пример на правильный и полный ---
|
||||
examples=[[
|
||||
"Marquiz-start",
|
||||
"Marquiz-startquiz",
|
||||
"Marquiz-form",
|
||||
"Marquiz-result",
|
||||
"Marquiz-contacts1"
|
||||
]]
|
||||
)
|
||||
|
||||
# Схема для ОДНОЙ цели в списке (для GET запроса)
|
||||
class Goal(BaseModel):
|
||||
"""Схема для одной созданной цели (в ответе)."""
|
||||
id: int
|
||||
name: str
|
||||
type: str
|
||||
|
||||
# Схема для ответа со списком целей
|
||||
class GoalListResponse(BaseModel):
|
||||
goals: List[Goal]
|
||||
|
||||
# --- ИЗМЕНЕНИЯ ЗДЕСЬ ---
|
||||
# Схема для ОДНОЙ кастомной цели в запросе на создание (для POST)
|
||||
class CustomGoalIn(BaseModel):
|
||||
identifier: str = Field(..., description="Уникальный идентификатор JS-события")
|
||||
name: str = Field(..., max_length=255, description="Название цели, которое будет видно в Метрике")
|
||||
|
||||
# Обновленная схема запроса на создание целей
|
||||
class GoalCreateRequest(BaseModel):
|
||||
goals: List[CustomGoalIn]
|
||||
|
||||
# Схема для ОДНОЙ созданной цели в ответе
|
||||
class CreatedGoal(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
|
||||
# Схема ответа после создания целей
|
||||
class GoalCreateResponse(BaseModel):
|
||||
"""Схема ответа после создания целей."""
|
||||
created_goals: List[Goal]
|
||||
created_goals: List[CreatedGoal]
|
||||
Reference in New Issue
Block a user