11from fastapi import APIRouter , Depends , HTTPException
22from sqlalchemy .orm import Session
33from core .database import get_db
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
4+ from schemas .challenge_schema import ChallengeRequest , ChallengeResponse , ChallengeRetryRequest , ChallengeRetryResponse , GoodsRedeemRequest , GoodsRedeemResponse , AnswerSubmitRequest , AnswerSubmitResponse
5+ from services .challenge_service import assign_challenges_logic , submit_challenges_logic , redeem_goods , retry_challenge
66
77router = APIRouter ()
88
@@ -17,20 +17,18 @@ def challenge_retry_controller(request: ChallengeRetryRequest, db: Session = Dep
1717@router .post ("/assign" , response_model = ChallengeResponse )
1818def assign_challenges (request : ChallengeRequest , db : Session = Depends (get_db )):
1919 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-
3120 members_ids = [request .my_id ] + request .members_ids
3221 assigned = assign_challenges_logic (request .my_id , members_ids , db )
3322 return ChallengeResponse (team_id = request .team_id , my_assigned = assigned )
3423
3524 except ValueError as e :
3625 raise HTTPException (status_code = 400 , detail = str (e ))
26+
27+ @router .post ("/submit" , response_model = AnswerSubmitResponse )
28+ def submit_challenges (request : AnswerSubmitRequest , db : Session = Depends (get_db )):
29+ try :
30+ is_correct = submit_challenges_logic (request .user_id , request .challenge_id , request .submitted_answer , db )
31+ return AnswerSubmitResponse (is_correct = is_correct )
32+
33+ except ValueError as e :
34+ raise HTTPException (status_code = 400 , detail = str (e ))
0 commit comments