Commit 9a6c83ca by Őry Máté

store: refactor commands to functions

parent 5cdd5412
...@@ -44,6 +44,8 @@ def neptun_GET(neptun): ...@@ -44,6 +44,8 @@ def neptun_GET(neptun):
statistics=getQuotaStatus(neptun) statistics=getQuotaStatus(neptun)
return { 'Used' : statistics[0], 'Soft' : statistics[1], 'Hard' : statistics[2]} return { 'Used' : statistics[0], 'Soft' : statistics[1], 'Hard' : statistics[2]}
COMMANDS = {}
@route('/<neptun>', method='POST') @route('/<neptun>', method='POST')
def neptun_POST(neptun): def neptun_POST(neptun):
# Check if user avaiable (home folder ready) # Check if user avaiable (home folder ready)
...@@ -51,16 +53,23 @@ def neptun_POST(neptun): ...@@ -51,16 +53,23 @@ def neptun_POST(neptun):
if os.path.exists(home_path) != True: if os.path.exists(home_path) != True:
abort(401, 'The requested user does not exist!') abort(401, 'The requested user does not exist!')
else: else:
# Parse post try:
# LISTING return COMMANDS[request.json['CMD']](request, neptun, home_path)
if request.json['CMD'] == 'LIST': except KeyError:
abort(400, "Command not found!")
# LISTING
def cmd_list(request, neptun, home_path):
list_path = home_path+request.json['PATH'] list_path = home_path+request.json['PATH']
if os.path.exists(list_path) != True: if os.path.exists(list_path) != True:
abort(404, "Path not found!") abort(404, "Path not found!")
else: else:
return list_directory(home_path, list_path) return list_directory(home_path, list_path)
# DOWNLOAD LINK GENERATOR COMMANDS['LIST'] = cmd_list
elif request.json['CMD'] == 'DOWNLOAD':
# DOWNLOAD LINK GENERATOR
def cmd_download(request, neptun, home_path):
dl_path = home_path+'/'+request.json['PATH'] dl_path = home_path+'/'+request.json['PATH']
dl_path = os.path.realpath(dl_path) dl_path = os.path.realpath(dl_path)
if not dl_path.startswith(home_path): if not dl_path.startswith(home_path):
...@@ -83,8 +92,10 @@ def neptun_POST(neptun): ...@@ -83,8 +92,10 @@ def neptun_POST(neptun):
result = subprocess.call(['/usr/bin/zip', '-rqDj', temp_path, dl_path], stdout = fnull, stderr = fnull) result = subprocess.call(['/usr/bin/zip', '-rqDj', temp_path, dl_path], stdout = fnull, stderr = fnull)
os.symlink(temp_path, ROOT_WWW_FOLDER+'/'+dl_hash) os.symlink(temp_path, ROOT_WWW_FOLDER+'/'+dl_hash)
return json.dumps({'LINK' : SITE_URL+'/dl/'+dl_hash}) return json.dumps({'LINK' : SITE_URL+'/dl/'+dl_hash})
# UPLOAD COMMANDS['DOWNLOAD'] = cmd_download
elif request.json['CMD'] == 'UPLOAD':
# UPLOAD
def cmd_upload(request, neptun, home_path):
up_path = home_path+'/'+request.json['PATH'] up_path = home_path+'/'+request.json['PATH']
up_path = os.path.realpath(up_path) up_path = os.path.realpath(up_path)
if not up_path.startswith(home_path): if not up_path.startswith(home_path):
...@@ -95,8 +106,10 @@ def neptun_POST(neptun): ...@@ -95,8 +106,10 @@ def neptun_POST(neptun):
return json.dumps({ 'LINK' : SITE_URL+'/ul/'+up_hash}) return json.dumps({ 'LINK' : SITE_URL+'/ul/'+up_hash})
else: else:
abort(400, 'Upload directory not exists!') abort(400, 'Upload directory not exists!')
# MOVE COMMANDS['UPLOAD'] = cmd_upload
elif request.json['CMD'] == 'MOVE':
# MOVE
def cmd_move(request, neptun, home_path):
src_path = home_path+'/'+request.json['SOURCE'] src_path = home_path+'/'+request.json['SOURCE']
dst_path = home_path+'/'+request.json['DESTINATION'] dst_path = home_path+'/'+request.json['DESTINATION']
src_path = os.path.realpath(src_path) src_path = os.path.realpath(src_path)
...@@ -111,8 +124,10 @@ def neptun_POST(neptun): ...@@ -111,8 +124,10 @@ def neptun_POST(neptun):
else: else:
# TODO # TODO
abort(400, "Can not move the file.") abort(400, "Can not move the file.")
# RENAME COMMANDS['MOVE'] = cmd_move
elif request.json['CMD'] == 'RENAME':
# RENAME
def cmd_rename(request, neptun, home_path):
src_path = home_path+'/'+request.json['PATH'] src_path = home_path+'/'+request.json['PATH']
src_path = os.path.realpath(src_path) src_path = os.path.realpath(src_path)
if not src_path.startswith(home_path): if not src_path.startswith(home_path):
...@@ -122,9 +137,10 @@ def neptun_POST(neptun): ...@@ -122,9 +137,10 @@ def neptun_POST(neptun):
os.rename(src_path, dst_path) os.rename(src_path, dst_path)
else: else:
abort(404, "File or Folder not found!") abort(404, "File or Folder not found!")
return COMMANDS['RENAME'] = cmd_rename
# NEW FOLDER
elif request.json['CMD'] == 'NEW_FOLDER': # NEW FOLDER
def cmd_new_folder(request, neptun, home_path):
dir_path = home_path+'/'+request.json['PATH'] dir_path = home_path+'/'+request.json['PATH']
dir_path = os.path.realpath(dir_path) dir_path = os.path.realpath(dir_path)
if not dir_path.startswith(home_path): if not dir_path.startswith(home_path):
...@@ -133,9 +149,10 @@ def neptun_POST(neptun): ...@@ -133,9 +149,10 @@ def neptun_POST(neptun):
abort(400, "Directory already exist!") abort(400, "Directory already exist!")
else: else:
os.mkdir(dir_path, 0755) os.mkdir(dir_path, 0755)
return COMMANDS['NEW_FOLDER'] = cmd_new_folder
# REMOVE
elif request.json['CMD'] == 'REMOVE': # REMOVE
def cmd_remove(request, neptun, home_path):
remove_path = home_path+'/'+request.json['PATH'] remove_path = home_path+'/'+request.json['PATH']
remove_path = os.path.realpath(remove_path) remove_path = os.path.realpath(remove_path)
if not remove_path.startswith(home_path): if not remove_path.startswith(home_path):
...@@ -149,8 +166,7 @@ def neptun_POST(neptun): ...@@ -149,8 +166,7 @@ def neptun_POST(neptun):
else: else:
os.remove(remove_path) os.remove(remove_path)
return return
else: COMMANDS['REMOVE'] = cmd_remove
abort(400, "Command not found!")
@route('/set/<neptun>', method='POST') @route('/set/<neptun>', method='POST')
def set_keys(neptun): def set_keys(neptun):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment