import { apiGet, apiPost, apiPut } from "@/api/api"; import { API_PATHS } from "@/api/api-paths"; import { handleApiResponse } from "@/api/handle-api-response"; import { mapTeamMemberDetail, mapTeamMemberListItems, } from "@/domain/team-members/mappers/team-member-mapper"; import type { CreateTeamMemberInput, TeamMemberCreated, TeamMemberDetail, TeamMemberListResult, UpdateTeamMemberInput, } from "@/domain/team-members/types/team-member"; export const teamMembersApi = { getList: async (): Promise => { const data = await apiGet(API_PATHS.teamMember.getList); const items = handleApiResponse(data); return { items: mapTeamMemberListItems(Array.isArray(items) ? items : []) }; }, create: async (input: CreateTeamMemberInput): Promise => { const data = await apiPost(API_PATHS.teamMember.create, input); return handleApiResponse(data); }, getDetail: async (id: string | number): Promise => { const data = await apiGet( `${API_PATHS.teamMember.detail}/${encodeURIComponent(String(id))}`, ); return mapTeamMemberDetail(handleApiResponse(data)); }, update: async (id: string | number, input: UpdateTeamMemberInput): Promise => { const data = await apiPut( `${API_PATHS.teamMember.detail}/${encodeURIComponent(String(id))}`, input, ); return mapTeamMemberDetail(handleApiResponse(data)); }, };