freeleaps-service-hub/apps/central_storage/webapi/routes/retrieve_document_info.py
2024-10-30 07:22:26 -07:00

36 lines
1.2 KiB
Python

from fastapi import APIRouter
from fastapi import APIRouter, Depends
from fastapi.encoders import jsonable_encoder
from fastapi.responses import JSONResponse
from fastapi import Depends, HTTPException
from starlette.status import HTTP_401_UNAUTHORIZED
from fastapi.encoders import jsonable_encoder
from fastapi.responses import JSONResponse
from backend.application.document_hub import DocumentHub
router = APIRouter()
# Web API
# Fetch document by ID
@router.get(
"/retrieve-document-info/{document_id}",
operation_id="retrieve-document-info",
summary="Fetch a document by its ID",
description="Retrieve a specific document by its document ID and return file name and download URL",
response_description="The document details including file name and download URL",
)
async def retrieve_document_info(
document_id: str
):
# Fetch the document using DocumentHub
document = await DocumentHub().retrieve_document_info(document_id)
# If document is not found, raise 404 error
if not document:
raise HTTPException(status_code=404, detail="Document not found")
# Return the document details
return JSONResponse(content=jsonable_encoder({"document": document}))