AkurAI Build
Menu

Public repository / dc540296357442733693769e22cd6944f7c2a721

AkurAI-Mail / src/routes/webmail/+page.server.ts

Latest change 66e3647948f2e277afdd6ecd16939de8b6ad525f - Initial commit: AkurAI Mail UI (SvelteKit+Bun) by Ólafur Búi Ólafsson

import { akurai } from "$lib/server";
import { isAuthenticated, mailboxFromSession } from "$lib/auth";

type MailUser = { email: string };

export async function load({ cookies, url }) {
  const status = await akurai(["status"]);
  const requested = url.searchParams.get("mailbox") ?? "";
  const users = (status.users ?? []) as MailUser[];
  const admin = isAuthenticated(cookies);
  const sessionMailbox = mailboxFromSession(cookies);
  const mailbox = admin && users.some((user) => user.email === requested)
    ? requested
    : sessionMailbox || users[0]?.email || "olibuijr@olibuijr.com";
  const webmail = await akurai(["webmail-state", mailbox, "--folder", "Inbox"]);
  const publicStatus = admin ? status : { hostname: status.hostname, users: users.filter((user) => user.email === mailbox) };
  return { status: publicStatus, webmail, admin, sessionMailbox: mailbox };
}