comment.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. 'use server';
  2. import CommentListRequest from '@/dtos/request/forum/comment/commentListRequest';
  3. import CommentListResponse from '@/dtos/response/forum/comment/commentListResponse';
  4. import CommentDeleteRequest from '@/dtos/request/forum/comment/commentDeleteRequest';
  5. import CommentCreateResponse from '@/dtos/response/forum/comment/commentCreateResponse';
  6. import CommentUpdateResponse from '@/dtos/response/forum/comment/commentUpdateResponse';
  7. import { ResultDto } from '@/dtos/response/common';
  8. import { fetchJson } from '@/lib/utils/server';
  9. // 댓글 목록 조회
  10. export async function fetchCommentList(params: CommentListRequest): Promise<ResultDto<CommentListResponse>> {
  11. return await fetchJson<CommentListResponse>('/api/forum/comment/list', {
  12. method: 'GET',
  13. headers: {'Accept': 'application/json'},
  14. params: params
  15. });
  16. }
  17. // 댓글/답글 등록
  18. export async function fetchCommentCreate(formData: FormData): Promise<ResultDto<CommentCreateResponse>> {
  19. return await fetchJson<CommentCreateResponse>('/api/forum/comment/create', {
  20. method: 'POST',
  21. headers: {'Accept': 'application/json'},
  22. data: formData
  23. });
  24. }
  25. // 댓글/답글 수정
  26. export async function fetchCommentUpdate(formData: FormData): Promise<ResultDto<CommentUpdateResponse>> {
  27. return await fetchJson<CommentUpdateResponse>('/api/forum/comment/update', {
  28. method: 'PUT',
  29. headers: {'Accept': 'application/json'},
  30. data: formData
  31. });
  32. }
  33. // 댓글/답글 삭제
  34. export async function fetchCommentDelete(params: CommentDeleteRequest): Promise<ResultDto> {
  35. return await fetchJson('/api/forum/comment/delete', {
  36. method: 'DELETE',
  37. headers: {'Accept': 'application/json'},
  38. data: params
  39. });
  40. }