Move mutation and query handlers

This commit is contained in:
Hakan Shehu
2024-11-15 14:06:19 +01:00
parent ed32d3ea6e
commit e07ea045fd
59 changed files with 130 additions and 126 deletions

View File

@@ -1,87 +0,0 @@
import { MutationMap } from '@/shared/mutations';
import { MutationHandler } from '@/main/types';
import { EmailLoginMutationHandler } from '@/main/handlers/mutations/email-login';
import { EmailRegisterMutationHandler } from '@/main/handlers/mutations/email-register';
import { ViewCreateMutationHandler } from '@/main/handlers/mutations/view-create';
import { ChannelCreateMutationHandler } from '@/main/handlers/mutations/channel-create';
import { ChatCreateMutationHandler } from '@/main/handlers/mutations/chat-create';
import { DatabaseCreateMutationHandler } from '@/main/handlers/mutations/database-create';
import { FieldCreateMutationHandler } from '@/main/handlers/mutations/field-create';
import { MessageCreateMutationHandler } from '@/main/handlers/mutations/message-create';
import { NodeAttributeDeleteMutationHandler } from '@/main/handlers/mutations/node-attribute-delete';
import { NodeAttributeSetMutationHandler } from '@/main/handlers/mutations/node-attribute-set';
import { NodeCollaboratorCreateMutationHandler } from '@/main/handlers/mutations/node-collaborator-create';
import { NodeCollaboratorDeleteMutationHandler } from '@/main/handlers/mutations/node-collaborator-delete';
import { NodeCollaboratorUpdateMutationHandler } from '@/main/handlers/mutations/node-collaborator-update';
import { NodeDeleteMutationHandler } from '@/main/handlers/mutations/node-delete';
import { PageCreateMutationHandler } from '@/main/handlers/mutations/page-create';
import { NodeReactionCreateMutationHandler } from '@/main/handlers/mutations/node-reaction-create';
import { NodeReactionDeleteMutationHandler } from '@/main/handlers/mutations/node-reaction-delete';
import { RecordCreateMutationHandler } from '@/main/handlers/mutations/record-create';
import { SelectOptionCreateMutationHandler } from '@/main/handlers/mutations/select-option-create';
import { ServerCreateMutationHandler } from '@/main/handlers/mutations/server-create';
import { SpaceCreateMutationHandler } from '@/main/handlers/mutations/space-create';
import { WorkspaceUserRoleUpdateMutationHandler } from '@/main/handlers/mutations/workspace-user-role-update';
import { WorkspaceUsersInviteMutationHandler } from '@/main/handlers/mutations/workspace-users-invite';
import { WorkspaceCreateMutationHandler } from '@/main/handlers/mutations/workspace-create';
import { WorkspaceUpdateMutationHandler } from '@/main/handlers/mutations/workspace-update';
import { DocumentSaveMutationHandler } from '@/main/handlers/mutations/document-save';
import { AvatarUploadMutationHandler } from '@/main/handlers/mutations/avatar-upload';
import { AccountLogoutMutationHandler } from '@/main/handlers/mutations/account-logout';
import { ServerNodeSyncMutationHandler } from '@/main/handlers/mutations/server-node-sync';
import { ServerNodeDeleteMutationHandler } from '@/main/handlers/mutations/server-node-delete';
import { FolderCreateMutationHandler } from '@/main/handlers/mutations/folder-create';
import { FileCreateMutationHandler } from '@/main/handlers/mutations/file-create';
import { FileDownloadMutationHandler } from '@/main/handlers/mutations/file-download';
import { SpaceUpdateMutationHandler } from '@/main/handlers/mutations/space-update';
import { AccountUpdateMutationHandler } from '@/main/handlers/mutations/account-update';
import { ServerUserNodeSyncMutationHandler } from '@/main/handlers/mutations/server-user-node-sync';
import { MarkNodeAsSeenMutationHandler } from '@/main/handlers/mutations/mark-node-as-seen';
import { ViewUpdateMutationHandler } from '@/main/handlers/mutations/view-update';
import { ViewDeleteMutationHandler } from '@/main/handlers/mutations/view-delete';
type MutationHandlerMap = {
[K in keyof MutationMap]: MutationHandler<MutationMap[K]['input']>;
};
export const mutationHandlerMap: MutationHandlerMap = {
email_login: new EmailLoginMutationHandler(),
email_register: new EmailRegisterMutationHandler(),
view_create: new ViewCreateMutationHandler(),
channel_create: new ChannelCreateMutationHandler(),
chat_create: new ChatCreateMutationHandler(),
database_create: new DatabaseCreateMutationHandler(),
field_create: new FieldCreateMutationHandler(),
message_create: new MessageCreateMutationHandler(),
node_attribute_delete: new NodeAttributeDeleteMutationHandler(),
node_attribute_set: new NodeAttributeSetMutationHandler(),
node_collaborator_create: new NodeCollaboratorCreateMutationHandler(),
node_collaborator_delete: new NodeCollaboratorDeleteMutationHandler(),
node_collaborator_update: new NodeCollaboratorUpdateMutationHandler(),
node_delete: new NodeDeleteMutationHandler(),
page_create: new PageCreateMutationHandler(),
node_reaction_create: new NodeReactionCreateMutationHandler(),
node_reaction_delete: new NodeReactionDeleteMutationHandler(),
record_create: new RecordCreateMutationHandler(),
select_option_create: new SelectOptionCreateMutationHandler(),
server_create: new ServerCreateMutationHandler(),
space_create: new SpaceCreateMutationHandler(),
workspace_user_role_update: new WorkspaceUserRoleUpdateMutationHandler(),
workspace_users_invite: new WorkspaceUsersInviteMutationHandler(),
workspace_create: new WorkspaceCreateMutationHandler(),
workspace_update: new WorkspaceUpdateMutationHandler(),
document_save: new DocumentSaveMutationHandler(),
avatar_upload: new AvatarUploadMutationHandler(),
account_logout: new AccountLogoutMutationHandler(),
server_node_sync: new ServerNodeSyncMutationHandler(),
server_node_delete: new ServerNodeDeleteMutationHandler(),
folder_create: new FolderCreateMutationHandler(),
file_create: new FileCreateMutationHandler(),
file_download: new FileDownloadMutationHandler(),
space_update: new SpaceUpdateMutationHandler(),
account_update: new AccountUpdateMutationHandler(),
server_user_node_sync: new ServerUserNodeSyncMutationHandler(),
mark_node_as_seen: new MarkNodeAsSeenMutationHandler(),
view_update: new ViewUpdateMutationHandler(),
view_delete: new ViewDeleteMutationHandler(),
};

