"""Users""" # pylint: disable=too-few-public-methods import typing import strawberry from selfprivacy_api.graphql.common_types.user import User from selfprivacy_api.utils import ReadUserData def get_users() -> typing.List[User]: """Get users""" user_list = [] with ReadUserData() as data: for user in data["users"]: user_list.append(User(**user)) if data["sshKeys"] not in data: data["sshKeys"] = [] user_list.append(User(data["username"], data["sshKeys"])) return user_list @strawberry.type class Users: @strawberry.field def get_user(self, username: str) -> typing.Optional[User]: """Get user""" user = None with ReadUserData() as data: if username == data["username"]: user = User(data["username"], data["sshKeys"]) elif username == "root": user = User("root", data["ssh"]["rootKeys"]) else: for user in data["users"]: if user["username"] == username: user = User(data["username"], data["sshKeys"]) return user all_users: typing.List[User] = strawberry.field(resolver=get_users)