recipes_api.saveRecipeItem was updated to new...

This commit is contained in:
Jadowyne Ulve 2025-04-26 21:04:28 -05:00
parent 4aea8c68ff
commit 8bf3b0a290
6 changed files with 29 additions and 6 deletions

View File

@ -132,11 +132,27 @@ def postUpdateRecipe(site:str, payload:tuple, convert:bool=True):
with psycopg2.connect(**database_config) as conn:
with conn.cursor() as cur:
set_clause, values = postsqldb.updateStringFactory(payload['update'])
with open("scripts/recipes/sql/postRecipeUpdate.sql") as file:
with open("scripts/recipes/sql/postUpdateRecipe.sql") as file:
sql = file.read().replace("%%site_name%%", site).replace("%%set_clause%%", set_clause)
values.append(payload['id'])
cur.execute(sql, values)
rows = cur.fetchone()
if rows and convert:
updated = postsqldb.tupleDictionaryFactory(cur.description, rows)
elif rows and not convert:
updated = rows
return updated
def postUpdateRecipeItem(site:str, payload:tuple, convert:bool=True):
database_config = config.config()
updated = ()
with psycopg2.connect(**database_config) as conn:
with conn.cursor() as cur:
set_clause, values = postsqldb.updateStringFactory(payload['update'])
with open("scripts/recipes/sql/postUpdateRecipeItem.sql") as file:
sql = file.read().replace("%%site_name%%", site).replace("%%set_clause%%", set_clause)
values.append(payload['id'])
cur.execute(sql, values)
rows = cur.fetchone()
if rows and convert:
updated = postsqldb.tupleDictionaryFactory(cur.description, rows)

View File

@ -285,15 +285,21 @@ def deleteRecipeItem():
return jsonify({'recipe': recipe, 'error': True, 'message': f'method {request.method} is not allowed!'})
@recipes_api.route('/recipe/saveRecipeItem', methods=["POST"])
@login_required
def saveRecipeItem():
""" post an update to a recipe item in the database by passing the recipe item ID and an update
payload.
---
responses:
200:
description: recipe item updated successfully.
"""
recipe = {}
if request.method == "POST":
id = int(request.get_json()['id'])
update = request.get_json()['update']
database_config = config()
site_name = session['selected_site']
with psycopg2.connect(**database_config) as conn:
updated_line = postsqldb.RecipesTable.update_item_tuple(conn, site_name, {'id': id, 'update': update}, convert=True)
recipe = postsqldb.RecipesTable.getRecipe(conn, site_name, (int(updated_line['rp_id']), ), convert=True)
updated_line = database_recipes.postUpdateRecipeItem(site_name, {'id': id, 'update': update})
recipe = database_recipes.getRecipe(site_name, (int(updated_line['rp_id']), ))
return jsonify({'recipe': recipe, 'error': False, 'message': f'Recipe Item {updated_line['item_name']} was updated successful!'})
return jsonify({'recipe': recipe, 'error': True, 'message': 'Recipe Item was not updated unsuccessful!'})
return jsonify({'recipe': recipe, 'error': True, 'message': f'method {request.method} not allowed!'})

View File

@ -0,0 +1 @@
UPDATE %%site_name%%_recipe_items SET %%set_clause%% WHERE id=%s RETURNING *;