Add POST /recipes/workspace route
Also fix use of workspace in /recipes/info (was using filename instead of recipe name and logic for changed was backwards).
This commit is contained in:
parent
711cdf53b3
commit
72b4c4fe28
@ -79,7 +79,7 @@ def v0_api(api):
|
|||||||
# Get the workspace version (if it exists)
|
# Get the workspace version (if it exists)
|
||||||
try:
|
try:
|
||||||
with api.config["GITLOCK"].lock:
|
with api.config["GITLOCK"].lock:
|
||||||
ws_recipe = workspace_read(api.config["GITLOCK"].repo, "master", filename)
|
ws_recipe = workspace_read(api.config["GITLOCK"].repo, "master", recipe_name)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
ws_recipe = None
|
ws_recipe = None
|
||||||
exceptions.append(str(e))
|
exceptions.append(str(e))
|
||||||
@ -105,7 +105,7 @@ def v0_api(api):
|
|||||||
recipes.append(git_recipe)
|
recipes.append(git_recipe)
|
||||||
else:
|
else:
|
||||||
# Both exist, maybe changed, return the workspace recipe
|
# Both exist, maybe changed, return the workspace recipe
|
||||||
changes.append({"name":recipe_name, "changed":ws_recipe == git_recipe})
|
changes.append({"name":recipe_name, "changed":ws_recipe != git_recipe})
|
||||||
recipes.append(ws_recipe)
|
recipes.append(ws_recipe)
|
||||||
|
|
||||||
# Sort all the results by case-insensitive recipe name
|
# Sort all the results by case-insensitive recipe name
|
||||||
@ -147,7 +147,6 @@ def v0_api(api):
|
|||||||
@crossdomain(origin="*")
|
@crossdomain(origin="*")
|
||||||
def v0_recipes_new():
|
def v0_recipes_new():
|
||||||
"""Commit a new recipe"""
|
"""Commit a new recipe"""
|
||||||
errors = []
|
|
||||||
try:
|
try:
|
||||||
if request.headers['Content-Type'] == "text/x-toml":
|
if request.headers['Content-Type'] == "text/x-toml":
|
||||||
recipe = recipe_from_toml(request.data)
|
recipe = recipe_from_toml(request.data)
|
||||||
@ -164,3 +163,20 @@ def v0_api(api):
|
|||||||
return jsonify(status=False, error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
else:
|
else:
|
||||||
return jsonify(status=True)
|
return jsonify(status=True)
|
||||||
|
|
||||||
|
@api.route("/api/v0/recipes/workspace", methods=["POST"])
|
||||||
|
@crossdomain(origin="*")
|
||||||
|
def v0_recipes_workspace():
|
||||||
|
"""Write a recipe to the workspace"""
|
||||||
|
try:
|
||||||
|
if request.headers['Content-Type'] == "text/x-toml":
|
||||||
|
recipe = recipe_from_toml(request.data)
|
||||||
|
else:
|
||||||
|
recipe = recipe_from_dict(request.get_json(cache=False))
|
||||||
|
|
||||||
|
with api.config["GITLOCK"].lock:
|
||||||
|
workspace_write(api.config["GITLOCK"].repo, "master", recipe)
|
||||||
|
except Exception as e:
|
||||||
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
else:
|
||||||
|
return jsonify(status=True)
|
||||||
|
Loading…
Reference in New Issue
Block a user