68 lines
1.6 KiB
TypeScript
68 lines
1.6 KiB
TypeScript
import { api } from '../../../services/api';
|
|
import type {
|
|
ApiResponse,
|
|
AtualizarClienteRequest,
|
|
Cliente,
|
|
ClientesListResponse,
|
|
CriarClienteRequest,
|
|
} from '../types/clienteTypes';
|
|
|
|
export type OrderDirection = 'ASC' | 'DESC';
|
|
|
|
export type ListarClientesParams = {
|
|
limite?: number;
|
|
offset?: number;
|
|
page?: number;
|
|
busca?: string;
|
|
pessoafisica?: string;
|
|
habilitado?: number | '';
|
|
cidade?: string;
|
|
estado?: string;
|
|
orderBy?: string;
|
|
orderDirection?: OrderDirection;
|
|
};
|
|
|
|
export async function listarClientes(
|
|
params?: ListarClientesParams
|
|
): Promise<ClientesListResponse> {
|
|
const response = await api.get<ClientesListResponse>('/clientes', {
|
|
params,
|
|
});
|
|
|
|
return response.data;
|
|
}
|
|
|
|
export async function buscarClientePorId(id: number): Promise<Cliente> {
|
|
const response = await api.get<ApiResponse<Cliente>>(`/clientes/${id}`);
|
|
return response.data.data;
|
|
}
|
|
|
|
export async function criarCliente(
|
|
data: CriarClienteRequest
|
|
): Promise<Cliente> {
|
|
const response = await api.post<ApiResponse<Cliente>>('/clientes', data);
|
|
return response.data.data;
|
|
}
|
|
|
|
export async function atualizarCliente(
|
|
id: number,
|
|
data: AtualizarClienteRequest
|
|
): Promise<Cliente> {
|
|
const response = await api.put<ApiResponse<Cliente>>(`/clientes/${id}`, data);
|
|
return response.data.data;
|
|
}
|
|
|
|
export async function alterarHabilitadoCliente(
|
|
id: number,
|
|
habilitado: number
|
|
): Promise<Cliente> {
|
|
const response = await api.patch<ApiResponse<Cliente>>(`/clientes/${id}/habilitado`, {
|
|
habilitado,
|
|
});
|
|
|
|
return response.data.data;
|
|
}
|
|
|
|
export async function deletarCliente(id: number): Promise<void> {
|
|
await api.delete(`/clientes/${id}`);
|
|
} |