feat : add api

This commit is contained in:
lukman
2024-07-25 10:07:26 +08:00
parent c2a050a03d
commit 6872fb51b2
4 changed files with 46 additions and 4 deletions

View File

@@ -0,0 +1,18 @@
import { prisma, pwd_key_config } from "@/module/_global";
import { unsealData } from "iron-session";
import { cookies } from "next/headers";
export async function GET() {
const sessionCookie = cookies().get("sessionCookie");
const userId = await unsealData(sessionCookie!.value, {
password: pwd_key_config,
});
const user = await prisma.user.findUnique({
where: {
id: String(userId),
},
});
return Response.json(user);
}

View File

@@ -1,11 +1,12 @@
import prisma from "@/module/_global/bin/prisma";
import { Login } from "@/types/auth/login";
import { prisma } from "@/module/_global";
import { ILogin } from "@/types";
import { NextRequest } from "next/server";
export async function POST(req: NextRequest) {
const { email }: Login = await req.json();
const { phone }: ILogin = await req.json();
const user = await prisma.user.findUnique({
where: { email, isActive: true },
where: { phone, isActive: true },
select: { id: true, phone: true },
});

View File

@@ -0,0 +1,7 @@
import { cookies } from "next/headers";
export async function DELETE() {
cookies().delete('sessionCookie')
return Response.json({ success: true })
}

View File

@@ -0,0 +1,16 @@
import { pwd_key_config } from "@/module/_global";
import { sealData } from "iron-session";
import { cookies } from "next/headers";
import { redirect } from "next/navigation";
export async function POST(req: Request) {
const { user } = await req.json();
const encryptedUserData = await sealData(user, { password: pwd_key_config });
cookies().set({
name: "sessionCookie",
value: encryptedUserData,
});
return Response.json({ success: true });
}