Add API to create screenshots

This commit is contained in:
rubenwardy
2021-02-02 17:09:23 +00:00
parent 64a897b52f
commit 509f03ce65
3 changed files with 62 additions and 10 deletions

View File

@@ -17,7 +17,8 @@
from flask import jsonify, abort, make_response, url_for
from app.logic.releases import LogicError, do_create_vcs_release, do_create_zip_release
from app.models import APIToken, Package, MinetestRelease
from app.logic.screenshots import do_create_screenshot
from app.models import APIToken, Package, MinetestRelease, PackageScreenshot
def error(code: int, msg: str):
@@ -56,3 +57,15 @@ def api_create_zip_release(token: APIToken, package: Package, title: str, file,
"task": url_for("tasks.check", id=rel.task_id),
"release": rel.getAsDictionary()
})
def api_create_screenshot(token: APIToken, package: Package, title: str, file):
if not token.canOperateOnPackage(package):
error(403, "API token does not have access to the package")
ss : PackageScreenshot = run_safe(do_create_screenshot, token.owner, package, title, file)
return jsonify({
"success": True,
"screenshot": ss.getAsDictionary()
})