From 2bf3e7b988925f240eb1af96d1d3164e16f334eb Mon Sep 17 00:00:00 2001 From: Yazan Armoush Date: Wed, 29 Nov 2023 19:00:44 -0500 Subject: [PATCH] Added Improvements to Backend --- backend/app.py | 2 +- backend/routes/users.py | 5 +++-- backend/utils/customJSONEncoder.py | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/backend/app.py b/backend/app.py index 1de4a0d..43993cd 100644 --- a/backend/app.py +++ b/backend/app.py @@ -26,7 +26,7 @@ @app.route("/") def home() -> Response: - return jsonify('Carbon Track APP BACKEND API :: UNAUTHORIZED ACCESS') + return jsonify('Carbon Track APP BACKEND API :: If You Can See This Message You Can Reach This API') # Error handler for 400 Bad Request errors diff --git a/backend/routes/users.py b/backend/routes/users.py index 3b2e737..98635df 100644 --- a/backend/routes/users.py +++ b/backend/routes/users.py @@ -39,8 +39,9 @@ def create_user() -> Response: try: res: dict = request.get_json()['user'] user = User.from_json(res) + user.email = user.email.lower() - query = {"email": user.email.lower()} + query = {"email": user.email} item = CarbonTrackDB.users_coll.find_one(query) if item is None: user = user.to_json() @@ -48,7 +49,7 @@ def create_user() -> Response: user = User.from_json(CarbonTrackDB.users_coll.find_one({"_id": inserted_id})).to_json() return jsonify({'user': user}) else: - abort(code=400, description="User Already Exits With Same Email, Please Log In") + return jsonify({'error': "User Already Exits With Same Email, Please Log In"}) except CarbonTrackError as e: abort(code=400, description=f"{e}") diff --git a/backend/utils/customJSONEncoder.py b/backend/utils/customJSONEncoder.py index b2f1711..ddd150e 100644 --- a/backend/utils/customJSONEncoder.py +++ b/backend/utils/customJSONEncoder.py @@ -3,6 +3,8 @@ import json from flask.json.provider import JSONProvider +from models.abstract_db_model import DB_MODEL + class CustomJSONEncoder(json.JSONEncoder): def default(self, obj): @@ -10,6 +12,8 @@ def default(self, obj): return obj.__str__() if isinstance(obj, datetime): return obj.isoformat() + if isinstance(obj, DB_MODEL): + return obj.to_json() return super().default(obj)