From 3e9ebecb4157a5b89e98e2f5f0f25161e3cea288 Mon Sep 17 00:00:00 2001 From: amal Date: Thu, 17 Jul 2025 17:46:33 +0800 Subject: [PATCH] upd: api mobile Deskripsi: - tambah kalender divisi - edit divisi kalender No Isues --- src/app/api/mobile/calendar/[id]/route.ts | 8 +++++--- src/app/api/mobile/calendar/route.ts | 25 ++++++++++++++--------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/app/api/mobile/calendar/[id]/route.ts b/src/app/api/mobile/calendar/[id]/route.ts index 0df46ba..d920f6b 100644 --- a/src/app/api/mobile/calendar/[id]/route.ts +++ b/src/app/api/mobile/calendar/[id]/route.ts @@ -67,6 +67,7 @@ export async function GET(request: Request, context: { params: { id: string } }) const timeStart = moment.utc(dataCalender?.timeStart).format("HH:mm") const timeEnd = moment.utc(dataCalender?.timeEnd).format("HH:mm") const dateStart = moment.utc(dataCalender?.dateStart).format("LL") + const dateStartFormat = moment.utc(dataCalender?.dateStart).format("DD-MM-YYYY") const idCalendar = data?.DivisionCalendar.id const title = data?.DivisionCalendar?.title const desc = data?.DivisionCalendar?.desc @@ -75,7 +76,7 @@ export async function GET(request: Request, context: { params: { id: string } }) const repeatValue = data?.DivisionCalendar?.repeatValue - dataFix = { ...dataCalender, timeStart, timeEnd, dateStart, idCalendar, title, desc, linkMeet, repeatEventTyper, repeatValue } + dataFix = { ...dataCalender, timeStart, timeEnd, dateStart, dateStartFormat, idCalendar, title, desc, linkMeet, repeatEventTyper, repeatValue } } else if (kategori == "member") { const member = await prisma.divisionCalendarMember.findMany({ where: { @@ -192,6 +193,7 @@ export async function PUT(request: Request, context: { params: { id: string } }) ); } + const dateStartFix = moment(dateStart, 'DD-MM-YYYY').format('YYYY-MM-DD') const y = new Date('1970-01-01 ' + timeStart) const x = new Date('1970-01-01 ' + timeEnd) const timeStartFix = new Date(y.getTime() - (y.getTimezoneOffset() * 60000)).toISOString() @@ -206,7 +208,7 @@ export async function PUT(request: Request, context: { params: { id: string } }) desc: desc, createdBy: String(userId), timeStart: timeStartFix, - dateStart: new Date(dateStart), + dateStart: new Date(dateStartFix), timeEnd: timeEndFix, linkMeet: linkMeet, repeatEventTyper: repeatEventTyper, @@ -229,7 +231,7 @@ export async function PUT(request: Request, context: { params: { id: string } }) const rule = new RRule({ freq, interval: 1, - dtstart: new Date(dateStart), + dtstart: new Date(dateStartFix), count: repeatValue }); diff --git a/src/app/api/mobile/calendar/route.ts b/src/app/api/mobile/calendar/route.ts index d331d6b..5f0246a 100644 --- a/src/app/api/mobile/calendar/route.ts +++ b/src/app/api/mobile/calendar/route.ts @@ -102,7 +102,7 @@ export async function GET(request: Request) { //CREATE CALENDER export async function POST(request: Request) { try { - const { idDivision, title, desc, timeStart, timeEnd, dateStart, dateEnd, repeatEventTyper, member, linkMeet, repeatValue, user } = (await request.json()); + const { idDivision, title, desc, timeStart, timeEnd, dateStart, dateEnd, repeatEventType, member, linkMeet, repeatValue, user } = (await request.json()); const userMobile = await funGetUserById({ id: String(user) }) if (userMobile.id == "null" || userMobile.id == undefined || userMobile.id == "") { @@ -126,16 +126,19 @@ export async function POST(request: Request) { const timeStartFix = new Date(y.getTime() - (y.getTimezoneOffset() * 60000)).toISOString() const timeEndFix = new Date(x.getTime() - (x.getTimezoneOffset() * 60000)).toISOString() + const dateStartFix = moment(dateStart, 'DD-MM-YYYY').format('YYYY-MM-DD') + + const data = await prisma.divisionCalendar.create({ data: { idDivision, createdBy: String(userId), title, - dateStart: new Date(dateStart), + dateStart: new Date(dateStartFix), timeStart: timeStartFix, timeEnd: timeEndFix, linkMeet, - repeatEventTyper, + repeatEventTyper: repeatEventType, desc, repeatValue: Number(repeatValue) }, @@ -145,18 +148,18 @@ export async function POST(request: Request) { }); - const freq: Frequency = repeatEventTyper === "yearly" ? RRule.YEARLY : - repeatEventTyper === "monthly" ? RRule.MONTHLY : - repeatEventTyper === "weekly" ? RRule.WEEKLY : - repeatEventTyper === "daily" ? RRule.DAILY : - repeatEventTyper === "hourly" ? RRule.HOURLY : - repeatEventTyper === "minutely" ? RRule.MINUTELY : + const freq: Frequency = repeatEventType === "yearly" ? RRule.YEARLY : + repeatEventType === "monthly" ? RRule.MONTHLY : + repeatEventType === "weekly" ? RRule.WEEKLY : + repeatEventType === "daily" ? RRule.DAILY : + repeatEventType === "hourly" ? RRule.HOURLY : + repeatEventType === "minutely" ? RRule.MINUTELY : RRule.SECONDLY; const rule = new RRule({ freq, interval: 1, - dtstart: new Date(dateStart), + dtstart: new Date(dateStartFix), count: repeatValue }); @@ -173,12 +176,14 @@ export async function POST(request: Request) { data: hasil }) + const omitMember = member.map((v: any) => ({ ..._.omit(v, ["name", "idUser", "img"]), idCalendar: data.id, idUser: v.idUser })) + const insertMember = await prisma.divisionCalendarMember.createMany({ data: omitMember });