From ac6fc809331315de88e33248f262b5ddefd43ef5 Mon Sep 17 00:00:00 2001 From: Liam Driscoll <driscolll4@cardiff.ac.uk> Date: Tue, 6 Dec 2022 16:29:24 +0000 Subject: [PATCH 1/2] Updating functions. --- project_server.py | 97 ++++++++++++++++++++++++++++++----------------- 1 file changed, 62 insertions(+), 35 deletions(-) diff --git a/project_server.py b/project_server.py index d709010..a69276e 100644 --- a/project_server.py +++ b/project_server.py @@ -7,73 +7,100 @@ DATABASE = "project_db.db" ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif']) +#Error handling for common database connection. +#Parameter optional. Defaults to DATABASE. +def connect_db(db_file=DATABASE): + conn = None + try: + conn = sqlite3.connect(db_file) + except: + print("Error connecting to database.") + return conn + @app.route("/SearchRecord", methods=['POST']) def searchRecord(): if request.method =='POST': + + recordName = request.form.get('recordName', default="Error") + print(f"Searching for '{recordName}' in database.") + try: - recordName = request.form.get('recordName', default="Error") - conn = sqlite3.connect(DATABASE) + conn = connect_db() cur = conn.cursor() cur.execute("SELECT * FROM coworking_spaces WHERE Name=?;", [recordName]) recordData = cur.fetchall() + except: - print(f"Error: {recordData}") - conn.close() + print(f"Error searching for record.") + finally: conn.close() - print(f"{str(recordData)} Record found.") - return str(recordData) -# Adds a record to the CSV file. + if not recordData: #If recordData is an empty list... + print(f"'{recordName}' not found.") + return (f"'{recordName}' not found.") + + else: + print(f"Found: {recordData}") + return (str(recordData)) + @app.route("/AddRecord", methods=['POST']) def addRecord(): - print('Processing record.') - infoMessage = ('Add record failed.') - if (request.method == 'POST'): - recordName = request.form['recordName'] - recordAddress = request.form['recordAddress'] - recordMainPhotos = request.form['recordMainPhotos'] - recordAdditionalPhotos = request.form['recordAdditionalPhotos'] - recordDescription = request.form['recordDescription'] - recordWebsite = request.form['recordWebsite'] - recordEmail = request.form['recordEmail'] - recordPhoneNumber = request.form['recordPhoneNumber'] - recordOpeningHours = request.form['recordOpeningHours'] - recordCheckinInstructions = request.form['recordCheckinInstructions'] + recordName = request.form.get('recordName', default="Error") + recordAddress = request.form.get('recordAddress', default="Error") + recordMainPhotos = request.form.get('recordMainPhotos', default="Error") + recordAdditionalPhotos = request.form.get('recordAdditionalPhotos', default="Error") + recordDescription = request.form.get('recordDescription', default="Error") + recordWebsite = request.form.get('recordWebsite', default="Error") + recordEmail = request.form.get('recordEmail', default="Error") + recordPhoneNumber = request.form.get('recordPhoneNumber', default="Error") + recordOpeningHours = request.form.get('recordOpeningHours', default="Error") + recordCheckinInstructions = request.form.get('recordCheckinInstructions', default="Error") recordData = [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions] + print(f"Adding '{recordName}' to database.") - conn = sqlite3.connect(DATABASE) - cur = conn.cursor() - cur.execute("INSERT INTO coworking_spaces ('Name', 'Address', 'Main_Photo', 'Additional_Photos', 'Description', 'Website', 'Email', 'Phone_Number', 'Opening_Hours', 'Checkin_Instructions')\ - VALUES (?,?,?,?,?,?,?,?,?,?)", (recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions)) - conn.commit() - conn.close() + try: + conn = connect_db() + cur = conn.cursor() + cur.execute("INSERT INTO coworking_spaces ('Name', 'Address', 'Main_Photo', 'Additional_Photos', 'Description', 'Website', 'Email', 'Phone_Number', 'Opening_Hours', 'Checkin_Instructions')\ + VALUES (?,?,?,?,?,?,?,?,?,?)", (recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions)) + conn.commit() + infoMessage = (f"Added: {recordData}") - infoMessage = (f'{recordData} Record added.') + except: + conn.rollback() + infoMessage = (f"Error adding record.") - print(infoMessage) - return (infoMessage) + finally: + conn.close() + print(infoMessage) + return (infoMessage) @app.route("/DeleteRecord", methods=['POST']) def deleteRecord(): if request.method =='POST': + recordName = request.form.get('recordName', default="Error") + print(f"Deleting '{recordName}' from database.") + try: - recordName = request.form.get('recordName', default="Error") conn = sqlite3.connect(DATABASE) cur = conn.cursor() cur.execute("DELETE FROM coworking_spaces WHERE Name=?;", [recordName]) conn.commit() + infoMessage = (f"Deleted: '{recordName}'.") + except: - print(f"Error: {recordData}") - conn.close() + conn.rollback() + infoMessage = (f"Error deleting record.") + finally: conn.close() - print("Record deleted.") - return ("Record deleted.") + print(infoMessage) + return (infoMessage) @app.route("/EditRecord", methods=['POST']) def editRecord(): @@ -100,7 +127,7 @@ def editRecord(): conn.commit() conn.close() - infoMessage = (f'{recordData} Record amended.') + infoMessage = (f'Updated: {recordData}') print(infoMessage) return (infoMessage) -- GitLab From 10b883cd7b79f9536bf3a90784068a52f012b87f Mon Sep 17 00:00:00 2001 From: Liam Driscoll <driscolll4@cardiff.ac.uk> Date: Tue, 6 Dec 2022 17:57:22 +0000 Subject: [PATCH 2/2] Updates. --- project_server.py | 70 ++++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/project_server.py b/project_server.py index a69276e..5e98f5d 100644 --- a/project_server.py +++ b/project_server.py @@ -17,13 +17,12 @@ def connect_db(db_file=DATABASE): print("Error connecting to database.") return conn -@app.route("/SearchRecord", methods=['POST']) +@app.route('/SearchRecord', methods=['POST']) def searchRecord(): - if request.method =='POST': - + if (request.method =='POST'): recordName = request.form.get('recordName', default="Error") - print(f"Searching for '{recordName}' in database.") + print(f"Searching for '{recordName}' in the database.") try: conn = connect_db() @@ -32,7 +31,7 @@ def searchRecord(): recordData = cur.fetchall() except: - print(f"Error searching for record.") + print(f"Encountered an error whilst searching for record.") finally: conn.close() @@ -43,9 +42,9 @@ def searchRecord(): else: print(f"Found: {recordData}") - return (str(recordData)) + return (recordData) -@app.route("/AddRecord", methods=['POST']) +@app.route('/AddRecord', methods=['POST']) def addRecord(): if (request.method == 'POST'): @@ -60,7 +59,7 @@ def addRecord(): recordOpeningHours = request.form.get('recordOpeningHours', default="Error") recordCheckinInstructions = request.form.get('recordCheckinInstructions', default="Error") recordData = [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions] - print(f"Adding '{recordName}' to database.") + print(f"Adding '{recordName}' to the database.") try: conn = connect_db() @@ -79,12 +78,12 @@ def addRecord(): print(infoMessage) return (infoMessage) -@app.route("/DeleteRecord", methods=['POST']) +@app.route('/DeleteRecord', methods=['POST']) def deleteRecord(): - if request.method =='POST': + if (request.method =='POST'): recordName = request.form.get('recordName', default="Error") - print(f"Deleting '{recordName}' from database.") + print(f"Deleting '{recordName}' from the database.") try: conn = sqlite3.connect(DATABASE) @@ -102,35 +101,38 @@ def deleteRecord(): print(infoMessage) return (infoMessage) -@app.route("/EditRecord", methods=['POST']) -def editRecord(): - - print('Processing record.') - infoMessage = ('Add record failed.') +@app.route('/UpdateRecord', methods=['POST']) +def updateRecord(): if (request.method == 'POST'): - recordName = request.form['recordName'] - recordAddress = request.form['recordAddress'] - recordMainPhotos = request.form['recordMainPhotos'] - recordAdditionalPhotos = request.form['recordAdditionalPhotos'] - recordDescription = request.form['recordDescription'] - recordWebsite = request.form['recordWebsite'] - recordEmail = request.form['recordEmail'] - recordPhoneNumber = request.form['recordPhoneNumber'] - recordOpeningHours = request.form['recordOpeningHours'] - recordCheckinInstructions = request.form['recordCheckinInstructions'] + recordName = request.form.get('recordName', default="Error") + recordAddress = request.form.get('recordAddress', default="Error") + recordMainPhotos = request.form.get('recordMainPhotos', default="Error") + recordAdditionalPhotos = request.form.get('recordAdditionalPhotos', default="Error") + recordDescription = request.form.get('recordDescription', default="Error") + recordWebsite = request.form.get('recordWebsite', default="Error") + recordEmail = request.form.get('recordEmail', default="Error") + recordPhoneNumber = request.form.get('recordPhoneNumber', default="Error") + recordOpeningHours = request.form.get('recordOpeningHours', default="Error") + recordCheckinInstructions = request.form.get('recordCheckinInstructions', default="Error") recordData = [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions] + print(f"Updating '{recordName}' in the database.") - conn = sqlite3.connect(DATABASE) - cur = conn.cursor() - cur.execute("UPDATE coworking_spaces SET 'Name' = ?, 'Address' = ?, 'Main_Photo' = ?, 'Additional_Photos' = ?, 'Description' = ?, 'Website' = ?, 'Email' = ?, 'Phone_Number' = ?, 'Opening_Hours' = ?, 'Checkin_Instructions' = ? WHERE Name=?;", [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions, recordName]) - conn.commit() - conn.close() + try: + conn = sqlite3.connect(DATABASE) + cur = conn.cursor() + cur.execute("UPDATE coworking_spaces SET 'Name' = ?, 'Address' = ?, 'Main_Photo' = ?, 'Additional_Photos' = ?, 'Description' = ?, 'Website' = ?, 'Email' = ?, 'Phone_Number' = ?, 'Opening_Hours' = ?, 'Checkin_Instructions' = ? WHERE Name=?;", [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions, recordName]) + conn.commit() + infoMessage = (f"Updated: '{recordName}'.") - infoMessage = (f'Updated: {recordData}') + except: + conn.rollback() + infoMessage = (f"Error updating record.") - print(infoMessage) - return (infoMessage) + finally: + conn.close() + print(infoMessage) + return (infoMessage) if __name__ == "__main__": app.run(debug=True) -- GitLab