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' }