feat(containers): implement CRUD operations and UI for container management
This commit is contained in:
69
frontend/src/lib/api/dashboard/refrence_data/containers.ts
Normal file
69
frontend/src/lib/api/dashboard/refrence_data/containers.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* API Client para Containers
|
||||
* Gestiona las operaciones CRUD para los contenedores
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface Container {
|
||||
key: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface ContainerListResponse {
|
||||
items: Container[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateContainerData {
|
||||
key: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface UpdateContainerData {
|
||||
key?: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Containers
|
||||
*/
|
||||
export const containersApi = {
|
||||
/**
|
||||
* Lista todos los containers con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<ContainerListResponse>(
|
||||
`/v1/containers?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un container por ID
|
||||
* @param key - ID del container
|
||||
*/
|
||||
get: (key: number) => api.get<Container>(`/v1/containers/${key}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo container
|
||||
* @param data - Datos del container a crear
|
||||
*/
|
||||
create: (data: CreateContainerData) =>
|
||||
api.post<Container>('/v1/containers', data),
|
||||
|
||||
/**
|
||||
* Actualiza un container existente
|
||||
* @param key - ID del container a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (key: number, data: UpdateContainerData) =>
|
||||
api.put<Container>(`/v1/containers/${key}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un container
|
||||
* @param key - ID del container a eliminar
|
||||
*/
|
||||
delete: (key: number) => api.delete(`/v1/containers/${key}`)
|
||||
};
|
||||
Reference in New Issue
Block a user