super-fit-web-app / src / utils / planetscale / logout.ts
logout.ts
Raw
import { db } from "@/db/PrismaClient";
import { TRPCError } from "@trpc/server";
import { cookieFunctions } from "../cookies";
import { NextApiRequest, NextApiResponse } from "next";

export const logout = async (req: NextApiRequest, res: NextApiResponse) => {
  const session_token = req.cookies[process.env.SESSION_COOKIE_NAME];

  await db.session.delete({
    where: {
      session_token: session_token,
    }
  })
  .then(async () => {
    await cookieFunctions.deleteCookie(res);
  })
  .catch((error) => {
    console.log(error);
    throw new TRPCError({
      code: 'INTERNAL_SERVER_ERROR',
      message: `Error: there was an issue deleting the session. ${(error as Error).message}`,
      cause: error
    });
  });
  
  return {
    logout_success: true,
  };
}