Moved graphql stuff to own lib
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
from ariadne import ObjectType
|
||||
|
||||
|
||||
class QueryABC(ObjectType):
|
||||
__abstract__ = True
|
@@ -10,17 +10,11 @@ from bot_data.abc.auto_role_repository_abc import AutoRoleRepositoryABC
|
||||
from bot_data.abc.client_repository_abc import ClientRepositoryABC
|
||||
from bot_data.abc.known_user_repository_abc import KnownUserRepositoryABC
|
||||
from bot_data.abc.level_repository_abc import LevelRepositoryABC
|
||||
from bot_data.abc.query_abc import QueryABC
|
||||
from bot_data.abc.server_repository_abc import ServerRepositoryABC
|
||||
from bot_data.abc.statistic_repository_abc import StatisticRepositoryABC
|
||||
from bot_data.abc.user_joined_server_repository_abc import UserJoinedServerRepositoryABC
|
||||
from bot_data.abc.user_joined_voice_channel_abc import UserJoinedVoiceChannelRepositoryABC
|
||||
from bot_data.abc.user_repository_abc import UserRepositoryABC
|
||||
from bot_data.graphql.graphql_service import GraphQLService
|
||||
from bot_data.graphql.query import Query
|
||||
from bot_data.graphql.schema import Schema
|
||||
from bot_data.graphql.server_query import ServerQuery
|
||||
from bot_data.graphql.types.server_query_type import ServerQueryType
|
||||
from bot_data.service.auth_user_repository_service import AuthUserRepositoryService
|
||||
from bot_data.service.auto_role_repository_service import AutoRoleRepositoryService
|
||||
from bot_data.service.client_repository_service import ClientRepositoryService
|
||||
@@ -54,10 +48,4 @@ class DataModule(ModuleABC):
|
||||
services.add_transient(LevelRepositoryABC, LevelRepositoryService)
|
||||
services.add_transient(StatisticRepositoryABC, StatisticRepositoryService)
|
||||
|
||||
services.add_singleton(Schema)
|
||||
services.add_singleton(GraphQLService)
|
||||
services.add_singleton(Query)
|
||||
# services.add_transient(QueryABC, ServerQuery)
|
||||
services.add_transient(QueryABC, ServerQueryType)
|
||||
|
||||
services.add_transient(SeederService)
|
||||
|
@@ -1,7 +0,0 @@
|
||||
from bot_data.abc.query_abc import QueryABC
|
||||
|
||||
|
||||
class GraphQLService:
|
||||
|
||||
def __init__(self, queries: list[QueryABC]):
|
||||
self._queries = queries
|
@@ -1,64 +0,0 @@
|
||||
type Query {
|
||||
servers: [Server]
|
||||
known_users: [User]
|
||||
}
|
||||
|
||||
type Server {
|
||||
id: ID
|
||||
discord_id: String
|
||||
clients: [Client]
|
||||
members: [User]
|
||||
level: [Level]
|
||||
}
|
||||
|
||||
type Client {
|
||||
id: ID
|
||||
discord_id: String
|
||||
sent_message_count: Int
|
||||
received_message_count: Int
|
||||
deleted_message_count: Int
|
||||
received_command_count: Int
|
||||
moved_users_count: Int
|
||||
|
||||
server: Server
|
||||
}
|
||||
|
||||
type User {
|
||||
id: ID
|
||||
discord_id: String
|
||||
name: String
|
||||
xp: Int
|
||||
ontime: Int
|
||||
level: Level
|
||||
|
||||
joined_servers: [UserJoinedServer]
|
||||
joined_voice_channel: [UserJoinedVoiceChannel]
|
||||
|
||||
server: Server
|
||||
}
|
||||
|
||||
type UserJoinedServer {
|
||||
id: ID
|
||||
user: User
|
||||
server: Server
|
||||
joined_on: String
|
||||
leaved_on: String
|
||||
}
|
||||
|
||||
type UserJoinedVoiceChannel {
|
||||
id: ID
|
||||
channel_id: String
|
||||
user: User
|
||||
joined_on: String
|
||||
leaved_on: String
|
||||
}
|
||||
|
||||
type Level {
|
||||
id: ID
|
||||
name: String
|
||||
color: String
|
||||
min_xp: Int
|
||||
permissions: String
|
||||
|
||||
server: Server
|
||||
}
|
@@ -1,18 +0,0 @@
|
||||
from ariadne import QueryType
|
||||
|
||||
from bot_data.service.server_repository_service import ServerRepositoryService
|
||||
|
||||
|
||||
class Query(QueryType):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
servers: ServerRepositoryService
|
||||
):
|
||||
QueryType.__init__(self)
|
||||
self._servers = servers
|
||||
|
||||
self.set_field('servers', self.resolve_servers)
|
||||
|
||||
def resolve_servers(self, *_):
|
||||
return self._servers.get_servers()
|
@@ -1,31 +0,0 @@
|
||||
from ariadne import make_executable_schema, gql
|
||||
from graphql import GraphQLSchema
|
||||
|
||||
from bot_data.graphql.query import Query
|
||||
from bot_data.graphql.server_query import ServerQuery
|
||||
from bot_data.graphql.types.server_query_type import ServerQueryType
|
||||
|
||||
|
||||
class Schema:
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
query: Query,
|
||||
server_query: ServerQuery,
|
||||
server_query_type: ServerQueryType
|
||||
):
|
||||
type_defs = gql("""
|
||||
type Query {
|
||||
servers: [Server]
|
||||
}
|
||||
|
||||
type Server {
|
||||
id: Int
|
||||
discord_id: String
|
||||
}
|
||||
""")
|
||||
self._schema = make_executable_schema(type_defs, query, server_query_type)
|
||||
|
||||
@property
|
||||
def schema(self) -> GraphQLSchema:
|
||||
return self._schema
|
@@ -1,20 +0,0 @@
|
||||
from bot_data.abc.query_abc import QueryABC
|
||||
from bot_data.graphql.query import Query
|
||||
from bot_data.service.server_repository_service import ServerRepositoryService
|
||||
|
||||
|
||||
class ServerQuery(QueryABC):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
query: Query,
|
||||
servers: ServerRepositoryService
|
||||
):
|
||||
QueryABC.__init__(self, 'servers')
|
||||
self._query = query
|
||||
self._servers = servers
|
||||
|
||||
query.set_field('servers', self.resolve_servers)
|
||||
|
||||
async def resolve_servers(self):
|
||||
return self._servers.get_servers()
|
@@ -1,21 +0,0 @@
|
||||
from ariadne import ObjectType
|
||||
|
||||
from bot_data.abc.query_abc import QueryABC
|
||||
from bot_data.model.server import Server
|
||||
|
||||
|
||||
class ServerQueryType(QueryABC):
|
||||
|
||||
def __init__(self):
|
||||
QueryABC.__init__(self, 'Server')
|
||||
|
||||
self.set_field('id', self.resolve_id)
|
||||
self.set_field('discord_id', self.resolve_discord_id)
|
||||
|
||||
@staticmethod
|
||||
def resolve_id(server: Server, *_):
|
||||
return server.server_id
|
||||
|
||||
@staticmethod
|
||||
def resolve_discord_id(server: Server, *_):
|
||||
return server.discord_server_id
|
Reference in New Issue
Block a user