post.ts 1.0 KB

123456789101112131415161718192021222324252627282930
  1. 'use server';
  2. import { fetchJson } from '@/lib/utils/server';
  3. import { ResultDto } from '@/types/response/common';
  4. import {
  5. FeedPostDetail,
  6. FeedRepliesResponse,
  7. FeedSuggestedFollowsResponse
  8. } from '@/types/feed/post';
  9. export async function fetchFeedPost(postID: number): Promise<ResultDto<FeedPostDetail>> {
  10. return await fetchJson<FeedPostDetail>(`/api/feed/post/${postID}`, {
  11. method: 'GET',
  12. headers: { 'Accept': 'application/json' }
  13. });
  14. }
  15. export async function fetchFeedReplies(postID: number, page = 1, perPage = 30): Promise<ResultDto<FeedRepliesResponse>> {
  16. return await fetchJson<FeedRepliesResponse>(`/api/feed/post/${postID}/replies?page=${page}&perPage=${perPage}`, {
  17. method: 'GET',
  18. headers: { 'Accept': 'application/json' }
  19. });
  20. }
  21. export async function fetchSuggestedFollows(top = 5): Promise<ResultDto<FeedSuggestedFollowsResponse>> {
  22. return await fetchJson<FeedSuggestedFollowsResponse>(`/api/feed/suggested-follows?top=${top}`, {
  23. method: 'GET',
  24. headers: { 'Accept': 'application/json' }
  25. });
  26. }