aboutsummaryrefslogtreecommitdiffstats
path: root/routes/uploads.py
diff options
context:
space:
mode:
Diffstat (limited to 'routes/uploads.py')
-rw-r--r--routes/uploads.py21
1 files changed, 7 insertions, 14 deletions
diff --git a/routes/uploads.py b/routes/uploads.py
index 40d9426..06fb532 100644
--- a/routes/uploads.py
+++ b/routes/uploads.py
@@ -14,6 +14,7 @@
from ..helpers import *
from .media import *
+from .media import _upload_file, _delete_file
from bottle import delete, put
from itertools import chain
import string
@@ -32,16 +33,7 @@ def _add_upload(entry : Upload, session : DBSession):
#e.update(_vote_dummy)
e["comments"] = [{**(comment.json()), **_vote_dummy} for comment in session.query(Comment).filter_by(upload=entry)]
- e["files"] = []
- e["pictures"] = []
-
- for file in session.query(File).filter_by(upload=entry):
- if not file.content_type.startswith("image"):
- e["files"].append(file.json())
-
- else:
- e["pictures"].append(file.json())
-
+ e["files"] = [file.json() for file in session.query(File).filter_by(upload=entry)]
e["dependencies"] = [] #TODO
votes = session.query(Vote).filter_by(upload=entry)
@@ -110,7 +102,7 @@ def post_upload(id=None):
pass
if ObjectId.is_valid(f):
file_ids.append(ObjectId(f))
- file = session.query(File).get(id)
+ file = session.query(File).get(ObjectId(f))
file.upload = entry
session.add(file)
@@ -128,7 +120,7 @@ def post_upload(id=None):
raise HTTPResponse(f"Missing form value: {e.args[0]}", 400)
session.commit()
- return HTTPResponse(status=(201 if id is not None else 204))
+ return _add_upload(entry, session)
@get("/api/uploads/<id>")
@@ -154,16 +146,17 @@ def delete_upload(id):
raise HTTPResponse("Resource is read-only", 403)
session.delete(entry)
- for i in [Comment, Voting]:
+ for i in [Comment, Vote]:
for e in session.query(i).filter_by(upload=entry):
session.delete(e)
for f in session.query(File).filter_by(upload=entry):
- session.delete(e)
+ session.delete(f)
_delete_file(f)
#TODO: Dependencies
session.commit()
+ session.flush()
return HTTPResponse(status=204)