Fix API mobile

API – Voting (User)
- src/app/api/mobile/voting/route.ts
- src/app/api/mobile/voting/[id]/[status]/route.ts
- src/app/api/mobile/voting/[id]/contribution/route.ts

Docs
- PROMPT-AI.md

### No Issue
This commit is contained in:
2026-02-05 17:35:49 +08:00
parent 6aceb212e4
commit 6f5849aa29
4 changed files with 22 additions and 18 deletions

View File

@@ -1,5 +1,5 @@
File utama: src/app/api/mobile/voting/[id]/[status]/route.ts File utama: src/app/api/mobile/voting/[id]/contribution/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 };
@@ -10,13 +11,11 @@ async function GET(
) { ) {
try { try {
const { id, status } = params; const { id, status } = params;
console.log("[ID]", id);
const fixStatusName = _.startCase(status); const fixStatusName = _.startCase(status);
console.log("[STATUS]", fixStatusName);
const { searchParams } = new URL(request.url); const { searchParams } = new URL(request.url);
const page = Number(searchParams.get("page")) || 1; const page = Number(searchParams.get("page")) || 1;
const takeData = 10; const takeData = PAGINATION_DEFAULT_TAKE
const skipData = page * takeData - takeData; const skipData = page * takeData - takeData;
let data; let data;
@@ -101,9 +100,7 @@ async function PUT(
) { ) {
try { try {
const { id, status } = params; const { id, status } = params;
console.log("[ID]", id);
const fixStatusName = _.startCase(status); const fixStatusName = _.startCase(status);
console.log("[STATUS]", fixStatusName);
const checkData = await prisma.voting.findFirst({ const checkData = await prisma.voting.findFirst({
where: { where: {
@@ -119,8 +116,6 @@ async function PUT(
}, },
}); });
console.log("[CHECKDATA]", checkData);
if (!checkData) if (!checkData)
return NextResponse.json({ return NextResponse.json({
success: false, success: false,
@@ -155,8 +150,6 @@ async function PUT(
}, },
}); });
console.log("[UPDATE]", updateData);
return NextResponse.json({ return NextResponse.json({
success: true, success: true,
message: "Success update voting", message: "Success update voting",

View File

@@ -1,5 +1,6 @@
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 }; export { GET };
@@ -8,10 +9,9 @@ async function GET(request: Request, { params }: { params: { id: string } }) {
const { searchParams } = new URL(request.url); const { searchParams } = new URL(request.url);
const authorId = searchParams.get("authorId"); const authorId = searchParams.get("authorId");
const category = searchParams.get("category"); const category = searchParams.get("category");
const page = Number(searchParams.get("page"));
console.log("[ID]", id); const takeData = PAGINATION_DEFAULT_TAKE;
console.log("[AUTHOR ID]", authorId); const skipData = page ? page * takeData - takeData : 0;
console.log("[CATEGORY]", category);
let fixData; let fixData;
@@ -53,7 +53,10 @@ async function GET(request: Request, { params }: { params: { id: string } }) {
where: { where: {
votingId: id, votingId: id,
}, },
take: page ? takeData : undefined,
skip: page ? skipData : undefined,
select: { select: {
id: true,
Voting_DaftarNamaVote: { Voting_DaftarNamaVote: {
select: { select: {
value: true, value: true,
@@ -75,8 +78,6 @@ async function GET(request: Request, { params }: { params: { id: string } }) {
}, },
}); });
console.log("[LIST KONTRIBUTOR]", listKontributor);
fixData = listKontributor; fixData = listKontributor;
} }

View File

@@ -4,6 +4,7 @@ import _ from "lodash";
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 };
@@ -87,8 +88,9 @@ async function GET(request: Request) {
const category = searchParams.get("category"); const category = searchParams.get("category");
const authorId = searchParams.get("authorId"); const authorId = searchParams.get("authorId");
const userLoginId = searchParams.get("userLoginId"); const userLoginId = searchParams.get("userLoginId");
const page = Number(searchParams.get("page"));
console.log("userLoginId >>", userLoginId); const takeData = PAGINATION_DEFAULT_TAKE;
const skipData = page * takeData - takeData;
let fixData; let fixData;
@@ -123,6 +125,8 @@ async function GET(request: Request) {
}, },
}, },
}, },
take: page ? takeData : undefined,
skip: page ? skipData : undefined,
include: { include: {
Voting_DaftarNamaVote: { Voting_DaftarNamaVote: {
orderBy: { orderBy: {
@@ -154,6 +158,8 @@ async function GET(request: Request) {
where: { where: {
authorId: authorId, authorId: authorId,
}, },
take: page ? takeData : undefined,
skip: page ? skipData : undefined,
include: { include: {
Voting: { Voting: {
select: { select: {
@@ -211,6 +217,8 @@ async function GET(request: Request) {
mode: "insensitive", mode: "insensitive",
}, },
}, },
take: page ? takeData : undefined,
skip: page ? skipData : undefined,
include: { include: {
Voting_DaftarNamaVote: { Voting_DaftarNamaVote: {
orderBy: { orderBy: {
@@ -249,6 +257,8 @@ async function GET(request: Request) {
mode: "insensitive", mode: "insensitive",
}, },
}, },
take: page ? takeData : undefined,
skip: page ? skipData : undefined,
include: { include: {
Voting_DaftarNamaVote: { Voting_DaftarNamaVote: {
orderBy: { orderBy: {