svchat/src/routes/(main)/channel/[channel]/+page.server.ts
April Hall a33437cac6
fix: Timestamps being broken
Don't even know how this happened, I think my computer was just having a
stroke of some sort when I was initally doing this.
2025-02-25 02:35:01 -05:00

48 lines
1.2 KiB
TypeScript

import { db } from '$lib/server/db';
import { authdb } from '$lib/server/db/sqlite.js';
import type { TypeMessage } from '$lib/types';
import { error, redirect } from '@sveltejs/kit';
import { auth } from '$lib/server/db/auth';
interface ChannelLoad {
messages: TypeMessage[];
currentUserID: string;
currentUserName: string;
}
export async function load({ params, request }): Promise<ChannelLoad> {
const session = await auth.api.getSession({
headers: request.headers,
});
if (!session) {
redirect(307, '/signup');
}
let messages: TypeMessage[];
const rows = await db.getMessages(params.channel, 50);
if (rows.messages !== null) {
messages = rows
? rows.messages.map((value) => {
const sender = authdb.getUser(value.sender);
return {
message: value.message_content,
user: sender.username,
imageSrc: sender.image,
channel: value.channel,
timestamp: new Date(value.timestamp),
};
})
: [];
} else {
return error(404, `Channel '${params.channel}' does not exist`);
}
return {
messages: messages ?? [],
currentUserID: session.user.id!,
currentUserName: session.user.username!,
};
}