profile.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. 'use server';
  2. import { fetchJson } from '@/lib/utils/server';
  3. import { ResultDto } from '@/types/response/common';
  4. import {
  5. UserProfileDto,
  6. UserPostsResponse,
  7. UserCommentsResponse
  8. } from '@/types/account/profile';
  9. import { FeedUserPageResponse } from '@/types/feed/card';
  10. import { FollowListResponse } from '@/types/account/follow';
  11. export async function fetchUserProfile(memberSID: string): Promise<ResultDto<UserProfileDto>> {
  12. return await fetchJson<UserProfileDto>(`/api/member/${encodeURIComponent(memberSID)}`, {
  13. method: 'GET',
  14. headers: { 'Accept': 'application/json' }
  15. });
  16. }
  17. export async function fetchUserPosts(memberSID: string, page = 1, perPage = 20): Promise<ResultDto<UserPostsResponse>> {
  18. return await fetchJson<UserPostsResponse>(`/api/member/${encodeURIComponent(memberSID)}/posts?page=${page}&perPage=${perPage}`, {
  19. method: 'GET',
  20. headers: { 'Accept': 'application/json' }
  21. });
  22. }
  23. export async function fetchUserComments(memberSID: string, page = 1, perPage = 20): Promise<ResultDto<UserCommentsResponse>> {
  24. return await fetchJson<UserCommentsResponse>(`/api/member/${encodeURIComponent(memberSID)}/comments?page=${page}&perPage=${perPage}`, {
  25. method: 'GET',
  26. headers: { 'Accept': 'application/json' }
  27. });
  28. }
  29. export async function fetchUserFeed(memberSID: string, page = 1, perPage = 20): Promise<ResultDto<FeedUserPageResponse>> {
  30. return await fetchJson<FeedUserPageResponse>(`/api/member/${encodeURIComponent(memberSID)}/feed?page=${page}&perPage=${perPage}`, {
  31. method: 'GET',
  32. headers: { 'Accept': 'application/json' }
  33. });
  34. }
  35. export async function fetchUserFollowers(memberSID: string, page = 1, perPage = 20): Promise<ResultDto<FollowListResponse>> {
  36. return await fetchJson<FollowListResponse>(`/api/member/${encodeURIComponent(memberSID)}/followers?page=${page}&perPage=${perPage}`, {
  37. method: 'GET',
  38. headers: { 'Accept': 'application/json' }
  39. });
  40. }
  41. export async function fetchUserFollowing(memberSID: string, page = 1, perPage = 20): Promise<ResultDto<FollowListResponse>> {
  42. return await fetchJson<FollowListResponse>(`/api/member/${encodeURIComponent(memberSID)}/following?page=${page}&perPage=${perPage}`, {
  43. method: 'GET',
  44. headers: { 'Accept': 'application/json' }
  45. });
  46. }