diff --git a/frontend/src/api/deviceTypes.ts b/frontend/src/api/deviceTypes.ts new file mode 100644 index 00000000..1425584a --- /dev/null +++ b/frontend/src/api/deviceTypes.ts @@ -0,0 +1,23 @@ +import apiClient from './client' +import type { DeviceTypeResponse, DeviceTypeCreate } from '@/types' + +export const deviceTypesApi = { + async list(): Promise { + const response = await apiClient.get('/device-types/') + return response.data + }, + + async create(data: DeviceTypeCreate): Promise { + const response = await apiClient.post('/device-types/', data) + return response.data + }, + + async update(id: string, data: Partial): Promise { + const response = await apiClient.put(`/device-types/${id}`, data) + return response.data + }, + + async remove(id: string): Promise { + await apiClient.delete(`/device-types/${id}`) + }, +} diff --git a/frontend/src/api/index.ts b/frontend/src/api/index.ts index b362e193..9ec66c9b 100644 --- a/frontend/src/api/index.ts +++ b/frontend/src/api/index.ts @@ -35,3 +35,5 @@ export { betaFeedbackApi } from './betaFeedback' export { branchesApi } from './branches' export { handoffsApi } from './handoffs' export { resolutionsApi } from './resolutions' +export { deviceTypesApi } from './deviceTypes' +export { networkDiagramsApi } from './networkDiagrams' diff --git a/frontend/src/api/networkDiagrams.ts b/frontend/src/api/networkDiagrams.ts new file mode 100644 index 00000000..c074fb00 --- /dev/null +++ b/frontend/src/api/networkDiagrams.ts @@ -0,0 +1,63 @@ +import apiClient from './client' +import type { + NetworkDiagramResponse, + NetworkDiagramListItem, + NetworkDiagramCreate, + NetworkDiagramUpdate, + AIGenerateRequest, + AIGenerateResponse, + DiagramImportData, + DiagramImportResponse, + DiagramExportResponse, +} from '@/types' + +export const networkDiagramsApi = { + async list(params?: { client_name?: string; search?: string }): Promise { + const response = await apiClient.get('/network-diagrams/', { params }) + return response.data + }, + + async get(id: string): Promise { + const response = await apiClient.get(`/network-diagrams/${id}`) + return response.data + }, + + async create(data: NetworkDiagramCreate): Promise { + const response = await apiClient.post('/network-diagrams/', data) + return response.data + }, + + async update(id: string, data: NetworkDiagramUpdate): Promise { + const response = await apiClient.put(`/network-diagrams/${id}`, data) + return response.data + }, + + async archive(id: string): Promise { + await apiClient.delete(`/network-diagrams/${id}`) + }, + + async duplicate(id: string): Promise { + const response = await apiClient.post(`/network-diagrams/${id}/duplicate`) + return response.data + }, + + async exportJson(id: string): Promise { + const response = await apiClient.get(`/network-diagrams/${id}/export`) + return response.data + }, + + async importJson(data: DiagramImportData): Promise { + const response = await apiClient.post('/network-diagrams/import', data) + return response.data + }, + + async aiGenerate(data: AIGenerateRequest): Promise { + const response = await apiClient.post('/network-diagrams/ai-generate', data) + return response.data + }, + + async listClients(): Promise { + const response = await apiClient.get('/network-diagrams/clients') + return response.data + }, +}