From eeeaa07c9b176b6a458f933278b0e966b1c5b9ca Mon Sep 17 00:00:00 2001 From: nabillah Date: Wed, 15 Oct 2025 15:50:37 +0800 Subject: [PATCH] Mobile API: App Information - src/app/api/mobile/admin/master/ ### No Issue --- .../mobile/admin/master/bank/[id]/route.ts | 63 ++++++++++++++++++ src/app/api/mobile/admin/master/bank/route.ts | 61 +++++++++++++++++ .../admin/master/business-field/[id]/route.ts | 61 +++++++++++++++++ .../admin/master/business-field/route.ts | 65 +++++++++++++++++++ 4 files changed, 250 insertions(+) create mode 100644 src/app/api/mobile/admin/master/bank/[id]/route.ts create mode 100644 src/app/api/mobile/admin/master/bank/route.ts create mode 100644 src/app/api/mobile/admin/master/business-field/[id]/route.ts create mode 100644 src/app/api/mobile/admin/master/business-field/route.ts diff --git a/src/app/api/mobile/admin/master/bank/[id]/route.ts b/src/app/api/mobile/admin/master/bank/[id]/route.ts new file mode 100644 index 00000000..4b555b19 --- /dev/null +++ b/src/app/api/mobile/admin/master/bank/[id]/route.ts @@ -0,0 +1,63 @@ +import { NextResponse } from "next/server"; +import { prisma } from "@/lib"; + +export { GET, PUT }; + +async function GET(request: Request, { params }: { params: { id: string } }) { + try { + const { id } = params; + const data = await prisma.masterBank.findUnique({ + where: { + id: id, + }, + }); + + return NextResponse.json({ + status: 200, + success: true, + message: "Berhasil mendapatkan data", + data: data, + }); + } catch (error) { + console.error("Error Get Master Bank >>", error); + return NextResponse.json({ + status: 500, + success: false, + message: "API Error Get Data", + reason: (error as Error).message, + }); + } +} + +async function PUT(request: Request, { params }: { params: { id: string } }) { + const { id } = params; + const { data } = await request.json(); + + try { + const updateData = await prisma.masterBank.update({ + where: { + id: id, + }, + data: { + namaBank: data.namaBank, + namaAkun: data.namaAkun, + norek: data.norek, + isActive: data.isActive, + }, + }); + + return NextResponse.json({ + status: 200, + success: true, + message: "Berhasil mengupdate data", + }); + } catch (error) { + console.error("Error Update Master Bank >>", error); + return NextResponse.json({ + status: 500, + success: false, + message: "API Error Update Data", + reason: (error as Error).message, + }); + } +} diff --git a/src/app/api/mobile/admin/master/bank/route.ts b/src/app/api/mobile/admin/master/bank/route.ts new file mode 100644 index 00000000..f17f9ecf --- /dev/null +++ b/src/app/api/mobile/admin/master/bank/route.ts @@ -0,0 +1,61 @@ +import { prisma } from "@/lib"; +import { NextResponse } from "next/server"; + +export { GET, POST }; + +async function GET() { + try { + const data = await prisma.masterBank.findMany({ + orderBy: { + updatedAt: "desc", + }, + }); + + return NextResponse.json( + { success: true, message: "Berhasil mendapatkan data", data: data }, + { status: 200 } + ); + } catch (error) { + console.error("Error Get Master Bank >>", error); + return NextResponse.json( + { + success: false, + message: "API Error Get Data", + reason: (error as Error).message, + }, + { status: 500 } + ); + } +} + +async function POST(request: Request) { + const { data } = await request.json(); + try { + const count = await prisma.masterBank.count(); + const createNewId = count + 1; + + const create = await prisma.masterBank.create({ + data: { + id: createNewId.toString(), + namaBank: data.namaBank, + namaAkun: data.namaAkun, + norek: data.norek, + }, + }); + + return NextResponse.json({ + status: 200, + success: true, + message: "Berhasil menambahkan data", + data: create, + }); + } catch (error) { + console.error("Error Post Master Bank >>", error); + return NextResponse.json({ + status: 500, + success: false, + message: "API Error Post Data", + reason: (error as Error).message, + }); + } +} diff --git a/src/app/api/mobile/admin/master/business-field/[id]/route.ts b/src/app/api/mobile/admin/master/business-field/[id]/route.ts new file mode 100644 index 00000000..9cc26fdf --- /dev/null +++ b/src/app/api/mobile/admin/master/business-field/[id]/route.ts @@ -0,0 +1,61 @@ +import { NextResponse } from "next/server"; +import { prisma } from "@/lib"; + +export { GET, PUT }; + +async function GET(request: Request, { params }: { params: { id: string } }) { + try { + const { id } = params; + const data = await prisma.masterBidangBisnis.findUnique({ + where: { + id: id, + }, + }); + + return NextResponse.json({ + status: 200, + success: true, + message: "Berhasil mendapatkan data", + data: data, + }); + } catch (error) { + console.error("Error Get Master Bank >>", error); + return NextResponse.json({ + status: 500, + success: false, + message: "API Error Get Data", + reason: (error as Error).message, + }); + } +} + +async function PUT(request: Request, { params }: { params: { id: string } }) { + const { id } = params; + const { data } = await request.json(); + + try { + const updateData = await prisma.masterBidangBisnis.update({ + where: { + id: id, + }, + data: { + name: data.name, + active: data.active, + }, + }); + + return NextResponse.json({ + status: 200, + success: true, + message: "Berhasil mengupdate data", + }); + } catch (error) { + console.error("Error Update Master Bank >>", error); + return NextResponse.json({ + status: 500, + success: false, + message: "API Error Update Data", + reason: (error as Error).message, + }); + } +} diff --git a/src/app/api/mobile/admin/master/business-field/route.ts b/src/app/api/mobile/admin/master/business-field/route.ts new file mode 100644 index 00000000..52a6dfa1 --- /dev/null +++ b/src/app/api/mobile/admin/master/business-field/route.ts @@ -0,0 +1,65 @@ +import { NextResponse } from "next/server"; +import { prisma } from "@/lib"; + +export { GET, POST }; + +async function GET(request: Request) { + try { + const data = await prisma.masterBidangBisnis.findMany({ + orderBy: { + createdAt: "asc", + }, + }); + + return NextResponse.json({ + status: 200, + success: true, + message: "Berhasil mendapatkan data", + data: data, + }); + } catch (error) { + console.error( + "Error Get Master Bidang Bisnis >>", + error || (error as Error).message + ); + return NextResponse.json({ + status: 500, + success: false, + message: "API Error Get Master Bidang Bisnis ", + reason: (error as Error).message, + }); + } +} + +async function POST(request: Request) { + const { data } = await request.json(); + try { + const count = await prisma.masterBidangBisnis.count(); + const createNewId = count + 1; + + const slugName = data.name.toLowerCase().replace(/\s+/g, "_"); + + const create = await prisma.masterBidangBisnis.create({ + data: { + id: createNewId.toString(), + name: data.name, + slug: slugName, + }, + }); + + return NextResponse.json({ + status: 200, + success: true, + message: "Berhasil menambahkan data", + data: create, + }); + } catch (error) { + console.error("Error Post Master Business Field >>", error); + return NextResponse.json({ + status: 500, + success: false, + message: "API Error Post Data", + reason: (error as Error).message, + }); + } +}