Newer
Older
taehui / taehui-fe / src / app / www / systems / comment.ts
@Taehui Taehui on 17 Mar 1 KB 2024-03-17 오후 11:29
import DB from "@/app/www/system/DB";
import { CommentItem } from "@/app/www/type/CommentItem";
import { getDatetime } from "taehui-ts/date";

export const getComments = async (essayID: number) => {
  const comments = await DB.getComments(essayID);
  const data = new Map<number, CommentItem>();
  const commentItems = new Map<number, CommentItem>();

  comments.forEach(({ targetCommentID, commentID, ...comment }) => {
    const commentItem: CommentItem = {
      commentID,
      ...comment,
      comments: [],
    };
    if (targetCommentID !== -1) {
      data.get(targetCommentID)?.comments?.push(commentItem);
    } else {
      commentItems.set(commentID, commentItem);
    }
    data.set(commentID, commentItem);
  });

  return Array.from(commentItems.values());
};

export const postComment = async (
  targetCommentID: number,
  essayID: number,
  avatarID: string,
  level: number,
  text: string,
) => {
  return (
    1 <= level &&
    text &&
    DB.postComment(targetCommentID, essayID, avatarID, getDatetime(), text)
  );
};

export const doModifyComment = async (
  commentID: number,
  avatarID: string,
  text: string,
  level: number,
) => {
  return text && DB.doModifyComment(commentID, avatarID, text, level);
};

export const wipeComment = async (
  commentID: number,
  avatarID: string,
  level: number,
) => {
  return DB.wipeComment(commentID, avatarID, level);
};

export const getLatestComments = async () => {
  return DB.getLatestComments();
};