mirror of https://github.com/langgenius/dify.git
150 lines
3.2 KiB
TypeScript
150 lines
3.2 KiB
TypeScript
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,
|
|
})
|
|
}
|