Spaces:
Sleeping
Sleeping
| 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() | |
| 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 | |
| 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 | |
| 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 | |