upd: api mobile

Deskripsi:
- tambah kalender divisi
- edit divisi kalender

No Isues
This commit is contained in:
2025-07-17 17:46:33 +08:00
parent 07a1866c19
commit 3e9ebecb41
2 changed files with 20 additions and 13 deletions

View File

@@ -67,6 +67,7 @@ export async function GET(request: Request, context: { params: { id: string } })
const timeStart = moment.utc(dataCalender?.timeStart).format("HH:mm") const timeStart = moment.utc(dataCalender?.timeStart).format("HH:mm")
const timeEnd = moment.utc(dataCalender?.timeEnd).format("HH:mm") const timeEnd = moment.utc(dataCalender?.timeEnd).format("HH:mm")
const dateStart = moment.utc(dataCalender?.dateStart).format("LL") const dateStart = moment.utc(dataCalender?.dateStart).format("LL")
const dateStartFormat = moment.utc(dataCalender?.dateStart).format("DD-MM-YYYY")
const idCalendar = data?.DivisionCalendar.id const idCalendar = data?.DivisionCalendar.id
const title = data?.DivisionCalendar?.title const title = data?.DivisionCalendar?.title
const desc = data?.DivisionCalendar?.desc const desc = data?.DivisionCalendar?.desc
@@ -75,7 +76,7 @@ export async function GET(request: Request, context: { params: { id: string } })
const repeatValue = data?.DivisionCalendar?.repeatValue 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") { } else if (kategori == "member") {
const member = await prisma.divisionCalendarMember.findMany({ const member = await prisma.divisionCalendarMember.findMany({
where: { 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 y = new Date('1970-01-01 ' + timeStart)
const x = new Date('1970-01-01 ' + timeEnd) const x = new Date('1970-01-01 ' + timeEnd)
const timeStartFix = new Date(y.getTime() - (y.getTimezoneOffset() * 60000)).toISOString() 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, desc: desc,
createdBy: String(userId), createdBy: String(userId),
timeStart: timeStartFix, timeStart: timeStartFix,
dateStart: new Date(dateStart), dateStart: new Date(dateStartFix),
timeEnd: timeEndFix, timeEnd: timeEndFix,
linkMeet: linkMeet, linkMeet: linkMeet,
repeatEventTyper: repeatEventTyper, repeatEventTyper: repeatEventTyper,
@@ -229,7 +231,7 @@ export async function PUT(request: Request, context: { params: { id: string } })
const rule = new RRule({ const rule = new RRule({
freq, freq,
interval: 1, interval: 1,
dtstart: new Date(dateStart), dtstart: new Date(dateStartFix),
count: repeatValue count: repeatValue
}); });

View File

@@ -102,7 +102,7 @@ export async function GET(request: Request) {
//CREATE CALENDER //CREATE CALENDER
export async function POST(request: Request) { export async function POST(request: Request) {
try { 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) }) const userMobile = await funGetUserById({ id: String(user) })
if (userMobile.id == "null" || userMobile.id == undefined || userMobile.id == "") { 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 timeStartFix = new Date(y.getTime() - (y.getTimezoneOffset() * 60000)).toISOString()
const timeEndFix = new Date(x.getTime() - (x.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({ const data = await prisma.divisionCalendar.create({
data: { data: {
idDivision, idDivision,
createdBy: String(userId), createdBy: String(userId),
title, title,
dateStart: new Date(dateStart), dateStart: new Date(dateStartFix),
timeStart: timeStartFix, timeStart: timeStartFix,
timeEnd: timeEndFix, timeEnd: timeEndFix,
linkMeet, linkMeet,
repeatEventTyper, repeatEventTyper: repeatEventType,
desc, desc,
repeatValue: Number(repeatValue) repeatValue: Number(repeatValue)
}, },
@@ -145,18 +148,18 @@ export async function POST(request: Request) {
}); });
const freq: Frequency = repeatEventTyper === "yearly" ? RRule.YEARLY : const freq: Frequency = repeatEventType === "yearly" ? RRule.YEARLY :
repeatEventTyper === "monthly" ? RRule.MONTHLY : repeatEventType === "monthly" ? RRule.MONTHLY :
repeatEventTyper === "weekly" ? RRule.WEEKLY : repeatEventType === "weekly" ? RRule.WEEKLY :
repeatEventTyper === "daily" ? RRule.DAILY : repeatEventType === "daily" ? RRule.DAILY :
repeatEventTyper === "hourly" ? RRule.HOURLY : repeatEventType === "hourly" ? RRule.HOURLY :
repeatEventTyper === "minutely" ? RRule.MINUTELY : repeatEventType === "minutely" ? RRule.MINUTELY :
RRule.SECONDLY; RRule.SECONDLY;
const rule = new RRule({ const rule = new RRule({
freq, freq,
interval: 1, interval: 1,
dtstart: new Date(dateStart), dtstart: new Date(dateStartFix),
count: repeatValue count: repeatValue
}); });
@@ -173,12 +176,14 @@ export async function POST(request: Request) {
data: hasil data: hasil
}) })
const omitMember = member.map((v: any) => ({ const omitMember = member.map((v: any) => ({
..._.omit(v, ["name", "idUser", "img"]), ..._.omit(v, ["name", "idUser", "img"]),
idCalendar: data.id, idCalendar: data.id,
idUser: v.idUser idUser: v.idUser
})) }))
const insertMember = await prisma.divisionCalendarMember.createMany({ const insertMember = await prisma.divisionCalendarMember.createMany({
data: omitMember data: omitMember
}); });