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 } }) {
|
export async function POST(request: Request, context: { params: { id: string } }) {
|
||||||
try {
|
try {
|
||||||
const { id } = context.params
|
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) })
|
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
|
// create log user
|
||||||
const log = await createLogUserMobile({ act: 'CREATE', desc: 'User membuat data tahapan kegiatan', table: 'projectTask', data: String(dataCreate.id), user: userMobile.id })
|
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 } }) {
|
export async function POST(request: Request, context: { params: { id: string } }) {
|
||||||
try {
|
try {
|
||||||
const { id } = context.params;
|
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) })
|
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 == "") {
|
||||||
@@ -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
|
// create log user
|
||||||
const log = await createLogUserMobile({ act: 'UPDATE', desc: 'User mengupdate tahapan kegiatan', table: 'projectTask', data: String(id), user: userMobile.id })
|
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) {
|
if (task.length > 0) {
|
||||||
const dataProject = task.map((v: any) => ({
|
const dataProject = task.map((v: any) => ({
|
||||||
..._.omit(v, ["dateStart", "dateEnd", "name", "dateEndFix", "dateStartFix"]),
|
..._.omit(v, ["dateStart", "dateEnd", "name", "dateEndFix", "dateStartFix", "dataDetail"]),
|
||||||
idProject: data.id,
|
idProject: data.id,
|
||||||
title: v.title,
|
title: v.title,
|
||||||
dateStart: new Date(v.dateStartFix),
|
dateStart: new Date(v.dateStartFix),
|
||||||
dateEnd: new Date(v.dateEndFix),
|
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({
|
const insertDetail = await prisma.projectTaskDetail.createMany({
|
||||||
data: dataProject
|
data: dataDetailFix
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user