diff --git a/application/items/database_items.py b/application/items/database_items.py index 4b622eb..afef4eb 100644 --- a/application/items/database_items.py +++ b/application/items/database_items.py @@ -907,7 +907,7 @@ def updateItemInfoTuple(site:str, payload: dict, convert=True, conn=None): except Exception as error: raise postsqldb.DatabaseError(error, payload, sql) -def postUpdateItemLocation(site, payload, conn=None): +def postUpdateItemLocation(site: str, payload: tuple, conn=None): item_location = () self_conn = False @@ -934,6 +934,7 @@ def postUpdateItemLocation(site, payload, conn=None): except Exception as error: return error +# TODO: This should be in the item's process module def postUpdateItem(site:str, payload:dict): """ POST and update to an item diff --git a/application/items/items_API.py b/application/items/items_API.py index 99d0ccc..9e5dd10 100644 --- a/application/items/items_API.py +++ b/application/items/items_API.py @@ -852,23 +852,27 @@ def deletePrefix(): @items_api.route('/refreshSearchString', methods=['POST']) def refreshSearchString(): + """ POST update search_string to the system given a item_id + --- + parameters: + - in: header + name: item_info_id + schema: + type: integer + default: 1 + required: true + description: item_id to be updated + responses: + 200: + description: conversion updated successfully. + """ if request.method == "POST": item_id = request.get_json()['item_id'] - - database_config = config() site_name = session['selected_site'] - with psycopg2.connect(**database_config) as conn: - item = db.ItemTable.getItemAllByID(conn, site_name, (item_id,)) - parameters = [f"id::{item['id']}", f"barcode::{item['barcode']}", f"name::{item['item_name']}", f"brand::{item['brand']['name']}", - f"expires::{item['food_info']['expires']}", f"row_type::{item['row_type']}", f"item_type::{item['item_type']}"] - - for prefix in item['item_info']['prefixes']: - parameters.append(f"prefix::{prefix['name']}") - - search_string = "&&".join(parameters) - db.ItemTable.update_tuple(conn, site_name, {'id': item_id, 'update':{'search_string': search_string}}) - - return jsonify(error=False, message="Search String was updated successfully") + item = database_items.getItemAllByID(site_name, (item_id,)) + search_string = items_processes.createSearchStringFromItem(item) + database_items.postUpdateItemByID(site_name, {'id': item_id, 'update':{'search_string': search_string}}) + return jsonify(error=False, message="Search String was updated successfully") return jsonify(error=True, message="Unable to update this search string, ERROR!") @items_api.route('/postNewItemLocation', methods=['POST']) diff --git a/application/items/items_processes.py b/application/items/items_processes.py index 1d8d28e..17157aa 100644 --- a/application/items/items_processes.py +++ b/application/items/items_processes.py @@ -268,4 +268,14 @@ def postAdjustment(site_name, user_id, data: dict, conn=None): conn.close() return False - return conn \ No newline at end of file + return conn + +def createSearchStringFromItem(item: dict): + parameters = [f"id::{item['id']}", f"barcode::{item['barcode']}", f"name::{item['item_name']}", f"brand::{item['brand']['name']}", + f"expires::{item['food_info']['expires']}", f"row_type::{item['row_type']}", f"item_type::{item['item_type']}"] + + for prefix in item['item_info']['prefixes']: + parameters.append(f"prefix::{prefix['name']}") + + search_string = "&&".join(parameters) + return search_string \ No newline at end of file