upd: api mobile project fitur baru
Deskripsi: - api mobile get data detail tugas project - api mobile tambah detail tugas project - api mobile edit detail tugas project - api mobile tambah data project > detail tugas No Issues
This commit is contained in:
@@ -162,7 +162,7 @@ export async function GET(request: Request, context: { params: { id: string } })
|
||||
export async function POST(request: Request, context: { params: { id: string } }) {
|
||||
try {
|
||||
const { id } = context.params
|
||||
const { name, dateStart, dateEnd, user } = await request.json()
|
||||
const { name, dateStart, dateEnd, user, dataDetail } = await request.json()
|
||||
|
||||
const userMobile = await funGetUserById({ id: String(user) })
|
||||
|
||||
@@ -197,6 +197,21 @@ export async function POST(request: Request, context: { params: { id: string } }
|
||||
}
|
||||
})
|
||||
|
||||
if (dataDetail.length > 0) {
|
||||
const dataDetailFix = dataDetail.map((v: any) => ({
|
||||
...v,
|
||||
idTask: dataCreate.id,
|
||||
date: new Date(v.date),
|
||||
timeStart: v.timeStart == null ? null : new Date(new Date('1970-01-01 ' + v.timeStart).getTime() - (new Date('1970-01-01 ' + v.timeStart).getTimezoneOffset() * 60000)).toISOString(),
|
||||
timeEnd: v.timeEnd == null ? null : new Date(new Date('1970-01-01 ' + v.timeEnd).getTime() - (new Date('1970-01-01 ' + v.timeEnd).getTimezoneOffset() * 60000)).toISOString(),
|
||||
}))
|
||||
|
||||
|
||||
const dataDetailCreate = await prisma.projectTaskDetail.createMany({
|
||||
data: dataDetailFix
|
||||
})
|
||||
}
|
||||
|
||||
// create log user
|
||||
const log = await createLogUserMobile({ act: 'CREATE', desc: 'User membuat data tahapan kegiatan', table: 'projectTask', data: String(dataCreate.id), user: userMobile.id })
|
||||
|
||||
|
||||
@@ -231,7 +231,7 @@ export async function GET(request: Request, context: { params: { id: string } })
|
||||
export async function POST(request: Request, context: { params: { id: string } }) {
|
||||
try {
|
||||
const { id } = context.params;
|
||||
const { title, dateStart, dateEnd, user } = (await request.json());
|
||||
const { title, dateStart, dateEnd, user, dataDetail } = (await request.json());
|
||||
const userMobile = await funGetUserById({ id: String(user) })
|
||||
|
||||
if (userMobile.id == "null" || userMobile.id == undefined || userMobile.id == "") {
|
||||
@@ -264,6 +264,26 @@ export async function POST(request: Request, context: { params: { id: string } }
|
||||
}
|
||||
})
|
||||
|
||||
const dataDetailDelete = await prisma.projectTaskDetail.deleteMany({
|
||||
where: {
|
||||
idTask: id
|
||||
}
|
||||
})
|
||||
|
||||
if (dataDetail.length > 0) {
|
||||
const dataDetailFix = dataDetail.map((v: any) => ({
|
||||
...v,
|
||||
idTask: id,
|
||||
date: new Date(v.date),
|
||||
timeStart: v.timeStart == null ? null : new Date(new Date('1970-01-01 ' + v.timeStart).getTime() - (new Date('1970-01-01 ' + v.timeStart).getTimezoneOffset() * 60000)).toISOString(),
|
||||
timeEnd: v.timeEnd == null ? null : new Date(new Date('1970-01-01 ' + v.timeEnd).getTime() - (new Date('1970-01-01 ' + v.timeEnd).getTimezoneOffset() * 60000)).toISOString(),
|
||||
}))
|
||||
|
||||
const dataDetailCreate = await prisma.projectTaskDetail.createMany({
|
||||
data: dataDetailFix
|
||||
})
|
||||
}
|
||||
|
||||
// create log user
|
||||
const log = await createLogUserMobile({ act: 'UPDATE', desc: 'User mengupdate tahapan kegiatan', table: 'projectTask', data: String(id), user: userMobile.id })
|
||||
|
||||
|
||||
@@ -179,16 +179,33 @@ export async function POST(request: Request) {
|
||||
|
||||
if (task.length > 0) {
|
||||
const dataProject = task.map((v: any) => ({
|
||||
..._.omit(v, ["dateStart", "dateEnd", "name", "dateEndFix", "dateStartFix"]),
|
||||
..._.omit(v, ["dateStart", "dateEnd", "name", "dateEndFix", "dateStartFix", "dataDetail"]),
|
||||
idProject: data.id,
|
||||
title: v.title,
|
||||
dateStart: new Date(v.dateStartFix),
|
||||
dateEnd: new Date(v.dateEndFix),
|
||||
}))
|
||||
|
||||
let dataDetailFix = []
|
||||
for (let i = 0; i < dataProject.length; i++) {
|
||||
const insertTask = await prisma.projectTask.create({
|
||||
data: dataProject[i],
|
||||
select: {
|
||||
id: true
|
||||
}
|
||||
})
|
||||
const dataDetail = task[i].dataDetail.map((v: any) => ({
|
||||
...v,
|
||||
idTask: insertTask.id,
|
||||
date: new Date(v.date),
|
||||
timeStart: v.timeStart == null ? null : new Date(new Date('1970-01-01 ' + v.timeStart).getTime() - (new Date('1970-01-01 ' + v.timeStart).getTimezoneOffset() * 60000)).toISOString(),
|
||||
timeEnd: v.timeEnd == null ? null : new Date(new Date('1970-01-01 ' + v.timeEnd).getTime() - (new Date('1970-01-01 ' + v.timeEnd).getTimezoneOffset() * 60000)).toISOString(),
|
||||
}))
|
||||
dataDetailFix.push(...dataDetail)
|
||||
}
|
||||
|
||||
const insertTask = await prisma.projectTask.createMany({
|
||||
data: dataProject
|
||||
const insertDetail = await prisma.projectTaskDetail.createMany({
|
||||
data: dataDetailFix
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user