View File

@@ -1,37 +0,0 @@
import { QueryMap } from '@/shared/queries';
import { QueryHandler } from '@/main/types';
import { AccountListQueryHandler } from '@/main/handlers/queries/accounts-list';
import { MessageListQueryHandler } from '@/main/handlers/queries/message-list';
import { NodeGetQueryHandler } from '@/main/handlers/queries/node-get';
import { ServerListQueryHandler } from '@/main/handlers/queries/server-list';
import { UserSearchQueryHandler } from '@/main/handlers/queries/user-search';
import { WorkspaceListQueryHandler } from '@/main/handlers/queries/workspace-list';
import { WorkspaceUserListQueryHandler } from '@/main/handlers/queries/workspace-user-list';
import { RecordListQueryHandler } from '@/main/handlers/queries/record-list';
import { FileListQueryHandler } from '@/main/handlers/queries/file-list';
import { EmojisGetQueryHandler } from '@/main/handlers/queries/emojis-get';
import { IconsGetQueryHandler } from '@/main/handlers/queries/icons-get';
import { NodeTreeGetQueryHandler } from '@/main/handlers/queries/node-tree-get';
import { NodeChildrenGetQueryHandler } from '@/main/handlers/queries/node-children-get';
import { ReadStatesGetQueryHandler } from '@/main/handlers/queries/read-states-get';
type QueryHandlerMap = {
[K in keyof QueryMap]: QueryHandler<QueryMap[K]['input']>;
};
export const queryHandlerMap: QueryHandlerMap = {
account_list: new AccountListQueryHandler(),
message_list: new MessageListQueryHandler(),
node_get: new NodeGetQueryHandler(),
record_list: new RecordListQueryHandler(),
server_list: new ServerListQueryHandler(),
user_search: new UserSearchQueryHandler(),
workspace_list: new WorkspaceListQueryHandler(),
workspace_user_list: new WorkspaceUserListQueryHandler(),
file_list: new FileListQueryHandler(),
emojis_get: new EmojisGetQueryHandler(),
icons_get: new IconsGetQueryHandler(),
node_tree_get: new NodeTreeGetQueryHandler(),
node_children_get: new NodeChildrenGetQueryHandler(),
read_states_get: new ReadStatesGetQueryHandler(),
};

View File

