From fbe8e4db66ef4dba36202b21367e8a036e949f6a Mon Sep 17 00:00:00 2001 From: Artem Synytsyn Date: Sat, 2 Dec 2023 14:04:08 +0200 Subject: [PATCH] Create user API fix: return code for existing user --- app/api/web_api.py | 8 +++++--- app/models/user.py | 7 ++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/api/web_api.py b/app/api/web_api.py index 6789978..6deabaa 100644 --- a/app/api/web_api.py +++ b/app/api/web_api.py @@ -82,9 +82,11 @@ def api_add_user(): user = User(user_data["name"], user_data["key"], user_data.get("slack_id")) - user.save() - - return jsonify({"message": "User added successfully"}) + number_of_new_user_added = user.save() + if number_of_new_user_added == 1: + return jsonify({"message": "User added successfully"}), 201 + if number_of_new_user_added == 0: + return jsonify({"message": "User already exists"}), 303 @web_api.route("/api/users/", methods=["DELETE"]) diff --git a/app/models/user.py b/app/models/user.py index 5093f98..cc0c4ac 100644 --- a/app/models/user.py +++ b/app/models/user.py @@ -19,6 +19,9 @@ def get_by_key(cls, key): return None def save(self): + """ + Returns number of new user added + """ # Connect to the database conn = sqlite3.connect(app.config["DATABASE_URI"]) cursor = conn.cursor() @@ -26,7 +29,7 @@ def save(self): # Check if user already exists cursor.execute("SELECT * FROM users WHERE key = ?", (self.key,)) existing_user = cursor.fetchone() - + number_of_new_user = 0 if existing_user: # Update existing user data cursor.execute( @@ -39,10 +42,12 @@ def save(self): "INSERT INTO users (name, key, slack_id) VALUES (?, ?, ?)", (self.name, self.key, self.slack_id), ) + number_of_new_user = 1 conn.commit() # Close the connection conn.close() + return number_of_new_user def delete(self): # Connect to the database