From b45957567c949661cfcc8a426bc2cfdf0b789a11 Mon Sep 17 00:00:00 2001 From: Branson Stephens <stephenb@uwm.edu> Date: Tue, 15 Jan 2013 16:41:21 -0600 Subject: [PATCH] fixed api slot put/get to allow files in general dir --- gracedb/api.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/gracedb/api.py b/gracedb/api.py index f3d2ebe62..675f13501 100644 --- a/gracedb/api.py +++ b/gracedb/api.py @@ -828,9 +828,6 @@ class EventSlot(APIView): return Response("No slot. Search based on slotname not implemented yet.", status=status.HTTP_404_NOT_FOUND) filename = slot.value - dirPrefix = settings.GRACEDB_DATA_DIR - eventDir = os.path.join(dirPrefix, event.graceid()) - filename = os.path.join(eventDir, "private", filename) rv = {} rv['value'] = filename return Response(rv) @@ -844,8 +841,6 @@ class EventSlot(APIView): # XXX Real error message. return Response("Event does not exist.", status=status.HTTP_404_NOT_FOUND) - dirPrefix = settings.GRACEDB_DATA_DIR - eventDir = os.path.join(dirPrefix, event.graceid()) filename = request.DATA.get('filename') # Interestingly, the None object seems to be converted to a string # when encoded in the HTTP request body. Hence the 'None' string @@ -854,9 +849,16 @@ class EventSlot(APIView): if filename=='' or filename=='None' or filename==None: return Response("Please submit a filename or upload a file.", status=status.HTTP_400_BAD_REQUEST) + + # UGLY hack to deal with /private vs /general dirs + general = False + if filename.startswith("general/"): + tmpFilename = filename[len("general/"):] + general = True + filepath = os.path.join(event.datadir(general), tmpFilename) + # Check for existence of the file. - filePath = os.path.join(eventDir, "private", filename) - if not os.path.exists(filePath): + if not os.path.exists(filepath): return Response("No slot created because file does not exist", status=status.HTTP_404_NOT_FOUND) # Check for existence of the slot. If it exists, simply update the -- GitLab