Newer
Older
taehui / taehui-fe / src / app / www / autoEssay / [forumID] / [autoEssayID] / route.ts
@Taehui Taehui on 17 Mar 1 KB 2024-03-18 오전 12:51
import logIP from "@/app/www/media/logIP";
import validateMillis from "@/app/www/media/validateMillis";
import validateTotem from "@/app/www/media/validateTotem";
import {
  doModifyAutoEssay,
  getAutoEssays,
  postAutoEssay,
  wipeAutoEssay,
} from "@/app/www/logic/autoEssay";

export const GET = validateMillis(async (req, { params: { forumID } }) => {
  const avatarID = req.headers.get("avatarID");

  return Response.json(await getAutoEssays(forumID, avatarID as string));
});

export const POST = logIP(
  validateMillis(
    validateTotem(async (req, { params: { forumID } }) => {
      const avatarID = req.headers.get("avatarID");
      const { title, text } = await req.json();

      return Response.json(
        {
          autoEssayID: Number(
            await postAutoEssay(forumID, avatarID as string, title, text),
          ),
        },
        { status: 201 },
      );
    }),
  ),
);

export const PUT = logIP(
  validateMillis(
    validateTotem(async (req, { params: { autoEssayID } }) => {
      const avatarID = req.headers.get("avatarID");
      const { title, text } = await req.json();

      return new Response(undefined, {
        status: (await doModifyAutoEssay(
          Number(autoEssayID),
          avatarID as string,
          title,
          text,
        ))
          ? 204
          : 403,
      });
    }),
  ),
);

export const DELETE = logIP(
  validateMillis(
    validateTotem(async (req, { params: { autoEssayID } }) => {
      const avatarID = req.headers.get("avatarID");

      return new Response(undefined, {
        status: (await wipeAutoEssay(Number(autoEssayID), avatarID as string))
          ? 204
          : 403,
      });
    }),
  ),
);