import { BASE_API_URI } from "$lib/utils/constants";
import { fail, redirect } from "@sveltejs/kit";

/** @type {import('./$types').PageServerLoad} */
export async function load({ locals }) {
  // redirect user if not logged in
  if (!locals.user) {
    throw redirect(302, `/auth/login?next=/auth/logout`);
  }
}

/** @type {import('./$types').Actions} */
export const actions = {
  default: async ({ fetch, cookies }) => {
    /** @type {RequestInit} */
    const requestInitOptions = {
      method: "POST",
      credentials: "include",
      headers: {
        "Content-Type": "application/json",
        Cookie: `jwt=${cookies.get("jwt")}`,
      },
    };

    const res = await fetch(
      `${BASE_API_URI}/users/backend/logout/`,
      requestInitOptions
    );

    if (!res.ok) {
      const response = await res.json();
      const errors = [];
      errors.push({ error: response.error, id: 0 });
      return fail(400, { errors: errors });
    }

    // eat the cookie
    cookies.delete("jwt", { path: "/" });

    // redirect the user
    throw redirect(302, "/auth/login");
  },
};
