From 9576f8250283fe43dd30d527b91f787afb64986c Mon Sep 17 00:00:00 2001
From: Rafi Zadanly <zadanlyr@gmail.com>
Date: Mon, 20 Nov 2023 17:09:42 +0700
Subject: Fix product and location api not case sensitive

---
 src/app/api/product/route.tsx | 40 ++++++++++++++++++++++++++--------------
 1 file changed, 26 insertions(+), 14 deletions(-)

(limited to 'src/app/api/product/route.tsx')

diff --git a/src/app/api/product/route.tsx b/src/app/api/product/route.tsx
index 07ba9c7..eea6162 100644
--- a/src/app/api/product/route.tsx
+++ b/src/app/api/product/route.tsx
@@ -16,29 +16,41 @@ export async function GET(request: NextRequest) {
 
   if (!credential) return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
 
-  const where = {
-    AND: {
-      OR: [
-        { name: { contains: search ?? '' } },
-        { barcode: { contains: search ?? '' } },
-        { itemCode: { contains: search ?? '' } },
-      ],
-      companyId: companyId ?? credential.companyId
-    }
-  }
-
   const products = await prisma.product.findMany({
-    where,
+    where: {
+      AND: {
+        OR: [
+          { name: { mode: 'insensitive', contains: search ?? '' } },
+          { barcode: { mode: 'insensitive', contains: search ?? '' } },
+          { itemCode: { mode: 'insensitive', contains: search ?? '' } },
+        ],
+        companyId: companyId ?? credential.companyId
+      }
+    },
     include: { company: true },
     take: PAGE_SIZE,
     skip: (intPage - 1) * PAGE_SIZE
   })
 
-  const count = await prisma.product.count({ where })
+  const count = await prisma.product.count({
+    where: {
+      AND: {
+        OR: [
+          { name: { mode: 'insensitive', contains: search ?? '' } },
+          { barcode: { mode: 'insensitive', contains: search ?? '' } },
+          { itemCode: { mode: 'insensitive', contains: search ?? '' } },
+        ],
+        companyId: companyId ?? credential.companyId
+      }
+    }
+  })
   const pagination = {
     page: intPage,
     totalPage: Math.ceil(count / PAGE_SIZE),
   }
 
   return NextResponse.json({ products, ...pagination })
-}
\ No newline at end of file
+}
+
+// TODO: Search case sensitive
+// TODO: Submit harus di done 
\ No newline at end of file
-- 
cgit v1.2.3

