upd: task divisi

Deskripsi:
- update task divisi
- delete detail task
- update status task
- edit detail task

No Issues
This commit is contained in:
amel
2024-08-19 13:22:02 +08:00
parent 390e13544a
commit e8fcf44558
11 changed files with 592 additions and 20 deletions

View File

@@ -36,7 +36,7 @@ export async function GET(request: Request, context: { params: { id: string } })
isActive: true,
idProject: String(id)
},
orderBy:{
orderBy: {
updatedAt: 'desc'
}
})
@@ -61,6 +61,9 @@ export async function GET(request: Request, context: { params: { id: string } })
status: true,
dateStart: true,
dateEnd: true,
},
orderBy: {
status: 'desc'
}
})

View File

@@ -0,0 +1,187 @@
import { prisma } from "@/module/_global";
import { funGetUserByCookies } from "@/module/auth";
import moment from "moment";
import { NextResponse } from "next/server";
// HAPUS DETAIL TASK
export async function DELETE(request: Request, context: { params: { id: string } }) {
try {
const user = await funGetUserByCookies()
if (user.id == undefined) {
return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 });
}
const { id } = context.params;
const data = await prisma.divisionProjectTask.count({
where: {
id: id,
},
});
if (data == 0) {
return NextResponse.json(
{
success: false,
message: "Hapus tugas gagal, data tidak ditemukan",
},
{ status: 404 }
);
}
const update = await prisma.divisionProjectTask.update({
where: {
id: id,
},
data: {
isActive: false,
},
});
return NextResponse.json(
{
success: true,
message: "Tugas berhasil dihapus",
data,
},
{ status: 200 }
);
} catch (error) {
console.log(error);
return NextResponse.json({ success: false, message: "Gagal menghapus tugas divisi, coba lagi nanti", reason: (error as Error).message, }, { status: 500 });
}
}
// EDIT STATUS DETAIL TASK
export async function PUT(request: Request, context: { params: { id: string } }) {
try {
const user = await funGetUserByCookies()
if (user.id == undefined) {
return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 });
}
const { id } = context.params;
const { status } = (await request.json());
const data = await prisma.divisionProjectTask.count({
where: {
id: id,
},
});
if (data == 0) {
return NextResponse.json(
{
success: false,
message: "Update status detail tugas gagal, data tidak ditemukan",
},
{ status: 404 }
);
}
const update = await prisma.divisionProjectTask.update({
where: {
id: id,
},
data: {
status: status,
},
});
return NextResponse.json(
{
success: true,
message: "Status detail tugas berhasil diupdate",
data,
},
{ status: 200 }
);
} catch (error) {
console.log(error);
return NextResponse.json({ success: false, message: "Gagal mengupdate status detail tugas, coba lagi nanti", reason: (error as Error).message, }, { status: 500 });
}
}
// GET ONE DETAIL TASK
export async function GET(request: Request, context: { params: { id: string } }) {
try {
const { id } = context.params;
const user = await funGetUserByCookies()
if (user.id == undefined) {
return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 });
}
const data = await prisma.divisionProjectTask.findUnique({
where: {
id: String(id),
isActive: true
}
});
if (!data) {
return NextResponse.json({ success: false, message: "Gagal mendapatkan detail tugas, data tidak ditemukan", }, { status: 404 });
}
return NextResponse.json({ success: true, message: "Berhasil mendapatkan detail tugas divisi", data }, { status: 200 });
}
catch (error) {
console.log(error);
return NextResponse.json({ success: false, message: "Gagal mendapatkan detail tugas divisi, coba lagi nanti", reason: (error as Error).message, }, { status: 500 });
}
}
// EDIT DETAIL TASK
export async function POST(request: Request, context: { params: { id: string } }) {
try {
const user = await funGetUserByCookies()
if (user.id == undefined) {
return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 });
}
const { id } = context.params;
const { title, dateStart, dateEnd } = (await request.json());
const data = await prisma.divisionProjectTask.count({
where: {
id: id,
},
});
if (data == 0) {
return NextResponse.json(
{
success: false,
message: "Edit detail tugas gagal, data tidak ditemukan",
},
{ status: 404 }
);
}
const update = await prisma.divisionProjectTask.update({
where: {
id: id,
},
data: {
title,
dateStart: new Date(moment(dateStart).format('YYYY-MM-DD')),
dateEnd: new Date(moment(dateEnd).format('YYYY-MM-DD')),
},
});
return NextResponse.json(
{
success: true,
message: "Detail tugas berhasil diedit",
data,
},
{ status: 200 }
);
} catch (error) {
console.log(error);
return NextResponse.json({ success: false, message: "Gagal mengedit detail tugas, coba lagi nanti", reason: (error as Error).message, }, { status: 500 });
}
}

View File

@@ -1,6 +1,7 @@
import { funUploadFile, prisma } from "@/module/_global";
import { funGetUserByCookies } from "@/module/auth";
import _, { ceil } from "lodash";
import moment from "moment";
import { NextResponse } from "next/server";
@@ -115,8 +116,8 @@ export async function POST(request: Request) {
idDivision: idDivision,
idProject: data.id,
title: v.title,
dateStart: new Date(v.dateStart),
dateEnd: new Date(v.dateEnd),
dateStart: new Date(moment(v.dateStart).format('YYYY-MM-DD')),
dateEnd: new Date(moment(v.dateEnd).format('YYYY-MM-DD')),
}))
const insertTask = await prisma.divisionProjectTask.createMany({
@@ -139,7 +140,6 @@ export async function POST(request: Request) {
let fileFix: any[] = []
console.log("amalia",file)
if (file.length > 0) {
file.map((v: any, index: any) => {
@@ -158,7 +158,6 @@ export async function POST(request: Request) {
fileFix.push(dataFile)
})
console.log(fileFix)
const insertFile = await prisma.divisionProjectFile.createMany({
data: fileFix
})
@@ -170,6 +169,6 @@ export async function POST(request: Request) {
} catch (error) {
console.log(error);
return NextResponse.json({ success: false, message: "Gagal membuat tugas divisiii, coba lagi nanti", reason: (error as Error).message, }, { status: 500 });
return NextResponse.json({ success: false, message: "Gagal membuat tugas divisi, coba lagi nanti", reason: (error as Error).message, }, { status: 500 });
}
}