Newer
Older
taehui / taehui-fe / src / app / www / avatar / route.ts
@Taehui Taehui on 17 Mar 1 KB 2024-03-17 오후 11:29
import logIP from "@/app/www/mws/logIP";
import validateMillis from "@/app/www/mws/validateMillis";
import validateTotem from "@/app/www/mws/validateTotem";
import { doModifyAvatar, postAvatar } from "@/app/www/systems/avatar";

export const PUT = logIP(
  validateMillis(
    validateTotem(async (req) => {
      const avatarID = req.headers.get("avatarID") as string;
      const {
        avatarCipher,
        avatarCipherModified,
        avatarName,
        fax,
        avatarIntro,
      } = await req.json();

      if (
        !(await doModifyAvatar(
          avatarID,
          avatarCipher,
          avatarCipherModified,
          avatarName,
          fax,
          avatarIntro,
        ))
      ) {
        return new Response(undefined, { status: 403 });
      }
      return Response.json({
        isAvatarCipherModified: !!avatarCipherModified,
      });
    }),
  ),
);

export const POST = logIP(
  validateMillis(async (req) => {
    const { avatarID, avatarCipher, avatarName, fax } = await req.json();

    return new Response(undefined, {
      status: (await postAvatar(
        avatarID,
        avatarCipher,
        avatarName,
        req.headers.get("X-Real-IP") as string,
        fax,
      ))
        ? 204
        : 403,
    });
  }),
);