ChandimaPrabath commited on
Commit
4b20e92
·
1 Parent(s): d4a51a1

validation return user data

Browse files
Files changed (1) hide show
  1. main.py +24 -7
main.py CHANGED
@@ -326,9 +326,26 @@ async def validate_token(user_id: str, token: str, user_agent: str = Header(...)
326
  # Use the helper function to validate the session
327
  await validate_session(user_id=user_id, token=token, user_agent=user_agent)
328
 
329
- # Return the token if validation succeeds
330
- return TokenResponse(access_token=token)
 
 
 
 
 
 
 
 
331
 
 
 
 
 
 
 
 
 
 
332
 
333
  @auth_router.get("/search-users", response_model=List[str])
334
  async def search_users(query: str):
@@ -364,7 +381,7 @@ async def get_user_id(username: str):
364
  # Admin Routes
365
  @admin_router.get("/users", response_model=List[UserResponse])
366
  async def get_all_users(user_id: str, token: str, user_agent: str = Header(...)):
367
- await validate_token(user_id, token, user_agent)
368
 
369
  admin_query = supabase.table("users").select("access_level").eq("user_id", user_id).execute()
370
  if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
@@ -385,7 +402,7 @@ async def get_all_users(user_id: str, token: str, user_agent: str = Header(...))
385
 
386
  @admin_router.get("/user/{user_id}", response_model=UserResponse)
387
  async def get_user(admin_id: str, token: str, user_id: str, user_agent: str = Header(...)):
388
- await validate_token(admin_id, token, user_agent)
389
 
390
  admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
391
  if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
@@ -409,7 +426,7 @@ async def get_user(admin_id: str, token: str, user_id: str, user_agent: str = He
409
 
410
  @admin_router.put("/user/{user_id}", response_model=UserResponse)
411
  async def update_user(admin_id: str, token: str, user_id: str, request: UpdateUserRequest, user_agent: str = Header(...)):
412
- await validate_token(admin_id, token, user_agent)
413
 
414
  admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
415
  if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
@@ -441,7 +458,7 @@ async def update_user(admin_id: str, token: str, user_id: str, request: UpdateUs
441
 
442
  @admin_router.put("/user/{user_id}/access-level")
443
  async def update_access_level(admin_id: str, token: str, user_id: str, request: UpdateAccessLevelRequest, user_agent: str = Header(...)):
444
- await validate_token(admin_id, token, user_agent)
445
 
446
  admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
447
  if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
@@ -475,7 +492,7 @@ async def update_access_level(admin_id: str, token: str, user_id: str, request:
475
 
476
  @auth_router.put("/user/update", response_model=UserResponse)
477
  async def update_own_data(user_id: str,token: str, request: UpdateUserRequest, user_agent: str = Header(...)):
478
- await validate_token(user_id, token, user_agent)
479
 
480
  update_data = {}
481
  if request.password:
 
326
  # Use the helper function to validate the session
327
  await validate_session(user_id=user_id, token=token, user_agent=user_agent)
328
 
329
+ user_query = supabase.table("users").select("*").eq("user_id", user_id).execute()
330
+
331
+ # If user not found or password verification fails, raise an error
332
+ if not user_query.data:
333
+ raise HTTPException(
334
+ status_code=status.HTTP_404_NOT_FOUND, detail="User not found"
335
+ )
336
+
337
+ # Extract user details
338
+ user = user_query.data[0]
339
 
340
+ # Return the login response with relevant user details
341
+ return LoginResponse(
342
+ user_id=user["user_id"],
343
+ username=user["username"],
344
+ email=user["email"],
345
+ access_level=user["access_level"],
346
+ date_joined=(user["date_joined"]),
347
+ access_token=token
348
+ )
349
 
350
  @auth_router.get("/search-users", response_model=List[str])
351
  async def search_users(query: str):
 
381
  # Admin Routes
382
  @admin_router.get("/users", response_model=List[UserResponse])
383
  async def get_all_users(user_id: str, token: str, user_agent: str = Header(...)):
384
+ await validate_session(user_id, token, user_agent)
385
 
386
  admin_query = supabase.table("users").select("access_level").eq("user_id", user_id).execute()
387
  if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
 
402
 
403
  @admin_router.get("/user/{user_id}", response_model=UserResponse)
404
  async def get_user(admin_id: str, token: str, user_id: str, user_agent: str = Header(...)):
405
+ await validate_session(admin_id, token, user_agent)
406
 
407
  admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
408
  if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
 
426
 
427
  @admin_router.put("/user/{user_id}", response_model=UserResponse)
428
  async def update_user(admin_id: str, token: str, user_id: str, request: UpdateUserRequest, user_agent: str = Header(...)):
429
+ await validate_session(admin_id, token, user_agent)
430
 
431
  admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
432
  if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
 
458
 
459
  @admin_router.put("/user/{user_id}/access-level")
460
  async def update_access_level(admin_id: str, token: str, user_id: str, request: UpdateAccessLevelRequest, user_agent: str = Header(...)):
461
+ await validate_session(admin_id, token, user_agent)
462
 
463
  admin_query = supabase.table("users").select("access_level").eq("user_id", admin_id).execute()
464
  if not admin_query.data or admin_query.data[0]["access_level"] != "hush":
 
492
 
493
  @auth_router.put("/user/update", response_model=UserResponse)
494
  async def update_own_data(user_id: str,token: str, request: UpdateUserRequest, user_agent: str = Header(...)):
495
+ await validate_session(user_id, token, user_agent)
496
 
497
  update_data = {}
498
  if request.password: