feat: extract network map builder from PR 124 #137
23
frontend/src/api/deviceTypes.ts
Normal file
23
frontend/src/api/deviceTypes.ts
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
import apiClient from './client'
|
||||||
|
import type { DeviceTypeResponse, DeviceTypeCreate } from '@/types'
|
||||||
|
|
||||||
|
export const deviceTypesApi = {
|
||||||
|
async list(): Promise<DeviceTypeResponse[]> {
|
||||||
|
const response = await apiClient.get<DeviceTypeResponse[]>('/device-types/')
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
|
||||||
|
async create(data: DeviceTypeCreate): Promise<DeviceTypeResponse> {
|
||||||
|
const response = await apiClient.post<DeviceTypeResponse>('/device-types/', data)
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
|
||||||
|
async update(id: string, data: Partial<DeviceTypeCreate>): Promise<DeviceTypeResponse> {
|
||||||
|
const response = await apiClient.put<DeviceTypeResponse>(`/device-types/${id}`, data)
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
|
||||||
|
async remove(id: string): Promise<void> {
|
||||||
|
await apiClient.delete(`/device-types/${id}`)
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -35,3 +35,5 @@ export { betaFeedbackApi } from './betaFeedback'
|
|||||||
export { branchesApi } from './branches'
|
export { branchesApi } from './branches'
|
||||||
export { handoffsApi } from './handoffs'
|
export { handoffsApi } from './handoffs'
|
||||||
export { resolutionsApi } from './resolutions'
|
export { resolutionsApi } from './resolutions'
|
||||||
|
export { deviceTypesApi } from './deviceTypes'
|
||||||
|
export { networkDiagramsApi } from './networkDiagrams'
|
||||||
|
|||||||
63
frontend/src/api/networkDiagrams.ts
Normal file
63
frontend/src/api/networkDiagrams.ts
Normal file
@@ -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<NetworkDiagramListItem[]> {
|
||||||
|
const response = await apiClient.get<NetworkDiagramListItem[]>('/network-diagrams/', { params })
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
|
||||||
|
async get(id: string): Promise<NetworkDiagramResponse> {
|
||||||
|
const response = await apiClient.get<NetworkDiagramResponse>(`/network-diagrams/${id}`)
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
|
||||||
|
async create(data: NetworkDiagramCreate): Promise<NetworkDiagramResponse> {
|
||||||
|
const response = await apiClient.post<NetworkDiagramResponse>('/network-diagrams/', data)
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
|
||||||
|
async update(id: string, data: NetworkDiagramUpdate): Promise<NetworkDiagramResponse> {
|
||||||
|
const response = await apiClient.put<NetworkDiagramResponse>(`/network-diagrams/${id}`, data)
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
|
||||||
|
async archive(id: string): Promise<void> {
|
||||||
|
await apiClient.delete(`/network-diagrams/${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
async duplicate(id: string): Promise<NetworkDiagramResponse> {
|
||||||
|
const response = await apiClient.post<NetworkDiagramResponse>(`/network-diagrams/${id}/duplicate`)
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
|
||||||
|
async exportJson(id: string): Promise<DiagramExportResponse> {
|
||||||
|
const response = await apiClient.get<DiagramExportResponse>(`/network-diagrams/${id}/export`)
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
|
||||||
|
async importJson(data: DiagramImportData): Promise<DiagramImportResponse> {
|
||||||
|
const response = await apiClient.post<DiagramImportResponse>('/network-diagrams/import', data)
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
|
||||||
|
async aiGenerate(data: AIGenerateRequest): Promise<AIGenerateResponse> {
|
||||||
|
const response = await apiClient.post<AIGenerateResponse>('/network-diagrams/ai-generate', data)
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
|
||||||
|
async listClients(): Promise<string[]> {
|
||||||
|
const response = await apiClient.get<string[]>('/network-diagrams/clients')
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user