@@ -0,0 +1,87 @@
import { MutationMap } from '@/shared/mutations';
import { MutationHandler } from '@/main/types';
import { EmailLoginMutationHandler } from '@/main/mutations/email-login';
import { EmailRegisterMutationHandler } from '@/main/mutations/email-register';
import { ViewCreateMutationHandler } from '@/main/mutations/view-create';
import { ChannelCreateMutationHandler } from '@/main/mutations/channel-create';
import { ChatCreateMutationHandler } from '@/main/mutations/chat-create';
import { DatabaseCreateMutationHandler } from '@/main/mutations/database-create';
import { FieldCreateMutationHandler } from '@/main/mutations/field-create';
import { MessageCreateMutationHandler } from '@/main/mutations/message-create';
import { NodeAttributeDeleteMutationHandler } from '@/main/mutations/node-attribute-delete';
import { NodeAttributeSetMutationHandler } from '@/main/mutations/node-attribute-set';
import { NodeCollaboratorCreateMutationHandler } from '@/main/mutations/node-collaborator-create';
import { NodeCollaboratorDeleteMutationHandler } from '@/main/mutations/node-collaborator-delete';
import { NodeCollaboratorUpdateMutationHandler } from '@/main/mutations/node-collaborator-update';
import { NodeDeleteMutationHandler } from '@/main/mutations/node-delete';
import { PageCreateMutationHandler } from '@/main/mutations/page-create';
import { NodeReactionCreateMutationHandler } from '@/main/mutations/node-reaction-create';
import { NodeReactionDeleteMutationHandler } from '@/main/mutations/node-reaction-delete';
import { RecordCreateMutationHandler } from '@/main/mutations/record-create';
import { SelectOptionCreateMutationHandler } from '@/main/mutations/select-option-create';
import { ServerCreateMutationHandler } from '@/main/mutations/server-create';
import { SpaceCreateMutationHandler } from '@/main/mutations/space-create';
import { WorkspaceUserRoleUpdateMutationHandler } from '@/main/mutations/workspace-user-role-update';
import { WorkspaceUsersInviteMutationHandler } from '@/main/mutations/workspace-users-invite';
import { WorkspaceCreateMutationHandler } from '@/main/mutations/workspace-create';
import { WorkspaceUpdateMutationHandler } from '@/main/mutations/workspace-update';
import { DocumentSaveMutationHandler } from '@/main/mutations/document-save';
import { AvatarUploadMutationHandler } from '@/main/mutations/avatar-upload';
import { AccountLogoutMutationHandler } from '@/main/mutations/account-logout';
import { ServerNodeSyncMutationHandler } from '@/main/mutations/server-node-sync';
import { ServerNodeDeleteMutationHandler } from '@/main/mutations/server-node-delete';
import { FolderCreateMutationHandler } from '@/main/mutations/folder-create';
import { FileCreateMutationHandler } from '@/main/mutations/file-create';
import { FileDownloadMutationHandler } from '@/main/mutations/file-download';
import { SpaceUpdateMutationHandler } from '@/main/mutations/space-update';
import { AccountUpdateMutationHandler } from '@/main/mutations/account-update';
import { ServerUserNodeSyncMutationHandler } from '@/main/mutations/server-user-node-sync';
import { MarkNodeAsSeenMutationHandler } from '@/main/mutations/mark-node-as-seen';
import { ViewUpdateMutationHandler } from '@/main/mutations/view-update';
import { ViewDeleteMutationHandler } from '@/main/mutations/view-delete';
type MutationHandlerMap = {
[K in keyof MutationMap]: MutationHandler<MutationMap[K]['input']>;
};
export const mutationHandlerMap: MutationHandlerMap = {
email_login: new EmailLoginMutationHandler(),
email_register: new EmailRegisterMutationHandler(),
view_create: new ViewCreateMutationHandler(),
channel_create: new ChannelCreateMutationHandler(),
chat_create: new ChatCreateMutationHandler(),
database_create: new DatabaseCreateMutationHandler(),
field_create: new FieldCreateMutationHandler(),
message_create: new MessageCreateMutationHandler(),
node_attribute_delete: new NodeAttributeDeleteMutationHandler(),
node_attribute_set: new NodeAttributeSetMutationHandler(),
node_collaborator_create: new NodeCollaboratorCreateMutationHandler(),
node_collaborator_delete: new NodeCollaboratorDeleteMutationHandler(),
node_collaborator_update: new NodeCollaboratorUpdateMutationHandler(),
node_delete: new NodeDeleteMutationHandler(),
page_create: new PageCreateMutationHandler(),
node_reaction_create: new NodeReactionCreateMutationHandler(),
node_reaction_delete: new NodeReactionDeleteMutationHandler(),
record_create: new RecordCreateMutationHandler(),
select_option_create: new SelectOptionCreateMutationHandler(),
server_create: new ServerCreateMutationHandler(),
space_create: new SpaceCreateMutationHandler(),
workspace_user_role_update: new WorkspaceUserRoleUpdateMutationHandler(),
workspace_users_invite: new WorkspaceUsersInviteMutationHandler(),
workspace_create: new WorkspaceCreateMutationHandler(),
workspace_update: new WorkspaceUpdateMutationHandler(),
document_save: new DocumentSaveMutationHandler(),
avatar_upload: new AvatarUploadMutationHandler(),
account_logout: new AccountLogoutMutationHandler(),
server_node_sync: new ServerNodeSyncMutationHandler(),
server_node_delete: new ServerNodeDeleteMutationHandler(),
folder_create: new FolderCreateMutationHandler(),
file_create: new FileCreateMutationHandler(),
file_download: new FileDownloadMutationHandler(),
space_update: new SpaceUpdateMutationHandler(),
account_update: new AccountUpdateMutationHandler(),
server_user_node_sync: new ServerUserNodeSyncMutationHandler(),
mark_node_as_seen: new MarkNodeAsSeenMutationHandler(),
view_update: new ViewUpdateMutationHandler(),
view_delete: new ViewDeleteMutationHandler(),
};

