Spaces:
Sleeping
Sleeping
File size: 1,713 Bytes
257a3a9 c71e312 954e6f4 c71e312 954e6f4 c71e312 954e6f4 c71e312 954e6f4 59e8129 954e6f4 59e8129 954e6f4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from uuid import UUID
from typing import List
from src.expon.shared.infrastructure.dependencies import get_db
from src.expon.feedback.interfaces.rest.feedback_request import FeedbackRequest
from src.expon.feedback.interfaces.rest.feedback_response import FeedbackResponse
from src.expon.feedback.infrastructure.persistence.jpa.feedback_repository import FeedbackRepository
from src.expon.presentation.infrastructure.persistence.jpa.repositories.presentation_repository import PresentationRepository
from src.expon.feedback.application.internal.generate_feedback_service import GenerateFeedbackService
router = APIRouter()
@router.post("/", response_model=FeedbackResponse)
def generate_feedback(request: FeedbackRequest, db: Session = Depends(get_db)):
feedback_repo = FeedbackRepository(db)
presentation_repo = PresentationRepository(db)
service = GenerateFeedbackService(feedback_repo, presentation_repo)
result = service.generate_feedback(request.presentation_id)
return result
@router.get("/user/{user_id}", response_model=List[FeedbackResponse])
def get_feedback_by_user(user_id: UUID, db: Session = Depends(get_db)):
repo = FeedbackRepository(db)
results = repo.get_by_user(user_id)
return results
@router.get("/presentation/{presentation_id}", response_model=List[FeedbackResponse])
def get_feedback_by_presentation(presentation_id: UUID, db: Session = Depends(get_db)):
repo = FeedbackRepository(db)
results = repo.get_by_presentation(presentation_id)
if not results:
raise HTTPException(status_code=404, detail="Feedback no encontrado")
return results
|