Testys commited on
Commit
d652933
·
verified ·
1 Parent(s): ef35448

Update src/routers/devices.py

Browse files
Files changed (1) hide show
  1. src/routers/devices.py +16 -0
src/routers/devices.py CHANGED
@@ -27,6 +27,22 @@ router = APIRouter(
27
  dependencies=[Depends(get_authenticated_device)]
28
  )
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  @router.post(
31
  "/submit-tag",
32
  response_model=Union[models.ClearanceDetail, models.UserResponse, dict],
 
27
  dependencies=[Depends(get_authenticated_device)]
28
  )
29
 
30
+ @router.post("/devices/register", response_model=models.DeviceResponse)
31
+ async def register_device_endpoint( # Async endpoint
32
+ device_data: models.DeviceRegister, # Pydantic model from ESP32
33
+ db: SQLAlchemySessionType = Depends(get_db)
34
+ ):
35
+ """
36
+ ESP32 devices self-register or re-register. Uses ORM.
37
+ """
38
+ # crud.register_device_esp is sync, call with run_in_threadpool
39
+ try:
40
+ registered_device_orm = await run_in_threadpool(crud.register_device, db, device_data)
41
+ except HTTPException as e: # Catch HTTPExceptions raised by CRUD (e.g., device already exists)
42
+ raise e
43
+ return registered_device_orm # Pydantic DeviceResponse converts from ORM model
44
+
45
+
46
  @router.post(
47
  "/submit-tag",
48
  response_model=Union[models.ClearanceDetail, models.UserResponse, dict],