selfprivacy-rest-api/selfprivacy_api/graphql/queries/users.py

35 lines
1009 B
Python
Raw Normal View History

2022-07-21 00:23:59 +03:00
"""Users"""
# pylint: disable=too-few-public-methods
import typing
import strawberry
2022-07-24 18:38:39 +03:00
from selfprivacy_api.graphql.common_types.user import User, get_user_by_username
2022-07-31 00:43:40 +03:00
from selfprivacy_api.utils import ReadUserData, ensure_ssh_and_users_fields_exist
2022-07-25 02:59:43 +03:00
from selfprivacy_api.graphql import IsAuthenticated
2022-07-21 00:23:59 +03:00
def get_users() -> typing.List[User]:
"""Get users"""
user_list = []
with ReadUserData() as data:
2022-07-31 00:43:40 +03:00
ensure_ssh_and_users_fields_exist(data)
2022-07-21 00:23:59 +03:00
for user in data["users"]:
2022-07-24 18:38:39 +03:00
user_list.append(get_user_by_username(user["username"]))
2022-07-21 00:23:59 +03:00
2022-07-24 18:38:39 +03:00
user_list.append(get_user_by_username(data["username"]))
return user_list
2022-07-21 00:23:59 +03:00
@strawberry.type
class Users:
2022-07-25 02:59:43 +03:00
@strawberry.field(permission_classes=[IsAuthenticated])
2022-07-21 00:23:59 +03:00
def get_user(self, username: str) -> typing.Optional[User]:
2022-07-24 18:38:39 +03:00
"""Get users"""
return get_user_by_username(username)
2022-07-21 00:23:59 +03:00
2022-07-25 02:59:43 +03:00
all_users: typing.List[User] = strawberry.field(
permission_classes=[IsAuthenticated], resolver=get_users
)