updates
This commit is contained in:
45
Backend/src/routes/refunds_routes.py
Normal file
45
Backend/src/routes/refunds_routes.py
Normal file
@@ -0,0 +1,45 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException, status
|
||||
from sqlalchemy.orm import Session
|
||||
import json
|
||||
from ..config.database import get_db
|
||||
from ..config.logging_config import get_logger
|
||||
from ..models.page_content import PageContent, PageType
|
||||
logger = get_logger(__name__)
|
||||
router = APIRouter(prefix='/refunds', tags=['refunds'])
|
||||
|
||||
def serialize_page_content(content: PageContent) -> dict:
|
||||
return {
|
||||
'id': content.id,
|
||||
'page_type': content.page_type.value,
|
||||
'title': content.title,
|
||||
'subtitle': content.subtitle,
|
||||
'description': content.description,
|
||||
'content': content.content,
|
||||
'meta_title': content.meta_title,
|
||||
'meta_description': content.meta_description,
|
||||
'meta_keywords': content.meta_keywords,
|
||||
'og_title': content.og_title,
|
||||
'og_description': content.og_description,
|
||||
'og_image': content.og_image,
|
||||
'canonical_url': content.canonical_url,
|
||||
'is_active': content.is_active,
|
||||
'created_at': content.created_at.isoformat() if content.created_at else None,
|
||||
'updated_at': content.updated_at.isoformat() if content.updated_at else None
|
||||
}
|
||||
|
||||
@router.get('/')
|
||||
async def get_refunds_content(db: Session=Depends(get_db)):
|
||||
try:
|
||||
content = db.query(PageContent).filter(PageContent.page_type == PageType.REFUNDS).first()
|
||||
if not content:
|
||||
return {'status': 'success', 'data': {'page_content': None, 'is_active': False}}
|
||||
if not content.is_active:
|
||||
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail='Refunds policy page is currently disabled')
|
||||
content_dict = serialize_page_content(content)
|
||||
return {'status': 'success', 'data': {'page_content': content_dict}}
|
||||
except HTTPException:
|
||||
raise
|
||||
except Exception as e:
|
||||
logger.error(f'Error fetching refunds content: {str(e)}', exc_info=True)
|
||||
raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=f'Error fetching refunds content: {str(e)}')
|
||||
|
||||
Reference in New Issue
Block a user