diff --git a/project_server.py b/project_server.py index d709010e14e748dbf47d179730473d5c3b694ef5..a69276e9dce8ae7946f9aa9ad4e9801c839202d9 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)