Skip to content
Open
7 changes: 4 additions & 3 deletions ansari_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,20 +155,21 @@ 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"}
except Exception as e:
logger.warning(f"Error is {e}")
return {"status": "failure", "error": str(e)}


def account_exists(self, email):
try:
with self.get_connection() as conn:
Expand Down
10 changes: 8 additions & 2 deletions main_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 8 additions & 0 deletions sql/10_update_guest_users.sql
Original file line number Diff line number Diff line change
@@ -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';