11from flask_restful import Resource , abort
22from flask import request , make_response , jsonify
3- from pbench .server .database .models .metadata import Metadata
3+ from pbench .server .database .models .metadata import UserMetadata
44from pbench .server .api .auth import Auth
55
66
@@ -46,25 +46,31 @@ def post(self):
4646 self .logger .warning ("Invalid json object: {}" , request .url )
4747 abort (400 , message = "Invalid json object in request" )
4848
49+ current_user = self .auth .token_auth .current_user ()
50+ if current_user :
51+ current_user_id = current_user .id
52+ else :
53+ current_user_id = None
54+
4955 value = post_data .get ("value" )
5056 if value is None :
51- self .logger .warning ("Value not provided during metadata creation." )
57+ self .logger .warning (
58+ "Value not provided during metadata creation. User_id: {}" ,
59+ current_user_id ,
60+ )
5261 abort (400 , message = "Value field missing" )
5362
5463 metadata_key = post_data .get ("key" )
5564 if metadata_key is None :
56- self .logger .warning ("Key not provided during metadata creation." )
65+ self .logger .warning (
66+ "Key not provided during metadata creation. User_id: {}" ,
67+ current_user_id ,
68+ )
5769 abort (400 , message = "Key field missing" )
5870
59- current_user = self .auth .token_auth .current_user ()
60- if current_user :
61- current_user_id = current_user .id
62- else :
63- current_user_id = None
64-
6571 try :
6672 # Create a new metadata object
67- metadata_object = Metadata (
73+ metadata_object = UserMetadata (
6874 value = value , key = metadata_key .lower (), user_id = current_user_id
6975 )
7076 # insert the metadata object for a user
@@ -125,7 +131,9 @@ def get(self, key):
125131 current_user_id = None
126132 try :
127133 # Query the metadata object with a given key
128- metadata_objects = Metadata .query (user_id = current_user_id , key = key .lower ())
134+ metadata_objects = UserMetadata .query (
135+ user_id = current_user_id , key = key .lower ()
136+ )
129137 data = [
130138 metadata .get_json (include = ["id" , "created" , "updated" , "value" ])
131139 for metadata in metadata_objects
@@ -173,7 +181,7 @@ def verify_metadata(self, metadata):
173181 return True
174182
175183 @Auth .token_auth .login_required (optional = True )
176- def get (self , id = None ):
184+ def get (self , id ):
177185 """
178186 Get request for querying a metadata object of a user given a metadata id.
179187 This requires a Pbench auth token in the header field if the metadata object is private to a user
@@ -201,7 +209,7 @@ def get(self, id=None):
201209
202210 try :
203211 # Fetch the metadata object
204- metadata_objects = Metadata .query (id = id )
212+ metadata_objects = UserMetadata .query (id = id )
205213 except Exception :
206214 self .logger .exception (
207215 "Exception occurred in the GET request while querying the Metadata model, id: {}" ,
@@ -226,7 +234,7 @@ def get(self, id=None):
226234 return make_response (jsonify (response_object ), 200 )
227235
228236 @Auth .token_auth .login_required (optional = True )
229- def put (self , id = None ):
237+ def put (self , id ):
230238 """
231239 Put request for updating a metadata object of a user given a metadata id.
232240 This requires a Pbench auth token in the header field
@@ -255,15 +263,15 @@ def put(self, id=None):
255263 """
256264 if id is None :
257265 self .logger .warning ("Metadata id not provided during metadata query" )
258- abort (400 , message = "Please provide a metadata id to query " )
266+ abort (400 , message = "Missing metadata id in the URI for update operation " )
259267
260268 post_data = request .get_json ()
261269 if not post_data :
262270 self .logger .warning ("Invalid json object: {}" , request .url )
263271 abort (400 , message = "Invalid json object in request" )
264272
265273 try :
266- metadata_objects = Metadata .query (id = id )
274+ metadata_objects = UserMetadata .query (id = id )
267275 except Exception :
268276 self .logger .exception (
269277 "Exception occurred in the PUT request while querying the Metadata model, id: {}" ,
@@ -284,15 +292,17 @@ def put(self, id=None):
284292 # not present in the metadata db. If any key in the payload does not match
285293 # with the column name we will abort the update request.
286294 non_existent = set (post_data .keys ()).difference (
287- set (Metadata .__table__ .columns .keys ())
295+ set (UserMetadata .__table__ .columns .keys ())
288296 )
289297 if non_existent :
290298 self .logger .warning (
291299 "User trying to update fields that are not present in the metadata database. Fields: {}" ,
292300 non_existent ,
293301 )
294302 abort (400 , message = "Invalid fields in update request payload" )
295- protected = set (post_data .keys ()).intersection (set (Metadata .get_protected ()))
303+ protected = set (post_data .keys ()).intersection (
304+ set (UserMetadata .get_protected ())
305+ )
296306 for field in protected :
297307 if getattr (metadata_object , field ) != post_data [field ]:
298308 self .logger .warning (
@@ -314,7 +324,7 @@ def put(self, id=None):
314324 return make_response (jsonify (response_object ), 200 )
315325
316326 @Auth .token_auth .login_required (optional = True )
317- def delete (self , id = None ):
327+ def delete (self , id ):
318328 """
319329 Delete request for deleting a metadata object of a user given a metadata id.
320330 This requires a Pbench auth token in the header field
@@ -331,11 +341,11 @@ def delete(self, id=None):
331341 """
332342 if id is None :
333343 self .logger .warning ("Metadata id not provided during metadata query" )
334- abort (400 , message = "Please provide a metadata id to query " )
344+ abort (400 , message = "Missing metadata id in the URI for delete operation " )
335345
336346 try :
337347 # Fetch the metadata object
338- metadata_objects = Metadata .query (id = id )
348+ metadata_objects = UserMetadata .query (id = id )
339349 except Exception :
340350 self .logger .exception (
341351 "Exception occurred in the Delete request while querying the Metadata model, id: {}" ,
@@ -354,7 +364,7 @@ def delete(self, id=None):
354364
355365 try :
356366 # Delete the metadata object
357- Metadata .delete (id = id )
367+ UserMetadata .delete (id = id )
358368 except Exception :
359369 self .logger .exception (
360370 "Exception occurred in the while deleting the metadata entry, id: {}" ,
0 commit comments