Refactor 4 with bugfixes
This commit is contained in:
66
server/src/cqrs/index.ts
Normal file
66
server/src/cqrs/index.ts
Normal file
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* Thin service layer - binds every CQRS handler to `getDataSource()` so
|
||||
* routes can call one-liner functions instead of manually constructing
|
||||
* command/query objects and passing the DataSource every time.
|
||||
*/
|
||||
|
||||
import { getDataSource } from '../db';
|
||||
import {
|
||||
CommandType,
|
||||
QueryType,
|
||||
AuthUserPayload,
|
||||
ServerPayload,
|
||||
JoinRequestPayload
|
||||
} from './types';
|
||||
import { handleRegisterUser } from './commands/handlers/registerUser';
|
||||
import { handleUpsertServer } from './commands/handlers/upsertServer';
|
||||
import { handleDeleteServer } from './commands/handlers/deleteServer';
|
||||
import { handleCreateJoinRequest } from './commands/handlers/createJoinRequest';
|
||||
import { handleUpdateJoinRequestStatus } from './commands/handlers/updateJoinRequestStatus';
|
||||
import { handleDeleteStaleJoinRequests } from './commands/handlers/deleteStaleJoinRequests';
|
||||
import { handleGetUserByUsername } from './queries/handlers/getUserByUsername';
|
||||
import { handleGetUserById } from './queries/handlers/getUserById';
|
||||
import { handleGetAllPublicServers } from './queries/handlers/getAllPublicServers';
|
||||
import { handleGetServerById } from './queries/handlers/getServerById';
|
||||
import { handleGetJoinRequestById } from './queries/handlers/getJoinRequestById';
|
||||
import { handleGetPendingRequestsForServer } from './queries/handlers/getPendingRequestsForServer';
|
||||
|
||||
// --------------- Commands ---------------
|
||||
|
||||
export const registerUser = (user: AuthUserPayload) =>
|
||||
handleRegisterUser({ type: CommandType.RegisterUser, payload: { user } }, getDataSource());
|
||||
|
||||
export const upsertServer = (server: ServerPayload) =>
|
||||
handleUpsertServer({ type: CommandType.UpsertServer, payload: { server } }, getDataSource());
|
||||
|
||||
export const deleteServer = (serverId: string) =>
|
||||
handleDeleteServer({ type: CommandType.DeleteServer, payload: { serverId } }, getDataSource());
|
||||
|
||||
export const createJoinRequest = (request: JoinRequestPayload) =>
|
||||
handleCreateJoinRequest({ type: CommandType.CreateJoinRequest, payload: { request } }, getDataSource());
|
||||
|
||||
export const updateJoinRequestStatus = (requestId: string, status: JoinRequestPayload['status']) =>
|
||||
handleUpdateJoinRequestStatus({ type: CommandType.UpdateJoinRequestStatus, payload: { requestId, status } }, getDataSource());
|
||||
|
||||
export const deleteStaleJoinRequests = (maxAgeMs: number) =>
|
||||
handleDeleteStaleJoinRequests({ type: CommandType.DeleteStaleJoinRequests, payload: { maxAgeMs } }, getDataSource());
|
||||
|
||||
// --------------- Queries ---------------
|
||||
|
||||
export const getUserByUsername = (username: string) =>
|
||||
handleGetUserByUsername({ type: QueryType.GetUserByUsername, payload: { username } }, getDataSource());
|
||||
|
||||
export const getUserById = (userId: string) =>
|
||||
handleGetUserById({ type: QueryType.GetUserById, payload: { userId } }, getDataSource());
|
||||
|
||||
export const getAllPublicServers = () =>
|
||||
handleGetAllPublicServers(getDataSource());
|
||||
|
||||
export const getServerById = (serverId: string) =>
|
||||
handleGetServerById({ type: QueryType.GetServerById, payload: { serverId } }, getDataSource());
|
||||
|
||||
export const getJoinRequestById = (requestId: string) =>
|
||||
handleGetJoinRequestById({ type: QueryType.GetJoinRequestById, payload: { requestId } }, getDataSource());
|
||||
|
||||
export const getPendingRequestsForServer = (serverId: string) =>
|
||||
handleGetPendingRequestsForServer({ type: QueryType.GetPendingRequestsForServer, payload: { serverId } }, getDataSource());
|
||||
Reference in New Issue
Block a user