@@ -30,8 +30,13 @@ class Cookie__Template(Type_Safe): # Template for common cookie
3030 description : str
3131 cookies : List [Cookie__Config ]
3232
33- class Cookies__Templates (Type_Safe ):
34- cookies_templates : List [Cookie__Template ]
33+ class Cookie__Bulk_Request (Type_Safe ):
34+ name : str
35+ value : str
36+ expires_in : Optional [int ] = None
37+
38+ class Cookies__Bulk_Request (Type_Safe ):
39+ cookies : List [Cookie__Bulk_Request ]
3540
3641class Routes__Admin__Cookies (Fast_API__Routes ): # API routes for cookie management
3742 tag = 'admin-cookies'
@@ -144,7 +149,7 @@ def api__cookies_list(self, request: Request) -> List[Dict[str, Any]]:
144149 def api__cookies_templates (self ) -> List [Dict [str , Any ]]: # Get available cookie templates
145150 return self .COOKIE_TEMPLATES # todo: see note above in COOKIE_TEMPLATES
146151
147- def api__cookie_get (self , cookie_name : str , request : Request ) -> Dict [str , Any ]: # Get a specific cookie value
152+ def api__cookie_get__cookie_name (self , cookie_name : str , request : Request ) -> Dict [str , Any ]: # Get a specific cookie value
148153 value = request .cookies .get (cookie_name )
149154
150155 config = None # Find cookie config
@@ -193,33 +198,33 @@ def api__cookie_set__cookie_name(self, cookie_name : str ,
193198 "name" : cookie_name , # we also need to standardise the return object/class
194199 "value_set" : len (cookie_value .value ) > 0 }
195200
196- def api__cookie_delete (self , cookie_name : str , response : Response ) -> Dict [str , Any ]: # Delete a cookie
201+ def api__cookie_delete__cookie_name (self , cookie_name : str , response : Response ) -> Dict [str , Any ]: # Delete a cookie
197202 response .delete_cookie (key = cookie_name )
198203
199204 return { "success" : True , # todo: convert this to a Schema_* class
200205 "name" : cookie_name ,
201206 "deleted" : True }
202207
203- def api__cookies_bulk_set (self , cookies_templates : Cookies__Templates , #cookies: List[Dict[str, str]],
204- request : Request ,
205- response : Response
208+ def api__cookies_bulk_set (self , bulk_request : Cookies__Bulk_Request , #cookies: List[Dict[str, str]],
209+ request : Request ,
210+ response : Response
206211 ) -> Dict [str , Any ]: # Set multiple cookies at once"""
207212 results = []
208213
209- for cookie_data in cookies_templates :
210- cookie_name = cookie_data .get ( ' name' )
211- cookie_value = Cookie__Value (value = cookie_data .get ( ' value' , '' ) )
214+ for cookie_data in bulk_request . cookies :
215+ cookie_name = cookie_data .name
216+ cookie_value = Cookie__Value (value = cookie_data .value , expires_in = cookie_data . expires_in )
212217
213218 if cookie_name :
214- result = self .api__cookie_set (cookie_name , cookie_value , request , response )
219+ result = self .api__cookie_set__cookie_name (cookie_name , cookie_value , request , response )
215220 results .append (result )
216221
217222 return {
218223 "success" : all (r .get ('success' ) for r in results ),
219224 "results" : results
220225 }
221226
222- def api__generate_value (self , value_type : str = "uuid" ) -> Dict [str , str ]:
227+ def api__generate_value__value_type (self , value_type : str = "uuid" ) -> Dict [str , str ]:
223228 """Generate a value for cookies (UUID, random string, etc.)"""
224229 if value_type == "uuid" :
225230 return {"value" : random_guid (), "type" : "uuid" }
@@ -245,10 +250,10 @@ def _validate_cookie_value(self, value: Optional[str], pattern: Optional[str]) -
245250 return True
246251
247252 def setup_routes (self ):
248- self .add_route_get (self .api__cookies_list )
249- self .add_route_get (self .api__cookies_templates )
250- self .add_route_get (self .api__cookie_get )
251- self .add_route_post (self .api__cookie_set__cookie_name )
252- self .add_route_delete (self .api__cookie_delete )
253- self .add_route_post (self .api__cookies_bulk_set )
254- self .add_route_get (self .api__generate_value )
253+ self .add_route_get (self .api__cookies_list )
254+ self .add_route_get (self .api__cookies_templates )
255+ self .add_route_get (self .api__cookie_get__cookie_name )
256+ self .add_route_post (self .api__cookie_set__cookie_name )
257+ self .add_route_delete (self .api__cookie_delete__cookie_name )
258+ self .add_route_post (self .api__cookies_bulk_set )
259+ self .add_route_get (self .api__generate_value__value_type )
0 commit comments