| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 | import { get, post } from './base'import type {  EndpointsResponse,} from '@/app/components/plugins/types'import {  useMutation,  useQuery,  useQueryClient,} from '@tanstack/react-query'const NAME_SPACE = 'endpoints'export const useEndpointList = (pluginID: string) => {  return useQuery({    queryKey: [NAME_SPACE, 'list', pluginID],    queryFn: () => get<EndpointsResponse>('/workspaces/current/endpoints/list/plugin', {      params: {        plugin_id: pluginID,        page: 1,        page_size: 100,      },    }),  })}export const useInvalidateEndpointList = () => {  const queryClient = useQueryClient()  return (pluginID: string) => {    queryClient.invalidateQueries(      {        queryKey: [NAME_SPACE, 'list', pluginID],      })  }}export const useCreateEndpoint = ({  onSuccess,  onError,}: {  onSuccess?: () => void  onError?: (error: any) => void}) => {  return useMutation({    mutationKey: [NAME_SPACE, 'create'],    mutationFn: (payload: { pluginUniqueID: string, state: Record<string, any> }) => {      const { pluginUniqueID, state } = payload      const newName = state.name      delete state.name      return post('/workspaces/current/endpoints/create', {        body: {          plugin_unique_identifier: pluginUniqueID,          settings: state,          name: newName,        },      })    },    onSuccess,    onError,  })}export const useUpdateEndpoint = ({  onSuccess,  onError,}: {  onSuccess?: () => void  onError?: (error: any) => void}) => {  return useMutation({    mutationKey: [NAME_SPACE, 'update'],    mutationFn: (payload: { endpointID: string, state: Record<string, any> }) => {      const { endpointID, state } = payload      const newName = state.name      delete state.name      return post('/workspaces/current/endpoints/update', {        body: {          endpoint_id: endpointID,          settings: state,          name: newName,        },      })    },    onSuccess,    onError,  })}export const useDeleteEndpoint = ({  onSuccess,  onError,}: {  onSuccess?: () => void  onError?: (error: any) => void}) => {  return useMutation({    mutationKey: [NAME_SPACE, 'delete'],    mutationFn: (endpointID: string) => {      return post('/workspaces/current/endpoints/delete', {        body: {          endpoint_id: endpointID,        },      })    },    onSuccess,    onError,  })}export const useEnableEndpoint = ({  onSuccess,  onError,}: {  onSuccess?: () => void  onError?: (error: any) => void}) => {  return useMutation({    mutationKey: [NAME_SPACE, 'enable'],    mutationFn: (endpointID: string) => {      return post('/workspaces/current/endpoints/enable', {        body: {          endpoint_id: endpointID,        },      })    },    onSuccess,    onError,  })}export const useDisableEndpoint = ({  onSuccess,  onError,}: {  onSuccess?: () => void  onError?: (error: any) => void}) => {  return useMutation({    mutationKey: [NAME_SPACE, 'disable'],    mutationFn: (endpointID: string) => {      return post('/workspaces/current/endpoints/disable', {        body: {          endpoint_id: endpointID,        },      })    },    onSuccess,    onError,  })}
 |