View File

@@ -0,0 +1,37 @@
import { QueryMap } from '@/shared/queries';
import { QueryHandler } from '@/main/types';
import { AccountListQueryHandler } from '@/main/queries/accounts-list';
import { MessageListQueryHandler } from '@/main/queries/message-list';
import { NodeGetQueryHandler } from '@/main/queries/node-get';
import { ServerListQueryHandler } from '@/main/queries/server-list';
import { UserSearchQueryHandler } from '@/main/queries/user-search';
import { WorkspaceListQueryHandler } from '@/main/queries/workspace-list';
import { WorkspaceUserListQueryHandler } from '@/main/queries/workspace-user-list';
import { RecordListQueryHandler } from '@/main/queries/record-list';
import { FileListQueryHandler } from '@/main/queries/file-list';
import { EmojisGetQueryHandler } from '@/main/queries/emojis-get';
import { IconsGetQueryHandler } from '@/main/queries/icons-get';
import { NodeTreeGetQueryHandler } from '@/main/queries/node-tree-get';
import { NodeChildrenGetQueryHandler } from '@/main/queries/node-children-get';
import { ReadStatesGetQueryHandler } from '@/main/queries/read-states-get';
type QueryHandlerMap = {
[K in keyof QueryMap]: QueryHandler<QueryMap[K]['input']>;
};
export const queryHandlerMap: QueryHandlerMap = {
account_list: new AccountListQueryHandler(),
message_list: new MessageListQueryHandler(),
node_get: new NodeGetQueryHandler(),
record_list: new RecordListQueryHandler(),
server_list: new ServerListQueryHandler(),
user_search: new UserSearchQueryHandler(),
workspace_list: new WorkspaceListQueryHandler(),
workspace_user_list: new WorkspaceUserListQueryHandler(),
file_list: new FileListQueryHandler(),
emojis_get: new EmojisGetQueryHandler(),
icons_get: new IconsGetQueryHandler(),
node_tree_get: new NodeTreeGetQueryHandler(),
node_children_get: new NodeChildrenGetQueryHandler(),
read_states_get: new ReadStatesGetQueryHandler(),
};

View File

@@ -1,7 +1,7 @@
import { MutationInput } from '@/shared/mutations';
import { MutationMap } from '@/shared/mutations';
import { mutationHandlerMap } from '@/main/handlers/mutations';
import { mutationHandlerMap } from '@/main/mutations';
import { MutationHandler } from '@/main/types';
class MutationService {

View File

@@ -1,6 +1,6 @@
import { QueryInput, QueryMap } from '@/shared/queries';
import { QueryHandler, SubscribedQuery } from '@/main/types';
import { queryHandlerMap } from '@/main/handlers/queries';
import { queryHandlerMap } from '@/main/queries';
import { eventBus } from '@/shared/lib/event-bus';
import { Event } from '@/shared/types/events';
@@ -44,6 +44,10 @@ class QueryService {
}
private async checkForQueryChanges(event: Event): Promise<void> {
if (event.type !== 'query_result_updated') {
return;
}
for (const [id, query] of this.subscribedQueries) {
const handler = queryHandlerMap[query.input.type] as QueryHandler<
typeof query.input