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

31 lines
916 B
Python
Raw Normal View History

2022-06-24 15:26:51 +03:00
"""API access status"""
2022-06-24 16:05:18 +03:00
# pylint: disable=too-few-public-methods
2022-06-24 15:26:51 +03:00
import datetime
import typing
import strawberry
2022-06-24 19:17:03 +03:00
from selfprivacy_api.resolvers.api import get_api_version, get_devices, get_recovery_key_status
2022-06-24 16:05:18 +03:00
2022-06-24 15:26:51 +03:00
@strawberry.type
class ApiDevice:
2022-06-24 19:17:03 +03:00
"""A single device with SelfPrivacy app installed"""
2022-06-24 15:26:51 +03:00
name: str
creation_date: datetime.datetime
is_caller: bool
@strawberry.type
class ApiRecoveryKeyStatus:
2022-06-24 19:17:03 +03:00
"""Recovery key status"""
2022-06-24 15:26:51 +03:00
exists: bool
valid: bool
2022-06-24 19:17:03 +03:00
creation_date: typing.Optional[datetime.datetime]
2022-06-24 15:26:51 +03:00
expiration_date: typing.Optional[datetime.datetime]
uses_left: typing.Optional[int]
@strawberry.type
class Api:
2022-06-24 19:17:03 +03:00
"""API access status"""
2022-06-24 16:05:18 +03:00
version: str = strawberry.field(resolver=get_api_version)
2022-06-24 19:17:03 +03:00
devices: typing.List[ApiDevice] = strawberry.field(resolver=get_devices)
recovery_key: ApiRecoveryKeyStatus = strawberry.field(resolver=get_recovery_key_status)