Ali2206 commited on
Commit
b7c0a0c
·
verified ·
1 Parent(s): 5d3d062

Update api/routes/auth.py

Browse files
Files changed (1) hide show
  1. api/routes/auth.py +17 -6
api/routes/auth.py CHANGED
@@ -34,7 +34,8 @@ async def signup(data: SignupForm):
34
  "password": hashed_pw,
35
  "role": "patient",
36
  "created_at": datetime.utcnow().isoformat(),
37
- "updated_at": datetime.utcnow().isoformat()
 
38
  }
39
 
40
  try:
@@ -83,7 +84,8 @@ async def create_doctor(
83
  "specialty": data.specialty,
84
  "license_number": data.license_number,
85
  "created_at": datetime.utcnow().isoformat(),
86
- "updated_at": datetime.utcnow().isoformat()
 
87
  }
88
 
89
  try:
@@ -113,6 +115,14 @@ async def login(form_data: OAuth2PasswordRequestForm = Depends()):
113
  headers={"WWW-Authenticate": "Bearer"},
114
  )
115
 
 
 
 
 
 
 
 
 
116
  access_token = create_access_token(data={"sub": user["email"]})
117
  logger.info(f"Successful login for {form_data.username}")
118
  return {
@@ -123,7 +133,7 @@ async def login(form_data: OAuth2PasswordRequestForm = Depends()):
123
 
124
  @router.get("/me")
125
  async def get_me(request: Request, current_user: dict = Depends(get_current_user)):
126
- logger.info(f"Fetching user profile for {current_user['email']}")
127
  print(f"Headers: {request.headers}")
128
  try:
129
  user = await users_collection.find_one({"email": current_user["email"]})
@@ -141,12 +151,13 @@ async def get_me(request: Request, current_user: dict = Depends(get_current_user
141
  "role": user.get("role", "patient"),
142
  "specialty": user.get("specialty"),
143
  "created_at": user.get("created_at"),
144
- "updated_at": user.get("updated_at")
 
145
  }
146
- logger.info(f"User profile retrieved for {current_user['email']}")
147
  return response
148
  except Exception as e:
149
- logger.error(f"Database error for user {current_user['email']}: {str(e)}")
150
  raise HTTPException(
151
  status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
152
  detail=f"Database error: {str(e)}"
 
34
  "password": hashed_pw,
35
  "role": "patient",
36
  "created_at": datetime.utcnow().isoformat(),
37
+ "updated_at": datetime.utcnow().isoformat(),
38
+ "device_token": data.device_token or "" # Store device token if provided
39
  }
40
 
41
  try:
 
84
  "specialty": data.specialty,
85
  "license_number": data.license_number,
86
  "created_at": datetime.utcnow().isoformat(),
87
+ "updated_at": datetime.utcnow().isoformat(),
88
+ "device_token": data.device_token or "" # Store device token if provided
89
  }
90
 
91
  try:
 
115
  headers={"WWW-Authenticate": "Bearer"},
116
  )
117
 
118
+ # Update device token if provided in form_data (e.g., from frontend)
119
+ if hasattr(form_data, 'device_token') and form_data.device_token:
120
+ await users_collection.update_one(
121
+ {"email": user["email"]},
122
+ {"$set": {"device_token": form_data.device_token}}
123
+ )
124
+ logger.info(f"Device token updated for {form_data.username}")
125
+
126
  access_token = create_access_token(data={"sub": user["email"]})
127
  logger.info(f"Successful login for {form_data.username}")
128
  return {
 
133
 
134
  @router.get("/me")
135
  async def get_me(request: Request, current_user: dict = Depends(get_current_user)):
136
+ logger.info(f"Fetching user profile for {current_user['email']} at {datetime.utcnow().isoformat()}")
137
  print(f"Headers: {request.headers}")
138
  try:
139
  user = await users_collection.find_one({"email": current_user["email"]})
 
151
  "role": user.get("role", "patient"),
152
  "specialty": user.get("specialty"),
153
  "created_at": user.get("created_at"),
154
+ "updated_at": user.get("updated_at"),
155
+ "device_token": user.get("device_token", "") # Include device token in response
156
  }
157
+ logger.info(f"User profile retrieved for {current_user['email']} at {datetime.utcnow().isoformat()}")
158
  return response
159
  except Exception as e:
160
+ logger.error(f"Database error for user {current_user['email']}: {str(e)} at {datetime.utcnow().isoformat()}")
161
  raise HTTPException(
162
  status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
163
  detail=f"Database error: {str(e)}"