From bf1f2f0291b59e5d361852e7c2254b786db15b2f Mon Sep 17 00:00:00 2001 From: amel Date: Tue, 13 May 2025 17:44:59 +0800 Subject: [PATCH 1/3] upd: api mobile Deskripsi: - tambah member project - mengeluarkan anggota project - fix tanggal tambah task project No Issues --- .../api/mobile/project/[id]/member/route.ts | 55 ++++++++++--------- .../api/mobile/project/detail/[id]/route.ts | 8 ++- 2 files changed, 35 insertions(+), 28 deletions(-) diff --git a/src/app/api/mobile/project/[id]/member/route.ts b/src/app/api/mobile/project/[id]/member/route.ts index 0af5250..73e8672 100644 --- a/src/app/api/mobile/project/[id]/member/route.ts +++ b/src/app/api/mobile/project/[id]/member/route.ts @@ -1,6 +1,6 @@ import { prisma } from "@/module/_global"; -import { funGetUserByCookies } from "@/module/auth"; -import { createLogUser } from "@/module/user"; +import { funGetUserById } from "@/module/auth"; +import { createLogUserMobile } from "@/module/user"; import _ from "lodash"; import { NextResponse } from "next/server"; @@ -8,13 +8,13 @@ import { NextResponse } from "next/server"; // ADD MEMBER PROJECT export async function POST(request: Request, context: { params: { id: string } }) { try { - const user = await funGetUserByCookies() - if (user.id == undefined) { - return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 }); - } - const { id } = context.params - const { member } = (await request.json()) + const { member, user } = (await request.json()) + const userMobile = await funGetUserById({ id: String(user) }) + + if (userMobile.id == "null" || userMobile.id == undefined || userMobile.id == "") { + return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 200 }); + } const data = await prisma.project.count({ where: { @@ -27,7 +27,7 @@ export async function POST(request: Request, context: { params: { id: string } } { success: false, message: "Gagal mendapatkan kegiatan, data tidak ditemukan", }, - { status: 404 } + { status: 200 } ); } @@ -44,7 +44,7 @@ export async function POST(request: Request, context: { params: { id: string } } } // create log user - const log = await createLogUser({ act: 'CREATE', desc: 'User menambah anggota kegiatan', table: 'project', data: String(id) }) + const log = await createLogUserMobile({ act: 'CREATE', desc: 'User menambah anggota kegiatan', table: 'project', data: String(id), user: userMobile.id }) return NextResponse.json({ success: true, message: "Berhasil menambahkan anggota kegiatan" }, { status: 200 }); } catch (error) { @@ -56,13 +56,14 @@ export async function POST(request: Request, context: { params: { id: string } } // MENGELUARKAN ANGGOTA export async function DELETE(request: Request, context: { params: { id: string } }) { try { - const user = await funGetUserByCookies() - if (user.id == undefined) { - return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 }); - } - const { id } = context.params - const { idUser } = (await request.json()); + const { idUser, user } = (await request.json()); + + const userMobile = await funGetUserById({ id: String(user) }) + + if (userMobile.id == "null" || userMobile.id == undefined || userMobile.id == "") { + return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 200 }); + } const data = await prisma.project.count({ where: { @@ -77,7 +78,7 @@ export async function DELETE(request: Request, context: { params: { id: string } success: false, message: "Gagal, data tugas tidak ditemukan", }, - { status: 404 } + { status: 200 } ); } @@ -89,7 +90,7 @@ export async function DELETE(request: Request, context: { params: { id: string } }) // create log user - const log = await createLogUser({ act: 'DELETE', desc: 'User mengeluarkan anggota kegiatan', table: 'project', data: String(id) }) + const log = await createLogUserMobile({ act: 'DELETE', desc: 'User mengeluarkan anggota kegiatan', table: 'project', data: String(id), user: userMobile.id }) return NextResponse.json({ success: true, message: "Berhasil mengeluarkan anggota kegiatan" }, { status: 200 }); @@ -102,16 +103,18 @@ export async function DELETE(request: Request, context: { params: { id: string } //GET MEMBER ALL USER ID GROUP export async function GET(request: Request, context: { params: { id: string } }) { try { - const user = await funGetUserByCookies() - if (user.id == undefined) { - return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 }); + const { searchParams } = new URL(request.url); + const name = searchParams.get('search'); + const user = searchParams.get("user"); + + const userMobile = await funGetUserById({ id: String(user) }) + if (userMobile.id == "null" || userMobile.id == undefined || userMobile.id == "") { + return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 200 }); } const { id } = context.params - const groupId = user.idGroup - const userId = user.id - const { searchParams } = new URL(request.url); - const name = searchParams.get('search'); + const groupId = userMobile.idGroup + const userId = userMobile.id const data = await prisma.project.findUnique({ where: { @@ -126,7 +129,7 @@ export async function GET(request: Request, context: { params: { id: string } }) success: false, message: "Gagal, data tugas tidak ditemukan", }, - { status: 404 } + { status: 200 } ); } diff --git a/src/app/api/mobile/project/detail/[id]/route.ts b/src/app/api/mobile/project/detail/[id]/route.ts index e15a1fe..8a550da 100644 --- a/src/app/api/mobile/project/detail/[id]/route.ts +++ b/src/app/api/mobile/project/detail/[id]/route.ts @@ -1,6 +1,7 @@ import { prisma } from "@/module/_global"; import { funGetUserById } from "@/module/auth"; import { createLogUserMobile } from "@/module/user"; +import moment from "moment"; import { NextResponse } from "next/server"; @@ -168,7 +169,8 @@ export async function PUT(request: Request, context: { params: { id: string } }) export async function GET(request: Request, context: { params: { id: string } }) { try { const { id } = context.params; - const { user } = (await request.json()); + const { searchParams } = new URL(request.url); + const user = searchParams.get("user"); const userMobile = await funGetUserById({ id: String(user) }) if (userMobile.id == "null" || userMobile.id == undefined || userMobile.id == "") { @@ -182,6 +184,8 @@ export async function GET(request: Request, context: { params: { id: string } }) } }) + const fixData = { ...data, dateStart: moment(data?.dateStart).format('YYYY-MM-DD'), dateEnd: moment(data?.dateEnd).format('YYYY-MM-DD') } + if (!data) { return NextResponse.json( { @@ -191,7 +195,7 @@ export async function GET(request: Request, context: { params: { id: string } }) ); } - return NextResponse.json({ success: true, message: "Detail kegiatan berhasil ditemukan", data }, { status: 200 }); + return NextResponse.json({ success: true, message: "Detail kegiatan berhasil ditemukan", data: fixData }, { status: 200 }); } catch (error) { console.error(error); return NextResponse.json({ success: false, message: "Gagal mendapatkan kegiatan, coba lagi nanti (error: 500)", reason: (error as Error).message, }, { status: 500 }); From cda1bdd12edc7920d15cf8d4a7e24eb9af56f456 Mon Sep 17 00:00:00 2001 From: amel Date: Wed, 14 May 2025 14:21:33 +0800 Subject: [PATCH 2/3] upd: api mobile Deskripsi: - tambah project No Issues --- src/app/api/mobile/project/route.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/app/api/mobile/project/route.ts b/src/app/api/mobile/project/route.ts index faa8ef8..1eddfb8 100644 --- a/src/app/api/mobile/project/route.ts +++ b/src/app/api/mobile/project/route.ts @@ -1,3 +1,4 @@ +import { title } from 'process'; import { DIR, funSendWebPush, funUploadFile, prisma } from "@/module/_global"; import { funGetUserById } from "@/module/auth"; import { createLogUserMobile } from "@/module/user"; @@ -179,13 +180,14 @@ export async function POST(request: Request) { if (task.length > 0) { const dataProject = task.map((v: any) => ({ - ..._.omit(v, ["dateStart", "dateEnd", "name"]), + ..._.omit(v, ["dateStart", "dateEnd", "name", "dateEndFix", "dateStartFix"]), idProject: data.id, title: v.title, - dateStart: new Date(v.dateStart), - dateEnd: new Date(v.dateEnd), + dateStart: new Date(v.dateStartFix), + dateEnd: new Date(v.dateEndFix), })) + const insertTask = await prisma.projectTask.createMany({ data: dataProject }) @@ -337,7 +339,7 @@ export async function POST(request: Request) { const pushNotif = dataPush.filter((item) => item.subscription != undefined) - const sendWebPush = await funSendWebPush({ sub: pushNotif, message: { title: 'Kegiatan Baru', body: 'Terdapat kegiatan baru. Silahkan periksa detailnya.' } }) + // const sendWebPush = await funSendWebPush({ sub: pushNotif, message: { title: 'Kegiatan Baru', body: 'Terdapat kegiatan baru. Silahkan periksa detailnya.' } }) const insertNotif = await prisma.notifications.createMany({ data: dataNotif }) From 228b6f944f9f2a3418681253545d837d415376dc Mon Sep 17 00:00:00 2001 From: amel Date: Wed, 14 May 2025 17:37:43 +0800 Subject: [PATCH 3/3] upd: api mobile Deskripsi: - api create banner upload gambar No Issues --- src/app/api/mobile/banner/route.ts | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/app/api/mobile/banner/route.ts b/src/app/api/mobile/banner/route.ts index 66c5a96..9737ac1 100644 --- a/src/app/api/mobile/banner/route.ts +++ b/src/app/api/mobile/banner/route.ts @@ -1,5 +1,5 @@ import { DIR, funUploadFile, funViewDir, prisma } from "@/module/_global"; -import { funGetUserByCookies, funGetUserById } from "@/module/auth"; +import { funGetUserById } from "@/module/auth"; import { createLogUser } from "@/module/user"; import { NextResponse } from "next/server"; @@ -38,12 +38,16 @@ export async function GET(request: Request) { // CREATE BANNER export async function POST(request: Request) { try { - console.log('masuk') + console.log('masuklas') + console.log(request) const body = await request.formData() - const file = body.get("file") as File; + const fileAwal = body.get("file"); + const file = JSON.parse(fileAwal as string) + const fileFix = file as File + const fileCoba = new File([fileFix], fileFix.name, { type: fileFix.type}); const data = body.get("data"); - - console.log(data) + + console.log(body, fileCoba) const { title, user } = JSON.parse(data as string) @@ -54,12 +58,12 @@ export async function POST(request: Request) { const userLogin = await funGetUserById({ id: user }) - const fExt = file.name.split(".").pop() - const fName = file.name.replace("." + fExt, "") - const newFile = new File([file], file.name, { type: file.type }); + const fExt = fileCoba.name.split(".").pop() + const fName = fileCoba.name.replace("." + fExt, "") + const newFile = new File([fileCoba], fileCoba.name, { type: fileCoba.type }); const ini = funViewDir({ dirId: DIR.user }) - const upload = await funUploadFile({ file: newFile, dirId: DIR.banner }) + const upload = await funUploadFile({ file: fileCoba, dirId: DIR.banner }) if (upload.success) { const create = await prisma.bannerImage.create({ data: {