1- from fastapi import APIRouter , Depends
1+ from fastapi import APIRouter , Depends , HTTPException
22from sqlalchemy .orm import Session
33from core .database import get_db
4- from schemas .challenge_schema import ChallengeRetryRequest , ChallengeRetryResponse , GoodsRedeemRequest , GoodsRedeemResponse
5- from services .challenge_service import redeem_goods , retry_challenge
4+ from schemas .challenge_schema import ChallengeRequest , ChallengeResponse , ChallengeRetryRequest , ChallengeRetryResponse , GoodsRedeemRequest , GoodsRedeemResponse
5+ from services .challenge_service import assign_challenges_logic , redeem_goods , retry_challenge
66
77router = APIRouter ()
88
@@ -13,3 +13,24 @@ def redeem_goods_controller(request: GoodsRedeemRequest, db: Session = Depends(g
1313@router .post ("/retry" , response_model = ChallengeRetryResponse )
1414def challenge_retry_controller (request : ChallengeRetryRequest , db : Session = Depends (get_db )):
1515 return retry_challenge (db , request .user_id )
16+
17+ @router .post ("/assign" , response_model = ChallengeResponse )
18+ def assign_challenges (request : ChallengeRequest , db : Session = Depends (get_db )):
19+ try :
20+ # my_id = parse_user_id(request.my_id).get("id")
21+ # if not my_id:
22+ # raise HTTPException(status_code=400, detail="올바른 형식의 유저 태그가 아닙니다. 예: 김민준#0001")
23+
24+ # members_ids = [request.my_id] # 팀원에 자기 자신 포함
25+ # for tag in request.members_ids:
26+ # parsed = parse_user_id(tag)
27+ # if "error" in parsed:
28+ # raise HTTPException(status_code=400, detail=parsed["error"])
29+ # members_ids.append(parsed["id"])
30+
31+ members_ids = [request .my_id ] + request .members_ids
32+ assigned = assign_challenges_logic (request .my_id , members_ids , db )
33+ return ChallengeResponse (team_id = request .team_id , my_assigned = assigned )
34+
35+ except ValueError as e :
36+ raise HTTPException (status_code = 400 , detail = str (e ))
0 commit comments