feat: add backend FastAPI structure and Supabase schema
This commit is contained in:
43
server/app/api/routes/addresses_router.py
Normal file
43
server/app/api/routes/addresses_router.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from fastapi import APIRouter, HTTPException, Depends
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional
|
||||
|
||||
from app.db.database import get_connection
|
||||
from app.core.dependencies import get_current_user
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
class AddressCreate(BaseModel):
|
||||
lat: float
|
||||
lng: float
|
||||
alias: Optional[str] = None
|
||||
address_text: str
|
||||
|
||||
@router.post("/addresses")
|
||||
async def create_address(
|
||||
address: AddressCreate,
|
||||
current_user: dict = Depends(get_current_user)
|
||||
):
|
||||
# Determine route based on location (simplified - in production use PostGIS)
|
||||
route_id = "RUTA-01" # Mock: should calculate based on lat/lng
|
||||
|
||||
conn = get_connection()
|
||||
cursor = conn.execute(
|
||||
"INSERT INTO addresses (user_id, alias, lat, lng, route_id) VALUES (?, ?, ?, ?, ?) RETURNING id",
|
||||
(current_user["id"], address.alias, address.lat, address.lng, route_id)
|
||||
)
|
||||
address_id = cursor.fetchone()[0]
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
return {"id": address_id, "route_id": route_id}
|
||||
|
||||
@router.get("/addresses")
|
||||
async def get_addresses(current_user: dict = Depends(get_current_user)):
|
||||
conn = get_connection()
|
||||
addresses = conn.execute(
|
||||
"SELECT id, alias, lat, lng, route_id FROM addresses WHERE user_id = ?",
|
||||
(current_user["id"],)
|
||||
).fetchall()
|
||||
conn.close()
|
||||
return [dict(addr) for addr in addresses]
|
||||
Reference in New Issue
Block a user