AkurAI Build
Menu

Public repository / 7a284f40b2637792d0599c38c4cac0342da676d7

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

Latest change eca1ad74e13f063fef86bfd5247acf3a1cf76832 - fix: eliminate all TTSR rule triggers in TypeScript source (AKURAI-MAIL-10) by Ólafur Búi Ólafsson

import { api } from "$lib/api";

interface User { email: string }

export async function load({ url }) {
  const requested = url.searchParams.get("mailbox") ?? "";
  const authCheck = await api("/api/auth/check");
  const admin = authCheck.authenticated;
  if (!admin && !authCheck.mailbox) {
    window.location.href = `/webmail/login?next=${encodeURIComponent(url.pathname)}`;
    throw new Error("authentication required");
  }
  const status = admin
    ? await api("/api/status")
    : { hostname: url.hostname, users: [{ email: authCheck.mailbox }] as User[] };
  const users = status.users as User[];
  const mailbox = admin && users.some((u: User) => u.email === requested)
    ? requested
    : authCheck.mailbox || users[0]?.email || "olibuijr@olibuijr.com";
  const webmail = await api(`/api/webmail?email=${encodeURIComponent(mailbox)}&folder=Inbox`);
  const publicStatus = admin ? status : { hostname: status.hostname, users: users.filter((u: User) => u.email === mailbox) };
  return { status: publicStatus, webmail, admin, sessionMailbox: mailbox };
}