diff options
Diffstat (limited to 'routes/uploads.py')
| -rw-r--r-- | routes/uploads.py | 21 |
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) |
