---
Although this is looking fine especially since it is so close from the code in the normal controler, I have not tested it, so I guess it might break, future patch will come if so :)
coprs_frontend/coprs/views/api_ns/api_general.py | 35 ++++++++++++++++++++++++ 1 file changed, 35 insertions(+)
diff --git a/coprs_frontend/coprs/views/api_ns/api_general.py b/coprs_frontend/coprs/views/api_ns/api_general.py index 7c87388..4f9aae5 100644 --- a/coprs_frontend/coprs/views/api_ns/api_general.py +++ b/coprs_frontend/coprs/views/api_ns/api_general.py @@ -126,3 +126,38 @@ def api_coprs_by_owner(username=None): jsonout = flask.jsonify(output) jsonout.status_code = httpcode return jsonout + + +@api_ns.route('/coprs/detail/<username>/<coprname>/new_build/', + methods = ["POST"]) +@login_required +def copr_new_build(username, coprname): + form = forms.BuildForm() + copr = coprs_logic.CoprsLogic.get(flask.g.user, username, coprname).first() + httpcode = 200 + if not copr: + output = {'output': 'notok', 'error': + 'Copr with name {0} does not exist.'.format(coprname)} + httpcode = 500 + + else: + if form.validate_on_submit() and flask.g.user.can_build_in(copr): + # we're checking authorization above for now + build = builds_logic.BuildsLogic.add(user=flask.g.user, + pkgs=form.pkgs.data.replace('\n', ' '), copr=copr) + + if flask.g.user.proven: + build.memory_reqs = form.memory_reqs.data + build.timeout = form.timeout.data + + db.session.commit() + + output = {'output': 'ok', 'message': + 'Build was added to {0}.'.format(coprname)} + else: + output = {'output': 'notok', 'error': 'Invalid request'} + httpcode = 500 + + jsonout = flask.jsonify(output) + jsonout.status_code = httpcode + return jsonout