Merge pull request #71 from bipproduction/lukman/29-juli-2024

Lukman/29 juli 2024
This commit is contained in:
Amalia
2024-07-29 13:59:09 +08:00
committed by GitHub
9 changed files with 90 additions and 14 deletions

View File

@@ -164,3 +164,24 @@ Content-Type: application/json
"id": "clz6dq88e0001b3mlyl4vjaf8"
}
###
POST http://localhost:3000/api/announcement/post?path=create-announcement HTTP/1.1
Content-Type: application/json
{
"title": "cobaannouncement1",
"desc": "coba announcement",
"idVillage": "121212",
"createBy": "111",
"groups": [
{
"idGroup": "1",
"idDivision": "1"
},
{
"idGroup": "1",
"idDivision": "2"
}
]
}

View File

@@ -1,5 +1,6 @@
import { apiAnnouncement } from "@/module/announcement";
import { NextRequest } from "next/server";
export async function GET(req: Request) {
export async function GET(req: NextRequest) {
return apiAnnouncement(req, "GET")
}

View File

@@ -1,5 +1,6 @@
import { apiAnnouncement } from "@/module/announcement";
import { NextRequest } from "next/server";
export async function POST(req: Request) {
export async function POST(req: NextRequest) {
return apiAnnouncement(req, "POST");
}

View File

@@ -1,7 +1,8 @@
import { NextRequest } from "next/server";
import { API_INDEX_ANNOUNCEMENT } from "./api_index";
type Method = "GET" | "POST";
export async function apiAnnouncement(req: Request, method: Method) {
export async function apiAnnouncement(req: NextRequest, method: Method) {
const { searchParams } = new URL(req.url);
const path = searchParams.get("path");
const act = API_INDEX_ANNOUNCEMENT.find(

View File

@@ -1,4 +1,9 @@
export async function getAllAnnouncement(req: Request) {
import { NextRequest } from "next/server";
export async function getAllAnnouncement(req: NextRequest) {
try {
return Response.json({
success: true,
});
} catch (error) {}
}

View File

@@ -1,5 +1,9 @@
export async function getOneAnnouncement(req: Request) {
try {
} catch (error) {}
import { prisma } from "@/module/_global";
import { NextRequest } from "next/server";
export async function getOneAnnouncement(req: NextRequest) {
try {
} catch (error) {
}
}

View File

@@ -1,5 +1,44 @@
export async function createAnnouncement(req: Request) {
try {
} catch (error) {}
import { prisma } from "@/module/_global";
import { NextRequest } from "next/server";
export async function createAnnouncement(req: NextRequest) {
try {
const data = await req.json();
const announcement = await prisma.annoucement.create({
data: {
title: data.title,
desc: data.desc,
idVillage: data.idVillage,
createdBy: data.createBy,
isActive: true,
},
select: {
id: true,
title: true,
desc: true,
},
});
const dataMember = data.groups.map((group: any) => ({
idAnnoucement: announcement.id,
idGroup: group.idGroup,
idDivision: group.idDivision,
isActive: true,
}));
const announcementMember = await prisma.annoucementMember.createMany({
data: dataMember,
});
return Response.json({
announcement: announcement,
announcementMember: announcementMember,
});
} catch (error) {
console.error(error);
return Response.json(
{ message: "Internal Server Error", success: false },
{ status: 500 }
);
}
}

View File

@@ -1,4 +1,6 @@
export async function deleteAnnouncement(req: Request) {
import { NextRequest } from "next/server";
export async function deleteAnnouncement(req: NextRequest) {
try {
} catch (error) {}
}

View File

@@ -1,4 +1,6 @@
export async function updateAnnouncement(req: Request) {
import { NextRequest } from "next/server";
export async function updateAnnouncement(req: NextRequest) {
try {
} catch (error) {}
}