2828 MachineUpdate ,
2929 MachineUserSummary ,
3030)
31- from app .schemas .common import MessageResponse
31+ from app .schemas .common import HTTP_403 , HTTP_404 , HTTP_409 , MessageResponse
3232
3333router = APIRouter ()
3434
@@ -41,7 +41,7 @@ def list_machines(
4141 return db .query (Machine ).order_by (Machine .name ).all ()
4242
4343
44- @router .post ("" , response_model = MachineCreateResponse , status_code = 201 )
44+ @router .post ("" , response_model = MachineCreateResponse , status_code = 201 , responses = { ** HTTP_409 } )
4545def register_machine (
4646 body : MachineCreate ,
4747 admin : dict = Depends (require_admin_user ),
@@ -84,7 +84,7 @@ def list_my_machines(
8484 )
8585
8686
87- @router .get ("/{slug}" , response_model = MachineResponse )
87+ @router .get ("/{slug}" , response_model = MachineResponse , responses = { ** HTTP_404 } )
8888def get_machine (
8989 slug : str ,
9090 request : Request ,
@@ -94,7 +94,7 @@ def get_machine(
9494 return machine
9595
9696
97- @router .put ("/{slug}" , response_model = MachineResponse )
97+ @router .put ("/{slug}" , response_model = MachineResponse , responses = { ** HTTP_404 , ** HTTP_409 } )
9898def update_machine (
9999 slug : str ,
100100 body : MachineUpdate ,
@@ -119,7 +119,7 @@ def update_machine(
119119 return machine
120120
121121
122- @router .delete ("/{slug}" , response_model = MessageResponse )
122+ @router .delete ("/{slug}" , response_model = MessageResponse , responses = { ** HTTP_404 } )
123123def deactivate_machine (
124124 slug : str ,
125125 admin : dict = Depends (require_admin_user ),
@@ -133,7 +133,7 @@ def deactivate_machine(
133133 return {"detail" : "Machine deactivated" }
134134
135135
136- @router .post ("/{slug}/token" , response_model = MachineCreateResponse )
136+ @router .post ("/{slug}/token" , response_model = MachineCreateResponse , responses = { ** HTTP_404 } )
137137def regenerate_token (
138138 slug : str ,
139139 admin : dict = Depends (require_admin_user ),
@@ -152,7 +152,7 @@ def regenerate_token(
152152
153153# --- Machine admins (by OIDC sub) ---
154154
155- @router .get ("/{slug}/admins" , response_model = list [MachineAdminResponse ])
155+ @router .get ("/{slug}/admins" , response_model = list [MachineAdminResponse ], responses = { ** HTTP_404 } )
156156def list_machine_admins (
157157 slug : str ,
158158 request : Request ,
@@ -171,7 +171,7 @@ def list_machine_admins(
171171 return result
172172
173173
174- @router .post ("/{slug}/admins" , response_model = MachineAdminResponse , status_code = 201 )
174+ @router .post ("/{slug}/admins" , response_model = MachineAdminResponse , status_code = 201 , responses = { ** HTTP_404 , ** HTTP_409 } )
175175def add_machine_admin (
176176 slug : str ,
177177 body : MachineAdminCreate ,
@@ -197,7 +197,7 @@ def add_machine_admin(
197197 return {"machine_id" : entry .machine_id , "oidc_sub" : entry .oidc_sub , "user_name" : linked_user .name if linked_user else None }
198198
199199
200- @router .delete ("/{slug}/admins/{oidc_sub}" , response_model = MessageResponse )
200+ @router .delete ("/{slug}/admins/{oidc_sub}" , response_model = MessageResponse , responses = { ** HTTP_404 } )
201201def remove_machine_admin (
202202 slug : str ,
203203 oidc_sub : str ,
@@ -221,7 +221,7 @@ def remove_machine_admin(
221221
222222# --- Session history ---
223223
224- @router .get ("/{slug}/sessions" , response_model = list [MachineSessionResponse ])
224+ @router .get ("/{slug}/sessions" , response_model = list [MachineSessionResponse ], responses = { ** HTTP_404 } )
225225def list_sessions (
226226 slug : str ,
227227 request : Request ,
@@ -273,7 +273,7 @@ def list_sessions(
273273
274274# --- Users (for authorization dropdown) ---
275275
276- @router .get ("/{slug}/users" , response_model = list [MachineUserSummary ])
276+ @router .get ("/{slug}/users" , response_model = list [MachineUserSummary ], responses = { ** HTTP_404 } )
277277def list_machine_users (
278278 slug : str ,
279279 request : Request ,
@@ -286,7 +286,7 @@ def list_machine_users(
286286
287287# --- Authorizations ---
288288
289- @router .get ("/{slug}/authorizations" , response_model = list [AuthorizationResponse ])
289+ @router .get ("/{slug}/authorizations" , response_model = list [AuthorizationResponse ], responses = { ** HTTP_404 } )
290290def list_authorizations (
291291 slug : str ,
292292 request : Request ,
@@ -299,7 +299,7 @@ def list_authorizations(
299299 ]
300300
301301
302- @router .post ("/{slug}/authorizations" , response_model = AuthorizationResponse , status_code = 201 )
302+ @router .post ("/{slug}/authorizations" , response_model = AuthorizationResponse , status_code = 201 , responses = { ** HTTP_404 , ** HTTP_409 } )
303303def grant_authorization (
304304 slug : str ,
305305 body : AuthorizationCreate ,
@@ -335,7 +335,7 @@ def grant_authorization(
335335 return auth
336336
337337
338- @router .put ("/{slug}/authorizations/{nfc_id}" , response_model = AuthorizationResponse )
338+ @router .put ("/{slug}/authorizations/{nfc_id}" , response_model = AuthorizationResponse , responses = { ** HTTP_404 } )
339339def update_authorization (
340340 slug : str ,
341341 nfc_id : int ,
@@ -365,7 +365,7 @@ def update_authorization(
365365 return auth
366366
367367
368- @router .delete ("/{slug}/authorizations/{nfc_id}" , response_model = MessageResponse )
368+ @router .delete ("/{slug}/authorizations/{nfc_id}" , response_model = MessageResponse , responses = { ** HTTP_404 } )
369369def revoke_authorization (
370370 slug : str ,
371371 nfc_id : int ,
@@ -388,7 +388,7 @@ def revoke_authorization(
388388 return {"detail" : "Authorization revoked" }
389389
390390
391- @router .get ("/{slug}/authorize/{nfc_id}" , response_model = AuthorizeUserResponse )
391+ @router .get ("/{slug}/authorize/{nfc_id}" , response_model = AuthorizeUserResponse , responses = { ** HTTP_403 , ** HTTP_404 } )
392392def check_authorization (
393393 slug : str ,
394394 nfc_id : int ,
0 commit comments