deskripsi:
- api login , validasi, hapus code otp
This commit is contained in:
2025-02-05 10:35:33 +08:00
parent 46d49992b4
commit 7c04d85134
18 changed files with 442 additions and 300 deletions

View File

@@ -0,0 +1,30 @@
import { prisma } from "@/app/lib";
import backendLogger from "@/util/backendLogger";
import { NextRequest, NextResponse } from "next/server";
export const dynamic = "force-dynamic";
export async function GET(
request: Request,
{ params }: { params: { id: string } }
) {
if (request.method !== "GET") {
return NextResponse.json(
{ success: false, message: "Method not allowed" },
{ status: 405 }
);
}
try {
const { id } = params;
const data = await prisma.kodeOtp.findFirst({
where: {
id: id as string,
},
});
return NextResponse.json(data, { status: 200 });
} catch (error) {
backendLogger.error("Error get code otp", error); //(error);
return NextResponse.json(null, { status: 500 });
}
}

View File

@@ -1,24 +0,0 @@
import { prisma } from "@/app/lib";
import { data } from "autoprefixer";
import { NextRequest, NextResponse } from "next/server";
export const dynamic = "force-dynamic";
export async function GET(request: NextRequest) {
const id = request.nextUrl.searchParams.get("id");
// const { searchParams } = new URL(request.url);
// const id = searchParams.get("id");
try {
const data = await prisma.kodeOtp.findFirst({
where: {
id: id as string,
},
});
return NextResponse.json(data, { status: 200 });
} catch (error) {
console.log(error);
}
return NextResponse.json(null, { status: 500 });
}

View File

@@ -0,0 +1,67 @@
import { prisma } from "@/app/lib";
import { NextResponse } from "next/server";
export { DELETE };
async function DELETE(request: Request) {
if (request.method !== "DELETE") {
return NextResponse.json(
{ success: false, message: "Method not allowed" },
{ status: 405 }
);
}
try {
// Ambil parameter nomor dari URL
const { searchParams } = new URL(request.url);
const nomor = searchParams.get("nomor");
// Validasi parameter nomor
if (!nomor) {
return NextResponse.json(
{
success: false,
message: "Parameter 'nomor' diperlukan",
},
{ status: 400 }
);
}
// Cek apakah data OTP dengan nomor tersebut ada
const existingOtp = await prisma.kodeOtp.findFirst({
where: { nomor },
});
if (!existingOtp) {
return NextResponse.json(
{
success: false,
message: "Data OTP tidak ditemukan",
},
{ status: 404 }
);
}
// Hapus data OTP
await prisma.kodeOtp.deleteMany({
where: { nomor },
});
return NextResponse.json(
{
success: true,
message: "Berhasil menghapus data OTP",
},
{ status: 200 }
);
} catch (error) {
console.error("Error deleting OTP:", error);
return NextResponse.json(
{
success: false,
message: "Terjadi kesalahan saat menghapus data OTP",
},
{ status: 500 }
);
} finally {
await prisma.$disconnect();
}
}

View File

@@ -4,58 +4,60 @@ import backendLogger from "@/util/backendLogger";
import { NextResponse } from "next/server";
export async function POST(req: Request) {
if (req.method === "POST") {
if (req.method !== "POST") {
return NextResponse.json(
{ success: false, message: "Method Not Allowed" },
{ status: 405 }
);
}
try {
const { nomor } = await req.json();
const dataUser = await prisma.user.findUnique({
where: {
nomor: nomor,
},
select: {
id: true,
nomor: true,
username: true,
active: true,
masterUserRoleId: true,
},
});
try {
const dataUser = await prisma.user.findUnique({
where: {
nomor: nomor,
},
select: {
id: true,
nomor: true,
username: true,
active: true,
masterUserRoleId: true,
},
});
if (dataUser == null)
return NextResponse.json(
{ success: false, message: "Nomor Belum Terdaftar" },
{ status: 404 }
);
const token = await sessionCreate({
sessionKey: process.env.NEXT_PUBLIC_BASE_SESSION_KEY!,
encodedKey: process.env.NEXT_PUBLIC_BASE_TOKEN_KEY!,
user: dataUser as any,
});
if (dataUser == null)
return NextResponse.json(
{
success: true,
message: "Berhasil Login",
roleId: dataUser.masterUserRoleId,
active: dataUser.active,
},
{ success: false, message: "Nomor Belum Terdaftar" },
{ status: 200 }
);
} catch (error) {
backendLogger.log("Error Validasi:", error);
return NextResponse.json(
{
success: false,
message: "Server Error",
reason: (error as Error).message,
},
{ status: 500 }
);
}
const token = await sessionCreate({
sessionKey: process.env.NEXT_PUBLIC_BASE_SESSION_KEY!,
encodedKey: process.env.NEXT_PUBLIC_BASE_TOKEN_KEY!,
user: dataUser as any,
});
return NextResponse.json(
{
success: true,
message: "Berhasil Login",
roleId: dataUser.masterUserRoleId,
active: dataUser.active,
},
{ status: 200 }
);
} catch (error) {
backendLogger.log("API Error or Server Error", error);
return NextResponse.json(
{
success: false,
message: "API Error or Server Error",
reason: (error as Error).message,
},
{ status: 500 }
);
} finally {
await prisma.$disconnect();
}
return NextResponse.json(
{ success: false, message: "Method Not Allowed" },
{ status: 405 }
);
}