import { IClient, IClientsViewModel } from '@/types/client.types'; import apiClient from '@api/api-client'; import { API_BASE_URL } from '@/shared/constants'; import { IServerResponse } from '@/types/common.types'; import { toQueryString } from '@/utils/toQueryString'; const rootUrl = `${API_BASE_URL}/clients`; export const clientsApiService = { // Get all clients async getClients( index: number, size: number, field: string | null, order: string | null, search?: string | null ): Promise> { const s = encodeURIComponent(search || ''); const queryString = toQueryString({ index, size, field, order, search: s }); const response = await apiClient.get>( `${rootUrl}${queryString}` ); return response.data; }, // Get single client by ID async getClientById(id: string): Promise> { const response = await apiClient.get>(`${rootUrl}/${id}`); return response.data; }, // Create new client async createClient(body: IClient): Promise> { const response = await apiClient.post>(rootUrl, body); return response.data; }, // Update existing client async updateClient(id: string, body: IClient): Promise> { const response = await apiClient.put>(`${rootUrl}/${id}`, body); return response.data; }, // Delete client async deleteClient(id: string): Promise> { const response = await apiClient.delete>(`${rootUrl}/${id}`); return response.data; }, };