resolvers-import-fix

This commit is contained in:
Tony Rewin 2023-10-05 00:43:07 +03:00
parent 0f6b3613e3
commit 044c21f956
7 changed files with 42 additions and 53 deletions

View File

@ -1,12 +1,13 @@
import os import os
from importlib import import_module
from os.path import exists from os.path import exists
from ariadne import load_schema_from_path, make_executable_schema from ariadne import load_schema_from_path, make_executable_schema
from ariadne.asgi import GraphQL from ariadne.asgi import GraphQL
from starlette.applications import Starlette from starlette.applications import Starlette
from services.redis import redis from services.redis import redis
from resolvers import resolvers
from settings import DEV_SERVER_PID_FILE_NAME, SENTRY_DSN, MODE from settings import DEV_SERVER_PID_FILE_NAME, SENTRY_DSN, MODE
import_module("resolvers")
schema = make_executable_schema(load_schema_from_path("inbox.graphql"), resolvers) # type: ignore schema = make_executable_schema(load_schema_from_path("inbox.graphql"), resolvers) # type: ignore

View File

@ -1,39 +1,25 @@
from .chats import chats_resolvers from resolvers.chats import create_chat, delete_chat, update_chat
from .load import load_resolvers from resolvers.messages import (
from .messages import messages_resolvers create_message,
from .search import search_resolvers delete_message,
from .unread import unread_resolvers update_message,
import json mark_as_read,
from ariadne import ScalarType )
from resolvers.load import load_chats, load_messages_by, load_recipients
from resolvers.search import search_recipients
datetime_scalar = ScalarType("DateTime") __all__ = [
# inbox
"load_chats",
@datetime_scalar.serializer "load_messages_by",
def serialize_datetime(value): "create_chat",
return value.isoformat() "delete_chat",
"update_chat",
"create_message",
dict_scalar = ScalarType("Dict") "delete_message",
"update_message",
"mark_as_read",
@dict_scalar.serializer "load_recipients",
def serialize_dict(value): "search_recipients",
return json.dumps(value) ]
@dict_scalar.value_parser
def parse_dict_value(value):
return json.loads(value)
resolvers = {
**chats_resolvers,
**load_resolvers,
**messages_resolvers,
**search_resolvers,
**unread_resolvers,
"DateTime": datetime_scalar,
"Dict": dict_scalar,
}

View File

@ -4,10 +4,7 @@ from datetime import datetime, timezone
from services.auth import login_required from services.auth import login_required
from services.redis import redis from services.redis import redis
from services.schema import mutation
from ariadne import MutationType
mutation = MutationType()
@mutation.field("updateChat") @mutation.field("updateChat")

View File

@ -3,13 +3,10 @@ import json
from services.core import get_author from services.core import get_author
from services.redis import redis from services.redis import redis
from services.auth import login_required from services.auth import login_required
from services.schema import query
from .chats import create_chat from .chats import create_chat
from .unread import get_unread_counter from .unread import get_unread_counter
from ariadne import QueryType
query = QueryType()
# NOTE: not an API handler # NOTE: not an API handler
async def load_messages(chat_id: str, limit: int = 5, offset: int = 0, ids=[]): async def load_messages(chat_id: str, limit: int = 5, offset: int = 0, ids=[]):

View File

@ -3,10 +3,7 @@ from datetime import datetime, timezone
from services.auth import login_required from services.auth import login_required
from services.presence import notify_message from services.presence import notify_message
from services.redis import redis from services.redis import redis
from services.schema import mutation
from ariadne import MutationType
mutation = MutationType()
@mutation.field("createMessage") @mutation.field("createMessage")

View File

@ -4,9 +4,7 @@ from services.auth import login_required
from services.core import get_network from services.core import get_network
from services.redis import redis from services.redis import redis
from resolvers.load import load_messages from resolvers.load import load_messages
from ariadne import QueryType from services.schema import query
query = QueryType()
@query.field("searchRecipients") @query.field("searchRecipients")

13
services/schema.py Normal file
View File

@ -0,0 +1,13 @@
from ariadne import ScalarType, QueryType, MutationType
query = QueryType()
mutation = MutationType()
datetime_scalar = ScalarType("DateTime")
@datetime_scalar.serializer
def serialize_datetime(value):
return value.isoformat()
scalars = {"DateTime": datetime_scalar}