todo_chatbot / src /api /sync.py
Awais68
Deploy FastAPI backend with MCP and OpenAI agents
cccf200
Raw
History Blame Contribute Delete
1.26 kB
"""
Sync API endpoint for offline change synchronization.
"""
from fastapi import APIRouter, Depends, status
from sqlmodel import Session
from src.db.session import get_session
from src.models.sync_operation import SyncRequest, SyncResponse
from src.models.user import User
from src.services.sync_service import SyncService
from src.middleware.auth import get_current_user
router = APIRouter(prefix="/sync", tags=["sync"])
@router.post("/", response_model=SyncResponse)
def sync_offline_changes(
sync_request: SyncRequest,
session: Session = Depends(get_session),
current_user: User = Depends(get_current_user)
):
"""
Synchronize offline changes from client to server.
Args:
sync_request: Sync request containing pending operations
session: Database session
current_user: Authenticated user
Returns:
SyncResponse: Sync results with conflicts and server updates
"""
result = SyncService.sync_operations(
session,
current_user.id,
sync_request.operations
)
return SyncResponse(
success=result["success"],
synced_count=result["synced_count"],
conflicts=result["conflicts"],
server_updates=result["server_updates"]
)