health-apps-cms/apis/endpoints/call_transcripts.py

43 lines
1.9 KiB
Python

import datetime
from typing import Optional
from fastapi import APIRouter, BackgroundTasks, Depends
from services.callTranscripts import CallTranscriptServices
from middleware.auth_dependency import auth_required
from utils.constants import DEFAULT_LIMIT, DEFAULT_ORDER, DEFAULT_ORDER_BY, DEFAULT_PAGE
from schemas.ApiResponse import ApiResponse
from schemas.CreateSchemas import CallTranscriptsCreate
router = APIRouter()
@router.get("/", dependencies=[Depends(auth_required)])
async def get_call_transcripts(limit: int = DEFAULT_LIMIT, page: int = DEFAULT_PAGE, search: str = "", orderBy: str = DEFAULT_ORDER, order: str = DEFAULT_ORDER_BY, startDate: Optional[datetime.datetime] = None, endDate: Optional[datetime.datetime] = None):
if page == 0:
page = 1
offset = (page - 1) * limit
response = await CallTranscriptServices().get_call_transcripts(limit, offset, search, orderBy, order, startDate, endDate)
return ApiResponse(data=response, message="Call transcripts retrieved successfully")
@router.get("/{key_id}", dependencies=[Depends(auth_required)])
async def download_call_transcript(key_id: str):
service = CallTranscriptServices()
response = await service.download_call_transcript(key_id)
return ApiResponse(data=response, message="Call transcript downloaded successfully")
@router.post("/")
async def create_call_transcript(data: CallTranscriptsCreate):
service = CallTranscriptServices()
await service.create_call_transcript(data)
return ApiResponse(data="OK", message="Call transcript created successfully")
@router.post("/bulk-download", dependencies=[Depends(auth_required)])
async def bulk_download_call_transcripts(
key_ids: list[int], background_tasks: BackgroundTasks
):
service = CallTranscriptServices()
response = await service.bulk_download_call_transcripts(key_ids, background_tasks)
return response