new api error handling

This commit is contained in:
knst-kotov
2021-08-01 11:40:24 +00:00
parent 23aebda1ab
commit 9467810632
3 changed files with 69 additions and 12 deletions

View File

@@ -1,4 +1,5 @@
from ariadne import MutationType, QueryType, SubscriptionType, ScalarType
from ariadne import MutationType, QueryType, SubscriptionType, ScalarType, InterfaceType, UnionType
query = QueryType()
mutation = MutationType()
@@ -12,4 +13,22 @@ def serialize_datetime(value):
return value.isoformat()
resolvers = [query, mutation, subscription, datetime_scalar]
class ApiError:
def __init__(self, message):
self.message = message
error_interface = InterfaceType("ErrorInterface")
@error_interface.type_resolver
def resolve_search_result_type(obj, *_):
if isinstance(obj, ApiError):
return "ApiError"
sign_in_result = UnionType("SignInResult")
register_user_result = UnionType("RegisterUserResult")
results = [sign_in_result, register_user_result]
resolvers = [query, mutation, subscription, datetime_scalar, error_interface]
resolvers.extend(results)