개선관리 요구사항과 Google 로그인을 완료

This commit is contained in:
Yun Chan 2026-08-28 16:07:09 +09:00
parent cc0a15b7c6
commit 2a39636163
112 changed files with 10166 additions and 527 deletions

View file

@ -24,7 +24,7 @@ from ..contracts.measurement import (
SourceKind,
)
from ..deps import CurrentPrincipal, Principal, Role, require_role
from ..services import alliance_measurement
from ..services import alliance_measurement, feedback_policy
router = APIRouter(prefix="/sessions", tags=["measurements"])
@ -168,6 +168,10 @@ async def get_alliance_pulses(
session_id: UUID,
principal: CurrentPrincipal,
) -> AlliancePulseListResponse:
expose_feedback = await feedback_policy.can_expose_session_learner_feedback(
session_id,
principal,
)
try:
items = await alliance_measurement.list_alliance_pulses(
principal=principal,
@ -175,6 +179,8 @@ async def get_alliance_pulses(
)
except alliance_measurement.AlliancePulseNotFoundError as exc:
raise _measurement_http_error(exc) from exc
if not expose_feedback:
items = [{**dict(item), "measurements": []} for item in items]
return AlliancePulseListResponse.model_validate({"items": items})