Database changes to make it better practise

This commit is contained in:
2026-04-02 01:32:08 +02:00
parent 5d7e045764
commit 314a26325f
36 changed files with 1453 additions and 193 deletions

View File

@@ -8,6 +8,7 @@ import {
ServerMembershipEntity
} from '../entities';
import { rowToServer } from '../cqrs/mappers';
import { loadServerRelationsMap } from '../cqrs/relations';
import { ServerPayload } from '../cqrs/types';
export const SERVER_INVITE_EXPIRY_MS = 10 * 24 * 60 * 60 * 1000;
@@ -57,6 +58,12 @@ function getBanRepository() {
return getDataSource().getRepository(ServerBanEntity);
}
async function toServerPayload(server: ServerEntity): Promise<ServerPayload> {
const relationsByServerId = await loadServerRelationsMap(getDataSource(), [server.id]);
return rowToServer(server, relationsByServerId.get(server.id));
}
function normalizePassword(password?: string | null): string | null {
const normalized = password?.trim() ?? '';
@@ -194,7 +201,7 @@ export async function createServerInvite(
export async function getActiveServerInvite(
inviteId: string
): Promise<{ invite: ServerInviteEntity; server: ServerEntity } | null> {
): Promise<{ invite: ServerInviteEntity; server: ServerPayload } | null> {
await pruneExpiredServerAccessArtifacts();
const invite = await getInviteRepository().findOne({ where: { id: inviteId } });
@@ -214,7 +221,10 @@ export async function getActiveServerInvite(
return null;
}
return { invite, server };
return {
invite,
server: await toServerPayload(server)
};
}
export async function joinServerWithAccess(options: {
@@ -242,7 +252,7 @@ export async function joinServerWithAccess(options: {
return {
joinedBefore: !!existingMembership,
server: rowToServer(server),
server: await toServerPayload(server),
via: 'membership'
};
}
@@ -260,7 +270,7 @@ export async function joinServerWithAccess(options: {
return {
joinedBefore: !!existingMembership,
server: rowToServer(server),
server: await toServerPayload(server),
via: 'invite'
};
}
@@ -272,7 +282,7 @@ export async function joinServerWithAccess(options: {
return {
joinedBefore: true,
server: rowToServer(server),
server: await toServerPayload(server),
via: 'membership'
};
}
@@ -288,7 +298,7 @@ export async function joinServerWithAccess(options: {
return {
joinedBefore: false,
server: rowToServer(server),
server: await toServerPayload(server),
via: 'password'
};
}
@@ -301,7 +311,7 @@ export async function joinServerWithAccess(options: {
return {
joinedBefore: false,
server: rowToServer(server),
server: await toServerPayload(server),
via: 'public'
};
}