import { PagedResultDto } from '@/proxy' import apiService from './api.service' import { CrudEndpoint, CreateUpdateCrudEndpointDto, CreateUpdateCustomComponentDto, CustomComponent, CustomComponentDto, } from '@/proxy/developerKit/models' class DeveloperKitService { // Custom Component endpoints async getCustomComponents(): Promise> { const response = await apiService.fetchData>({ url: '/api/app/custom-component', method: 'GET', }) return response.data } async getActiveCustomComponents(): Promise> { const response = await apiService.fetchData>({ url: '/api/app/custom-component/active-components', method: 'GET', }) return response.data } async getCustomComponent(id: string): Promise { const response = await apiService.fetchData({ url: `/api/app/custom-component/${id}`, method: 'GET', }) return response.data } async createCustomComponent(component: CreateUpdateCustomComponentDto): Promise { const response = await apiService.fetchData({ url: '/api/app/custom-component', method: 'POST', data: component as any, }) return response.data } async updateCustomComponent( id: string, component: CreateUpdateCustomComponentDto, ): Promise { const response = await apiService.fetchData({ url: `/api/app/custom-component/${id}`, method: 'PUT', data: component as any, }) return response.data } async deleteCustomComponent(id: string): Promise { await apiService.fetchData({ url: `/api/app/custom-component/${id}`, method: 'DELETE', }) } // Generated Endpoint endpoints async getActiveGeneratedEndpoints(): Promise> { const response = await apiService.fetchData>({ url: '/api/app/crud-endpoint-generate/active-endpoints', method: 'GET', }) return response.data } async toggleGeneratedEndpoint(id: string): Promise { const response = await apiService.fetchData({ url: `/api/app/crud-endpoint-generate/${id}/toggle`, method: 'POST', }) return response.data } async generateCrudEndpoints(entityName: string): Promise> { const response = await apiService.fetchData>({ url: `/api/app/crud-endpoint-generate/generate-crud-endpoints/${entityName}`, method: 'POST', }) return response.data } async getGeneratedListEndpoints(): Promise> { const response = await apiService.fetchData>({ url: '/api/app/crud-endpoint-generate', method: 'GET', }) return response.data } async getGeneratedEndpoint(id: string): Promise { const response = await apiService.fetchData({ url: `/api/app/crud-endpoint-generate/${id}`, method: 'GET', }) return response.data } async createGeneratedEndpoint(data: CreateUpdateCrudEndpointDto): Promise { const response = await apiService.fetchData({ url: '/api/app/crud-endpoint-generate', method: 'POST', data: data as any, }) return response.data } async updateGeneratedEndpoint( id: string, endpoint: CreateUpdateCrudEndpointDto, ): Promise { const response = await apiService.fetchData({ url: `/api/app/crud-endpoint-generate/${id}`, method: 'PUT', data: endpoint as any, }) return response.data } async deleteGeneratedEndpoint(id: string): Promise { await apiService.fetchData({ url: `/api/app/crud-endpoint-generate/${id}`, method: 'DELETE', }) } } export const developerKitService = new DeveloperKitService()