ans123's picture
Initial upload from Colab
ef1ad9e verified
# --- Library Imports ---
from sqlalchemy.exc import SQLAlchemyError
from fastapi import HTTPException, status
from sqlalchemy import text
# --- User Imports ---
from app.schema.response_schema import ResponseSchema
class DocumentDropdownService:
@staticmethod
async def _fetch_data(query: str, success_message: str, db) -> dict:
"""
Fetch data from the database.
Parameters:
- query: SQL query string
- success_message: Success message string
- db: Database session
Returns:
- ResponseSchema: Response object containing fetched data
"""
try:
# Execute the SQL query
result = db.execute(text(query))
column_names = result.keys()
data = [dict(zip(column_names, row)) for row in result.fetchall()]
return ResponseSchema(
status=200,
message=success_message,
success=True,
data=data,
)
except SQLAlchemyError as e:
db.rollback()
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(e))
@staticmethod
async def get_loanTypes(db):
"""
Fetch document status data.
Parameters:
- db: Database session
Returns:
- ResponseSchema: Response object containing document status data
"""
return await DocumentDropdownService._fetch_data(
'SELECT * FROM "DocumentStatuses";', "Document status fetched successfully!", db
)