Python fastapi дает неправильные ответыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python fastapi дает неправильные ответы

Сообщение Anonymous »

У меня есть приложение fastapi, подключенное к моему хранилищу Firebase. Я пишу простую конечную точку, чтобы проверить, имеет ли текущий пользователь роль администратора или нет?
Я написал следующий код для конечной точки

Код: Выделить всё

@router.get("/isAdmin")
def is_admin(userId: str):  # sourcery skip: merge-nested-ifs
"""Enddpoint to check if the current user is an admin or not

Args:
email_id (str): email id of the user to be validated
"""
# Check if the user exists in our firestore database based on the email ID
db = firestore.client()
print(userId)
user_ref = db.collection("users").document(userId).get()
print(user_ref, userId)

# Check if the user exists and if the user has admin role
if user_ref:

# If the user exists, check if the user is an admin and return the roles if the user is an admin
if user_ref.to_dict()["hasAdminRole"]:
user_id = user_ref[0].id
user_roles_ref = (
db.collection("users").document(user_id).collection("roles")
)
user_roles_data = user_roles_ref.stream()

roles = {role.id: role.to_dict() for role in user_roles_data}
return {"hasAdminRole": True, "roles": roles}

# If the user doesn't exist or doesn't have admin role,
# check the tempAdmins collection to see if the user is a temporary admin
temp_admin_ref = db.collection("tempAdmins").document(userId).get()
temp_admin_data = temp_admin_ref.get()
if temp_admin_data:
# Get the documentID from the data
temp_admin_id = temp_admin_data[0].id

# Reference the roles document and get the data
temp_admin_roles_ref = (
db.collection("tempAdmins").document(temp_admin_id).collection("roles")
)
temp_admin_roles_data = temp_admin_roles_ref.stream()

roles = {role.id: role.to_dict() for role in temp_admin_roles_data}
return {"hasAdminRole": True, "roles": roles}

# return no access message if the user is not an admin
return JSONResponse(
status_code=response_status.HTTP_401_UNAUTHORIZED,
content={"message": NO_ADMIN_ACCESS_ERROR, "hasAdminRole": False},
)
Для любого адреса электронной почты, независимо от того, является ли он администратором или нет, я получаю следующий ответ.

Код: Выделить всё

{
"message": "User does not exist"
}
Приведенный выше ответ очень странный, потому что я даже нигде не пишу приведенное выше сообщение в качестве ответа и не знаю, является ли это проблемой развязности fastapi.
Конечная точка, к которой я обращаюсь: http://127.0.0.1:8000/users/isAdmin?ema ... 40test.com

Подробнее здесь: https://stackoverflow.com/questions/760 ... -responses
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»