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 | |