diff --git a/.gitignore b/.gitignore index b737378..a2a7cb8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.pyo *.swp *.pem +*.egg-info diff --git a/wsgi/routes.py b/wsgi/routes.py index 124298c..3e49cf9 100644 --- a/wsgi/routes.py +++ b/wsgi/routes.py @@ -66,8 +66,7 @@ def upload_file(): return json_success() return json_error('database error', 500) - else: - return json_error('not authenticated', 401) + return json_error('not authenticated', 401) @app.route('/file/download/') def download_file(filename): @@ -81,6 +80,15 @@ def download_file(filename): 'X-Symmetric-Key': aes_key} return f.read(), 200, headers - else: - return json_error('not authenticated', 401) + + return json_error('not authenticated', 401) + +@app.route('/file/list') +def file_list(): + username = current_user(app, request.cookies) + if username: + files = list_files(mongo.db, username) + return json_result({'result': 'success', 'files': files}) + + return json_error('not authenticated', 401) diff --git a/wsgi/storage.py b/wsgi/storage.py index af2a930..e7418c0 100644 --- a/wsgi/storage.py +++ b/wsgi/storage.py @@ -35,3 +35,18 @@ def find_file(db, username, filename): return gfs.get(finfo['file_id']), finfo['aes_key'] return None + +def list_files(db, username): + files = db.fileinfo.group(['filename'], {'username': username}, + {'date': datetime(1970, 1, 1)}, + ''' + function(obj, prev){ + if(obj.date > prev){ + prev.datae = obj.date; + prev.filename = obj.filename; + prev.aes_key = obj.aes_key; + } + } + ''') + + return [f for f in files]