From 7bf2a02d9dcaf1d1a14935bf511d60f0a1bf87c2 Mon Sep 17 00:00:00 2001 From: tylen Date: Thu, 18 Sep 2025 00:22:15 +0300 Subject: [PATCH] backend: add car POST --- backend/src/db_client.py | 5 +++++ backend/src/server.py | 18 +++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/backend/src/db_client.py b/backend/src/db_client.py index 1bfca29..1b9c23c 100644 --- a/backend/src/db_client.py +++ b/backend/src/db_client.py @@ -66,6 +66,7 @@ class DBClient: self.cursor = self.connection.cursor() self.initialize_database() + self.commit() def create_database(self, db_name): query = f"CREATE DATABASE IF NOT EXISTS `{db_name}`;" @@ -89,6 +90,10 @@ class DBClient: return [] return self.cursor.fetchall() + def commit(self): + self.info('Commiting actions to DB') + self.connection.commit() + def close(self): self.cursor.close() self.connection.close() diff --git a/backend/src/server.py b/backend/src/server.py index 22d38c2..ce9051a 100644 --- a/backend/src/server.py +++ b/backend/src/server.py @@ -47,7 +47,23 @@ def get_car(): @app.route('/car', methods=['POST']) def add_car(): - return jsonify({"hello": "user"}), 200 + if not request.is_json: + return jsonify({'error': 'Request must contain JSON data'}), 400 + + data = request.get_json() + if not data['name'] or not data['car']: + return jsonify({'error': 'JSON must contain car and name fields'}), 400 + + query = f'SELECT * from car WHERE name = %s' + output = database.query(query_str=query, params=(data['name'],)) + if output: + return jsonify({'error': 'A car with specified name already exists'}), 409 + + query = f'INSERT into car (Name, Car) VALUES (%s, %s)' + output = database.query(query_str=query, params=(data['name'],data['car'])) + + database.commit() + return jsonify({"message": "car added", "car": {"car": data['car'], "name": data['name']}}), 200 @app.route('/car', methods=['UPDATE']) def update_car():