aboutsummaryrefslogtreecommitdiff
path: root/app/routers/devices.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/routers/devices.py')
-rw-r--r--app/routers/devices.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/app/routers/devices.py b/app/routers/devices.py
new file mode 100644
index 0000000..882c474
--- /dev/null
+++ b/app/routers/devices.py
@@ -0,0 +1,20 @@
+from fastapi import APIRouter, Depends
+from sqlalchemy.ext.asyncio import AsyncSession
+from app.db import get_db
+from app.schemas import DeviceRegisterIn
+from app.crud import upsert_device
+from app.security import require_api_key
+
+router = APIRouter(prefix="/v1/devices", tags=["devices"], dependencies=[Depends(require_api_key)])
+
+
[email protected]("/register")
+async def register_device(payload: DeviceRegisterIn, db: AsyncSession = Depends(get_db)) -> dict:
+ device = await upsert_device(db, payload)
+ return {
+ "id": device.id,
+ "user_id": device.user_id,
+ "bundle_id": device.bundle_id,
+ "apns_env": device.apns_env,
+ "is_enabled": device.is_enabled,
+ }