Refactor 4 with bugfixes
This commit is contained in:
19
server/src/cqrs/commands/handlers/createJoinRequest.ts
Normal file
19
server/src/cqrs/commands/handlers/createJoinRequest.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { DataSource } from 'typeorm';
|
||||
import { JoinRequestEntity } from '../../../entities';
|
||||
import { CreateJoinRequestCommand } from '../../types';
|
||||
|
||||
export async function handleCreateJoinRequest(command: CreateJoinRequestCommand, dataSource: DataSource): Promise<void> {
|
||||
const repo = dataSource.getRepository(JoinRequestEntity);
|
||||
const { request } = command.payload;
|
||||
const entity = repo.create({
|
||||
id: request.id,
|
||||
serverId: request.serverId,
|
||||
userId: request.userId,
|
||||
userPublicKey: request.userPublicKey,
|
||||
displayName: request.displayName,
|
||||
status: request.status,
|
||||
createdAt: request.createdAt
|
||||
});
|
||||
|
||||
await repo.save(entity);
|
||||
}
|
||||
10
server/src/cqrs/commands/handlers/deleteServer.ts
Normal file
10
server/src/cqrs/commands/handlers/deleteServer.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { DataSource } from 'typeorm';
|
||||
import { ServerEntity, JoinRequestEntity } from '../../../entities';
|
||||
import { DeleteServerCommand } from '../../types';
|
||||
|
||||
export async function handleDeleteServer(command: DeleteServerCommand, dataSource: DataSource): Promise<void> {
|
||||
const { serverId } = command.payload;
|
||||
|
||||
await dataSource.getRepository(JoinRequestEntity).delete({ serverId });
|
||||
await dataSource.getRepository(ServerEntity).delete(serverId);
|
||||
}
|
||||
10
server/src/cqrs/commands/handlers/deleteStaleJoinRequests.ts
Normal file
10
server/src/cqrs/commands/handlers/deleteStaleJoinRequests.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { DataSource, LessThan } from 'typeorm';
|
||||
import { JoinRequestEntity } from '../../../entities';
|
||||
import { DeleteStaleJoinRequestsCommand } from '../../types';
|
||||
|
||||
export async function handleDeleteStaleJoinRequests(command: DeleteStaleJoinRequestsCommand, dataSource: DataSource): Promise<void> {
|
||||
const repo = dataSource.getRepository(JoinRequestEntity);
|
||||
const cutoff = Date.now() - command.payload.maxAgeMs;
|
||||
|
||||
await repo.delete({ createdAt: LessThan(cutoff) });
|
||||
}
|
||||
17
server/src/cqrs/commands/handlers/registerUser.ts
Normal file
17
server/src/cqrs/commands/handlers/registerUser.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { DataSource } from 'typeorm';
|
||||
import { AuthUserEntity } from '../../../entities';
|
||||
import { RegisterUserCommand } from '../../types';
|
||||
|
||||
export async function handleRegisterUser(command: RegisterUserCommand, dataSource: DataSource): Promise<void> {
|
||||
const repo = dataSource.getRepository(AuthUserEntity);
|
||||
const { user } = command.payload;
|
||||
const entity = repo.create({
|
||||
id: user.id,
|
||||
username: user.username,
|
||||
passwordHash: user.passwordHash,
|
||||
displayName: user.displayName,
|
||||
createdAt: user.createdAt
|
||||
});
|
||||
|
||||
await repo.save(entity);
|
||||
}
|
||||
10
server/src/cqrs/commands/handlers/updateJoinRequestStatus.ts
Normal file
10
server/src/cqrs/commands/handlers/updateJoinRequestStatus.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { DataSource } from 'typeorm';
|
||||
import { JoinRequestEntity } from '../../../entities';
|
||||
import { UpdateJoinRequestStatusCommand } from '../../types';
|
||||
|
||||
export async function handleUpdateJoinRequestStatus(command: UpdateJoinRequestStatusCommand, dataSource: DataSource): Promise<void> {
|
||||
const repo = dataSource.getRepository(JoinRequestEntity);
|
||||
const { requestId, status } = command.payload;
|
||||
|
||||
await repo.update(requestId, { status });
|
||||
}
|
||||
23
server/src/cqrs/commands/handlers/upsertServer.ts
Normal file
23
server/src/cqrs/commands/handlers/upsertServer.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { DataSource } from 'typeorm';
|
||||
import { ServerEntity } from '../../../entities';
|
||||
import { UpsertServerCommand } from '../../types';
|
||||
|
||||
export async function handleUpsertServer(command: UpsertServerCommand, dataSource: DataSource): Promise<void> {
|
||||
const repo = dataSource.getRepository(ServerEntity);
|
||||
const { server } = command.payload;
|
||||
const entity = repo.create({
|
||||
id: server.id,
|
||||
name: server.name,
|
||||
description: server.description ?? null,
|
||||
ownerId: server.ownerId,
|
||||
ownerPublicKey: server.ownerPublicKey,
|
||||
isPrivate: server.isPrivate ? 1 : 0,
|
||||
maxUsers: server.maxUsers,
|
||||
currentUsers: server.currentUsers,
|
||||
tags: JSON.stringify(server.tags),
|
||||
createdAt: server.createdAt,
|
||||
lastSeen: server.lastSeen
|
||||
});
|
||||
|
||||
await repo.save(entity);
|
||||
}
|
||||
Reference in New Issue
Block a user