42 lines
2.4 KiB
TypeScript
42 lines
2.4 KiB
TypeScript
import { DataSource } from 'typeorm';
|
|
import {
|
|
QueryType,
|
|
QueryTypeKey,
|
|
Query,
|
|
GetMessagesQuery,
|
|
GetMessageByIdQuery,
|
|
GetReactionsForMessageQuery,
|
|
GetUserQuery,
|
|
GetRoomQuery,
|
|
GetBansForRoomQuery,
|
|
IsUserBannedQuery,
|
|
GetAttachmentsForMessageQuery
|
|
} from '../types';
|
|
import { handleGetMessages } from './handlers/getMessages';
|
|
import { handleGetMessageById } from './handlers/getMessageById';
|
|
import { handleGetReactionsForMessage } from './handlers/getReactionsForMessage';
|
|
import { handleGetUser } from './handlers/getUser';
|
|
import { handleGetCurrentUser } from './handlers/getCurrentUser';
|
|
import { handleGetUsersByRoom } from './handlers/getUsersByRoom';
|
|
import { handleGetRoom } from './handlers/getRoom';
|
|
import { handleGetAllRooms } from './handlers/getAllRooms';
|
|
import { handleGetBansForRoom } from './handlers/getBansForRoom';
|
|
import { handleIsUserBanned } from './handlers/isUserBanned';
|
|
import { handleGetAttachmentsForMessage } from './handlers/getAttachmentsForMessage';
|
|
import { handleGetAllAttachments } from './handlers/getAllAttachments';
|
|
|
|
export const buildQueryHandlers = (dataSource: DataSource): Record<QueryTypeKey, (query: Query) => Promise<unknown>> => ({
|
|
[QueryType.GetMessages]: (query) => handleGetMessages(query as GetMessagesQuery, dataSource),
|
|
[QueryType.GetMessageById]: (query) => handleGetMessageById(query as GetMessageByIdQuery, dataSource),
|
|
[QueryType.GetReactionsForMessage]: (query) => handleGetReactionsForMessage(query as GetReactionsForMessageQuery, dataSource),
|
|
[QueryType.GetUser]: (query) => handleGetUser(query as GetUserQuery, dataSource),
|
|
[QueryType.GetCurrentUser]: () => handleGetCurrentUser(dataSource),
|
|
[QueryType.GetUsersByRoom]: () => handleGetUsersByRoom(dataSource),
|
|
[QueryType.GetRoom]: (query) => handleGetRoom(query as GetRoomQuery, dataSource),
|
|
[QueryType.GetAllRooms]: () => handleGetAllRooms(dataSource),
|
|
[QueryType.GetBansForRoom]: (query) => handleGetBansForRoom(query as GetBansForRoomQuery, dataSource),
|
|
[QueryType.IsUserBanned]: (query) => handleIsUserBanned(query as IsUserBannedQuery, dataSource),
|
|
[QueryType.GetAttachmentsForMessage]: (query) => handleGetAttachmentsForMessage(query as GetAttachmentsForMessageQuery, dataSource),
|
|
[QueryType.GetAllAttachments]: () => handleGetAllAttachments(dataSource)
|
|
});
|