Skip to content

Update is_guest field logic in 01_create_tables.sql #65

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
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';