diff --git a/ansari_db.py b/ansari_db.py index d8a351e..7ddeae7 100644 --- a/ansari_db.py +++ b/ansari_db.py @@ -155,13 +155,13 @@ def validate_reset_token(self, token: str) -> dict[str, str]: logger.info(f"Payload is {payload}") return payload - def register(self, email, first_name, last_name, password_hash): + def register(self, email, first_name, last_name, password_hash, is_guest: bool): try: with self.get_connection() as conn: with conn.cursor() as cur: - insert_cmd = """INSERT INTO users (email, password_hash, first_name, last_name) values (%s, %s, %s, %s);""" + insert_cmd = """INSERT INTO users (email, password_hash, first_name, last_name, is_guest) values (%s, %s, %s, %s, %s);""" cur.execute( - insert_cmd, (email, password_hash, first_name, last_name) + insert_cmd, (email, password_hash, first_name, last_name, is_guest) ) conn.commit() return {"status": "success"} @@ -169,6 +169,7 @@ def register(self, email, first_name, last_name, password_hash): logger.warning(f"Error is {e}") return {"status": "failure", "error": str(e)} + def account_exists(self, email): try: with self.get_connection() as conn: diff --git a/main_api.py b/main_api.py index 32d2c94..8b5ec50 100644 --- a/main_api.py +++ b/main_api.py @@ -94,12 +94,18 @@ async def register_user(req: RegisterRequest, cors_ok: bool = Depends(validate_c detail="Password is too weak. Suggestions: " + ",".join(passwd_quality["feedback"]["suggestions"]), ) - return db.register(req.email, req.first_name, req.last_name, password_hash) + + is_guest = False + if req.email.startswith('guest_') and req.email.endswith('@endeavorpal.com') and req.first_name == 'Welcome' and req.last_name == 'Guest': + is_guest = True + + return db.register(req.email, req.first_name, req.last_name, password_hash, is_guest) except psycopg2.Error as e: - print(f"Error: {e}") + logger.error(f"Error: {e}") raise HTTPException(status_code=500, detail="Database error") + class LoginRequest(BaseModel): email: str password: str diff --git a/sql/10_update_guest_users.sql b/sql/10_update_guest_users.sql new file mode 100644 index 0000000..0189547 --- /dev/null +++ b/sql/10_update_guest_users.sql @@ -0,0 +1,8 @@ +UPDATE users +SET + is_guest = TRUE, + updated_at = CURRENT_TIMESTAMP +WHERE + email LIKE 'guest_%@endeavorpal.com' + AND first_name = 'Welcome' + AND last_name = 'Guest';