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 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
});

View File

@@ -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
});