public shares now work

This commit is contained in:
2025-12-12 22:06:05 +05:00
parent 1f088c8fb0
commit f5370aa7f9
9 changed files with 117 additions and 79 deletions

View File

@@ -10,6 +10,7 @@ from app.models.user import User
from app.schemas.map_item import MapItemCreate, MapItemUpdate, MapItemResponse
from app.services import item_service
from app.services.item_service import geography_to_geojson
from app.websocket.connection_manager import manager
router = APIRouter(prefix="/api/maps/{map_id}/items", tags=["map-items"])
@@ -50,7 +51,12 @@ async def create_map_item(
):
"""Create a new map item."""
item = item_service.create_map_item(db, map_id, item_data, current_user)
return format_item_response(item)
response = format_item_response(item)
# Broadcast to WebSocket clients
await manager.send_item_created(map_id, response)
return response
@router.get("/{item_id}", response_model=dict)
@@ -75,7 +81,12 @@ async def update_map_item(
):
"""Update a map item."""
item = item_service.update_map_item(db, item_id, item_data, current_user)
return format_item_response(item)
response = format_item_response(item)
# Broadcast to WebSocket clients
await manager.send_item_updated(map_id, response)
return response
@router.delete("/{item_id}", status_code=status.HTTP_204_NO_CONTENT)
@@ -87,4 +98,8 @@ async def delete_map_item(
):
"""Delete a map item."""
item_service.delete_map_item(db, item_id, current_user)
# Broadcast to WebSocket clients
await manager.send_item_deleted(map_id, str(item_id))
return None