track new item

This commit is contained in:
2024-01-31 01:06:26 +01:00
parent 4894eae14f
commit 7b1bef3695
5 changed files with 119 additions and 26 deletions

View File

@ -36,17 +36,31 @@ def update_hist():
fill_db(settings["db"], check_items(settings["item"]))
return 'Hello, World!'
@app.route('/add',methods = ['POST'])
@app.route('/add', methods=['POST'])
def add_item():
print("adding item")
itemid = request.form['itemid']
if len(request.form['attributes'])>0:
attributes = request.form['attributes'].split(',')
else:
attributes = []
data = request.get_json()
itemid = data.get('itemid')
attributes = data.get('attributes', '').split(',') if data.get('attributes') else []
new_item = [(itemid, attributes)]
extr = check_items(new_item)
return str(extr)
if len(extr) > 0:
settings = get_conf()
skuid = list(extr.values())[0]["skuid"]
if check_exist(settings["db"], itemid, skuid):
# item already exists
return jsonify({'status': 3}), 400
else:
# item is valid
fill_db(settings["db"], extr)
return jsonify({'status': 0}), 200
else:
# item not valid or can't be parsed
return jsonify({'status': 1}), 400
@app.route('/datahistory',methods = ['POST', 'GET'])
def data_history_request():

View File

@ -31,14 +31,7 @@ def add_history_entry(db_settings, itemid, skuid, choice, attributes, image, pri
connection = connect_db(db_settings)
cursor = connection.cursor()
cursor.execute("""
SELECT uuid
FROM item
WHERE itemid = %s
AND skuid = %s
""", (itemid, skuid))
if cursor.rowcount == 0:
if not check_exist(db_settings, itemid, skuid):
add_item(db_settings, itemid, skuid, choice, attributes, image)
cursor.execute("""
SELECT uuid
@ -82,6 +75,27 @@ def get_item(db_settings):
connection.close()
return results
def check_exist(db_settings, itemid, skuid):
'''check if an item is already in the database'''
connection = connect_db(db_settings)
cursor = connection.cursor()
cursor.execute("""
SELECT uuid
FROM item
WHERE itemid = %s
AND skuid = %s
""", (itemid, skuid))
result = cursor.rowcount
cursor.close()
connection.close()
if result == 0:
return False
else:
return True
def export_csv(db_settings):
'''join item and history data from database and export it in ./output.csv'''
connection = connect_db(db_settings)