UnisKB/ui/src/api/tool/tool.ts

155 lines
3.5 KiB
TypeScript
Raw Normal View History

2025-06-09 13:27:12 +00:00
import { Result } from '@/request/Result'
import { get, post, del, put, exportFile } from '@/request/index'
import { type Ref } from 'vue'
import type { pageRequest } from '@/api/type/common'
import type { AddInternalToolParam, toolData } from '@/api/type/tool'
2025-06-16 11:00:46 +00:00
import useStore from '@/stores'
const prefix: any = { _value: '/workspace/' }
Object.defineProperty(prefix, 'value', {
get: function () {
const { user } = useStore()
return this._value + user.getWorkspaceId() + '/tool'
},
})
2025-06-06 01:39:01 +00:00
2025-05-08 08:23:03 +00:00
/**
2025-06-17 09:44:52 +00:00
*
2025-05-08 08:23:03 +00:00
* @params {folder_id: string}
*/
const getToolList: (
data?: any,
loading?: Ref<boolean>,
) => Promise<Result<{ tools: any[]; folders: any[] }>> = (data, loading) => {
2025-06-16 11:00:46 +00:00
return get(`${prefix.value}`, data, loading)
2025-05-08 08:23:03 +00:00
}
/**
2025-06-17 09:44:52 +00:00
*
2025-05-08 08:23:03 +00:00
* @param
2025-06-06 01:39:01 +00:00
* param {
"folder_id": "string",
"name": "string",
"tool_type": "string",
}
2025-05-08 08:23:03 +00:00
*/
2025-06-17 09:44:52 +00:00
const getToolListPage: (
2025-05-08 08:23:03 +00:00
page: pageRequest,
param?: any,
loading?: Ref<boolean>,
2025-06-06 01:39:01 +00:00
) => Promise<Result<any>> = (page, param, loading) => {
2025-06-16 11:00:46 +00:00
return get(`${prefix.value}/${page.current_page}/${page.page_size}`, param, loading)
2025-05-08 08:23:03 +00:00
}
2025-05-26 10:10:18 +00:00
/**
*
* @param
*/
2025-06-09 13:27:12 +00:00
const postTool: (data: toolData, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading,
) => {
2025-06-16 11:00:46 +00:00
return post(`${prefix.value}`, data, undefined, loading)
2025-05-26 10:10:18 +00:00
}
2025-05-15 10:21:38 +00:00
/**
*
* @param
*/
2025-06-09 13:27:12 +00:00
const putTool: (tool_id: string, data: toolData, loading?: Ref<boolean>) => Promise<Result<any>> = (
tool_id,
data,
loading,
) => {
2025-06-16 11:00:46 +00:00
return put(`${prefix.value}/${tool_id}`, data, undefined, loading)
2025-05-15 10:21:38 +00:00
}
/**
*
* @param tool_id id
* @param loading
* @returns
*/
2025-06-09 13:27:12 +00:00
const getToolById: (tool_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
tool_id,
loading,
) => {
2025-06-16 11:00:46 +00:00
return get(`${prefix.value}/${tool_id}`, undefined, loading)
2025-06-04 03:24:04 +00:00
}
2025-06-09 13:27:12 +00:00
/**
*
* @param tool_id
*/
const delTool: (tool_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
tool_id,
loading,
) => {
2025-06-16 11:00:46 +00:00
return del(`${prefix.value}/${tool_id}`, undefined, {}, loading)
2025-06-09 13:27:12 +00:00
}
const putToolIcon: (id: string, data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
id,
data,
loading,
) => {
2025-06-16 11:00:46 +00:00
return put(`${prefix.value}/${id}/edit_icon`, data, undefined, loading)
2025-06-09 13:27:12 +00:00
}
const exportTool = (id: string, name: string, loading?: Ref<boolean>) => {
return exportFile(name + '.tool', `${prefix.value}/${id}/export`, undefined, loading)
2025-05-15 10:21:38 +00:00
}
2025-05-26 10:10:18 +00:00
/**
*
* @param
*/
2025-06-09 13:27:12 +00:00
const postToolDebug: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data: any,
loading,
) => {
2025-06-16 11:00:46 +00:00
return post(`${prefix.value}/debug`, data, undefined, loading)
2025-06-09 13:27:12 +00:00
}
const postImportTool: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading,
) => {
2025-06-16 11:00:46 +00:00
return post(`${prefix.value}/import`, data, undefined, loading)
2025-06-09 13:27:12 +00:00
}
const postPylint: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
code,
loading,
) => {
2025-06-16 11:00:46 +00:00
return post(`${prefix.value}/pylint`, { code }, {}, loading)
2025-06-09 13:27:12 +00:00
}
2025-05-26 10:10:18 +00:00
/**
* -
*/
const addInternalTool: (
tool_id: string,
param: AddInternalToolParam,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (tool_id, param, loading) => {
return post(`${prefix.value}/${tool_id}/add_internal_tool`, param, undefined, loading)
}
2025-05-08 08:23:03 +00:00
export default {
getToolList,
2025-06-17 09:44:52 +00:00
getToolListPage,
2025-05-26 10:10:18 +00:00
putTool,
getToolById,
2025-06-04 03:24:04 +00:00
postTool,
2025-06-09 13:27:12 +00:00
postToolDebug,
postImportTool,
postPylint,
exportTool,
putToolIcon,
2025-06-20 09:47:58 +00:00
delTool,
addInternalTool,
2025-05-08 08:23:03 +00:00
}