From f87b99f70424a933e517c33510e10f99bb69575c Mon Sep 17 00:00:00 2001 From: amal Date: Tue, 16 Sep 2025 14:24:58 +0800 Subject: [PATCH] upd: api ai Deskripsi : - update banner api ai No Issues --- src/app/api/ai/banner/[id]/route.ts | 21 +++++++++++++++++++++ src/app/api/ai/banner/route.ts | 25 +++++++++++++++++-------- 2 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 src/app/api/ai/banner/[id]/route.ts diff --git a/src/app/api/ai/banner/[id]/route.ts b/src/app/api/ai/banner/[id]/route.ts new file mode 100644 index 0000000..01f91ac --- /dev/null +++ b/src/app/api/ai/banner/[id]/route.ts @@ -0,0 +1,21 @@ +import { prisma } from "@/module/_global"; +import { NextResponse } from "next/server"; + + +// GET ONE BANNER +export async function GET(request: Request, context: { params: { id: string } }) { + try { + const { id } = context.params; + + const data = await prisma.bannerImage.findUnique({ + where: { + id: String(id) + } + }) + + return NextResponse.json({ success: true, message: "Berhasil mendapatkan banner", data }, { status: 200 }); + } catch (error) { + console.error(error); + return NextResponse.json({ success: false, message: "Gagal mendapatkan banner, coba lagi nanti (error: 500)", reason: (error as Error).message, }, { status: 500 }); + } +} \ No newline at end of file diff --git a/src/app/api/ai/banner/route.ts b/src/app/api/ai/banner/route.ts index ccbefea..93704b4 100644 --- a/src/app/api/ai/banner/route.ts +++ b/src/app/api/ai/banner/route.ts @@ -1,4 +1,5 @@ import { prisma } from "@/module/_global"; +import _ from "lodash"; import { NextResponse } from "next/server"; @@ -6,15 +7,24 @@ import { NextResponse } from "next/server"; export async function GET(request: Request) { try { const { searchParams } = new URL(request.url); - const judul = searchParams.get('q'); - const page = searchParams.get('p'); + const judul = searchParams.get('search'); + const page = searchParams.get('page'); const get = searchParams.get('get'); const villageId = searchParams.get('desa'); - const dataSkip = page == null || page == undefined ? 0 : Number(page) * 10 - 10; + const active = searchParams.get('active'); + + let getFix = 0; + if (get == null || get == undefined || get == "" || _.isNaN(Number(get))) { + getFix = 10; + } else { + getFix = Number(get); + } + + const dataSkip = page == null || page == undefined ? 0 : Number(page) * getFix - getFix; let kondisi: any = { idVillage: String(villageId), - isActive: true, + isActive: (active == "false" || active == undefined) ? false : true, title: { contains: (judul == undefined || judul == null) ? "" : judul, mode: "insensitive" @@ -22,10 +32,9 @@ export async function GET(request: Request) { } const data = await prisma.bannerImage.findMany({ - where: { - isActive: true, - idVillage: String(villageId) - }, + skip: dataSkip, + take: getFix, + where: kondisi, orderBy: { createdAt: 'desc' }