Fix API mobile Investment

API – Investment (Mobile)
- src/app/api/mobile/investment/route.ts
- src/app/api/mobile/investment/[id]/[status]/route.ts
- src/app/api/mobile/investment/[id]/invoice/route.ts
- src/app/api/mobile/investment/[id]/document/route.ts

Docs
- PROMPT-AI.md

### No issue
This commit is contained in:
2026-02-06 17:37:47 +08:00
parent 6f5849aa29
commit 097758a431
5 changed files with 30 additions and 1 deletions

View File

@@ -1,5 +1,5 @@
File utama: src/app/api/mobile/voting/[id]/contribution/route.ts File utama: src/app/api/mobile/investment/[id]/invoice/route.ts
Terapkan pagination pada file "File utama" pada method GET Terapkan pagination pada file "File utama" pada method GET
Analisa juga file "File utama", jika belum memiliki page dari seachParams maka terapkan. Juga pastikan take dan skip sudah sesuai dengan pagination. Buat default nya menjadi 10 untuk take data Analisa juga file "File utama", jika belum memiliki page dari seachParams maka terapkan. Juga pastikan take dan skip sudah sesuai dengan pagination. Buat default nya menjadi 10 untuk take data

View File

@@ -1,6 +1,7 @@
import _ from "lodash"; import _ from "lodash";
import { NextResponse } from "next/server"; import { NextResponse } from "next/server";
import prisma from "@/lib/prisma"; import prisma from "@/lib/prisma";
import { PAGINATION_DEFAULT_TAKE } from "@/lib/constans-value/constansValue";
export { GET, PUT }; export { GET, PUT };
@@ -9,6 +10,10 @@ async function GET(
{ params }: { params: { id: string; status: string } } { params }: { params: { id: string; status: string } }
) { ) {
const { id, status } = params; const { id, status } = params;
const { searchParams } = new URL(request.url);
const page = Number(searchParams.get("page"));
const takeData = PAGINATION_DEFAULT_TAKE;
const skipData = page ? page * takeData - takeData : 0;
const fixStatusName = _.startCase(status); const fixStatusName = _.startCase(status);
try { try {
@@ -22,6 +27,8 @@ async function GET(
name: fixStatusName, name: fixStatusName,
}, },
}, },
take: page ? takeData : undefined,
skip: page ? skipData : undefined,
select: { select: {
id: true, id: true,
title: true, title: true,

View File

@@ -6,6 +6,7 @@ import {
NotificationMobileTitleType, NotificationMobileTitleType,
} from "../../../../../../../types/type-mobile-notification"; } from "../../../../../../../types/type-mobile-notification";
import { routeAdminMobile, routeUserMobile } from "@/lib/mobile/route-page-mobile"; import { routeAdminMobile, routeUserMobile } from "@/lib/mobile/route-page-mobile";
import { PAGINATION_DEFAULT_TAKE } from "@/lib/constans-value/constansValue";
export { POST, GET, DELETE }; export { POST, GET, DELETE };
@@ -98,6 +99,9 @@ async function GET(request: Request, { params }: { params: { id: string } }) {
const { id } = params; const { id } = params;
const { searchParams } = new URL(request.url); const { searchParams } = new URL(request.url);
const category = searchParams.get("category"); const category = searchParams.get("category");
const page = Number(searchParams.get("page"));
const takeData = PAGINATION_DEFAULT_TAKE
const skipData = page * takeData - takeData
try { try {
let fixData; let fixData;
@@ -117,6 +121,8 @@ async function GET(request: Request, { params }: { params: { id: string } }) {
investasiId: id, investasiId: id,
active: true, active: true,
}, },
take: page ? takeData : undefined,
skip: page ? skipData : undefined,
}); });
} }

View File

@@ -7,6 +7,7 @@ import {
NotificationMobileTitleType, NotificationMobileTitleType,
NotificationMobileBodyType, NotificationMobileBodyType,
} from "../../../../../../../types/type-mobile-notification"; } from "../../../../../../../types/type-mobile-notification";
import { PAGINATION_DEFAULT_TAKE } from "@/lib/constans-value/constansValue";
export { POST, GET, PUT }; export { POST, GET, PUT };
@@ -53,6 +54,9 @@ async function GET(request: Request, { params }: { params: { id: string } }) {
const { searchParams } = new URL(request.url); const { searchParams } = new URL(request.url);
const category = searchParams.get("category"); const category = searchParams.get("category");
const authorId = searchParams.get("authorId"); const authorId = searchParams.get("authorId");
const page = Number(searchParams.get("page"));
const takeData = PAGINATION_DEFAULT_TAKE;
const skipData = page ? page * takeData - takeData : 0;
console.log("[ID INVOICE]", id); console.log("[ID INVOICE]", id);
@@ -103,6 +107,8 @@ async function GET(request: Request, { params }: { params: { id: string } }) {
statusInvoiceId: "1", statusInvoiceId: "1",
isActive: true, isActive: true,
}, },
take: page ? takeData : undefined,
skip: page ? skipData : undefined,
select: { select: {
id: true, id: true,
nominal: true, nominal: true,
@@ -129,6 +135,8 @@ async function GET(request: Request, { params }: { params: { id: string } }) {
where: { where: {
authorId: authorId, authorId: authorId,
}, },
take: page ? takeData : undefined,
skip: page ? skipData : undefined,
select: { select: {
id: true, id: true,
statusInvoiceId: true, statusInvoiceId: true,

View File

@@ -5,6 +5,7 @@ import moment from "moment";
import { sendNotificationMobileToManyUser } from "@/lib/mobile/notification/send-notification"; import { sendNotificationMobileToManyUser } from "@/lib/mobile/notification/send-notification";
import { NotificationMobileBodyType } from "../../../../../types/type-mobile-notification"; import { NotificationMobileBodyType } from "../../../../../types/type-mobile-notification";
import { routeAdminMobile } from "@/lib/mobile/route-page-mobile"; import { routeAdminMobile } from "@/lib/mobile/route-page-mobile";
import { PAGINATION_DEFAULT_TAKE } from "@/lib/constans-value/constansValue";
export { POST, GET }; export { POST, GET };
@@ -73,6 +74,9 @@ async function GET(request: Request) {
const { searchParams } = new URL(request.url); const { searchParams } = new URL(request.url);
const category = searchParams.get("category"); const category = searchParams.get("category");
const authorId = searchParams.get("authorId"); const authorId = searchParams.get("authorId");
const page = Number(searchParams.get("page"));
const takeData = PAGINATION_DEFAULT_TAKE
const skipData = page ? page * takeData - takeData : 0;
console.log("[CATEGORY]", category); console.log("[CATEGORY]", category);
console.log("[AUTHOR ID]", authorId); console.log("[AUTHOR ID]", authorId);
@@ -132,6 +136,8 @@ async function GET(request: Request) {
where: { where: {
masterStatusInvestasiId: "1", masterStatusInvestasiId: "1",
}, },
take: page ? takeData : undefined,
skip: page ? skipData : undefined,
select: { select: {
id: true, id: true,
imageId: true, imageId: true,
@@ -156,6 +162,8 @@ async function GET(request: Request) {
authorId: authorId, authorId: authorId,
statusInvoiceId: "1", statusInvoiceId: "1",
}, },
take: page ? takeData : undefined,
skip: page ? skipData : undefined,
select: { select: {
id: true, id: true,
investasiId: true, investasiId: true,