selfprivacy-rest-api/selfprivacy_api/graphql/__init__.py

28 lines
858 B
Python
Raw Normal View History

2022-06-24 16:05:18 +03:00
"""GraphQL API for SelfPrivacy."""
# pylint: disable=too-few-public-methods
import typing
import strawberry
2022-06-24 19:24:10 +03:00
from selfprivacy_api.graphql.queries.api import ApiDevice, ApiRecoveryKeyStatus
2022-06-24 16:05:18 +03:00
from selfprivacy_api.graphql.queries.system import System
2022-06-24 19:24:10 +03:00
from selfprivacy_api.resolvers.api import get_api_version, get_devices, get_recovery_key_status
@strawberry.type
class Api:
"""API access status"""
version: str = strawberry.field(resolver=get_api_version)
devices: typing.List[ApiDevice] = strawberry.field(resolver=get_devices)
recovery_key: ApiRecoveryKeyStatus = strawberry.field(resolver=get_recovery_key_status)
2022-06-24 16:05:18 +03:00
@strawberry.type
class Query:
"""Root schema for queries"""
system: System
2022-06-24 19:17:03 +03:00
@strawberry.field
def api(self) -> Api:
"""API access status"""
return Api()
2022-06-24 16:05:18 +03:00
schema = strawberry.Schema(query=Query)