1
1
from flask_restful import Resource , abort
2
2
from flask import request , make_response , jsonify
3
- from pbench .server .database .models .metadata import Metadata
3
+ from pbench .server .database .models .metadata import UserMetadata
4
4
from pbench .server .api .auth import Auth
5
5
6
6
@@ -46,25 +46,31 @@ def post(self):
46
46
self .logger .warning ("Invalid json object: {}" , request .url )
47
47
abort (400 , message = "Invalid json object in request" )
48
48
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
+
49
55
value = post_data .get ("value" )
50
56
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
+ )
52
61
abort (400 , message = "Value field missing" )
53
62
54
63
metadata_key = post_data .get ("key" )
55
64
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
+ )
57
69
abort (400 , message = "Key field missing" )
58
70
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
-
65
71
try :
66
72
# Create a new metadata object
67
- metadata_object = Metadata (
73
+ metadata_object = UserMetadata (
68
74
value = value , key = metadata_key .lower (), user_id = current_user_id
69
75
)
70
76
# insert the metadata object for a user
@@ -125,7 +131,9 @@ def get(self, key):
125
131
current_user_id = None
126
132
try :
127
133
# 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
+ )
129
137
data = [
130
138
metadata .get_json (include = ["id" , "created" , "updated" , "value" ])
131
139
for metadata in metadata_objects
@@ -173,7 +181,7 @@ def verify_metadata(self, metadata):
173
181
return True
174
182
175
183
@Auth .token_auth .login_required (optional = True )
176
- def get (self , id = None ):
184
+ def get (self , id ):
177
185
"""
178
186
Get request for querying a metadata object of a user given a metadata id.
179
187
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):
201
209
202
210
try :
203
211
# Fetch the metadata object
204
- metadata_objects = Metadata .query (id = id )
212
+ metadata_objects = UserMetadata .query (id = id )
205
213
except Exception :
206
214
self .logger .exception (
207
215
"Exception occurred in the GET request while querying the Metadata model, id: {}" ,
@@ -226,7 +234,7 @@ def get(self, id=None):
226
234
return make_response (jsonify (response_object ), 200 )
227
235
228
236
@Auth .token_auth .login_required (optional = True )
229
- def put (self , id = None ):
237
+ def put (self , id ):
230
238
"""
231
239
Put request for updating a metadata object of a user given a metadata id.
232
240
This requires a Pbench auth token in the header field
@@ -255,15 +263,15 @@ def put(self, id=None):
255
263
"""
256
264
if id is None :
257
265
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 " )
259
267
260
268
post_data = request .get_json ()
261
269
if not post_data :
262
270
self .logger .warning ("Invalid json object: {}" , request .url )
263
271
abort (400 , message = "Invalid json object in request" )
264
272
265
273
try :
266
- metadata_objects = Metadata .query (id = id )
274
+ metadata_objects = UserMetadata .query (id = id )
267
275
except Exception :
268
276
self .logger .exception (
269
277
"Exception occurred in the PUT request while querying the Metadata model, id: {}" ,
@@ -284,15 +292,17 @@ def put(self, id=None):
284
292
# not present in the metadata db. If any key in the payload does not match
285
293
# with the column name we will abort the update request.
286
294
non_existent = set (post_data .keys ()).difference (
287
- set (Metadata .__table__ .columns .keys ())
295
+ set (UserMetadata .__table__ .columns .keys ())
288
296
)
289
297
if non_existent :
290
298
self .logger .warning (
291
299
"User trying to update fields that are not present in the metadata database. Fields: {}" ,
292
300
non_existent ,
293
301
)
294
302
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
+ )
296
306
for field in protected :
297
307
if getattr (metadata_object , field ) != post_data [field ]:
298
308
self .logger .warning (
@@ -314,7 +324,7 @@ def put(self, id=None):
314
324
return make_response (jsonify (response_object ), 200 )
315
325
316
326
@Auth .token_auth .login_required (optional = True )
317
- def delete (self , id = None ):
327
+ def delete (self , id ):
318
328
"""
319
329
Delete request for deleting a metadata object of a user given a metadata id.
320
330
This requires a Pbench auth token in the header field
@@ -331,11 +341,11 @@ def delete(self, id=None):
331
341
"""
332
342
if id is None :
333
343
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 " )
335
345
336
346
try :
337
347
# Fetch the metadata object
338
- metadata_objects = Metadata .query (id = id )
348
+ metadata_objects = UserMetadata .query (id = id )
339
349
except Exception :
340
350
self .logger .exception (
341
351
"Exception occurred in the Delete request while querying the Metadata model, id: {}" ,
@@ -354,7 +364,7 @@ def delete(self, id=None):
354
364
355
365
try :
356
366
# Delete the metadata object
357
- Metadata .delete (id = id )
367
+ UserMetadata .delete (id = id )
358
368
except Exception :
359
369
self .logger .exception (
360
370
"Exception occurred in the while deleting the metadata entry, id: {}" ,
0 commit comments