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' import useStore from '@/stores' const prefix: any = { _value: '/workspace/' } Object.defineProperty(prefix, 'value', { get: function () { const { user } = useStore() return this._value + user.getWorkspaceId() + '/tool' }, }) /** * 工具列表带分页(无分页) * @params 参数 {folder_id: string} */ const getToolList: ( data?: any, loading?: Ref, ) => Promise> = (data, loading) => { return get(`${prefix.value}`, data, loading) } /** * 工具列表带分页(无分页) */ const getAllToolList: ( data?: any, loading?: Ref, ) => Promise> = (data, loading) => { return get(`${prefix.value}/tool_list`, data, loading) } /** * 工具列表带分页 * @param 参数 * param { "folder_id": "string", "name": "string", "tool_type": "string", } */ const getToolListPage: ( page: pageRequest, param?: any, loading?: Ref, ) => Promise> = (page, param, loading) => { return get(`${prefix.value}/${page.current_page}/${page.page_size}`, param, loading) } /** * 创建工具 * @param 参数 */ const postTool: (data: toolData, loading?: Ref) => Promise> = ( data, loading, ) => { return post(`${prefix.value}`, data, undefined, loading) } /** * 修改工具 * @param 参数 */ const putTool: (tool_id: string, data: toolData, loading?: Ref) => Promise> = ( tool_id, data, loading, ) => { return put(`${prefix.value}/${tool_id}`, data, undefined, loading) } /** * @param 参数 */ const postToolTestConnection: (data: toolData, loading?: Ref) => Promise> = ( data, loading, ) => { return post(`${prefix.value}/test_connection`, data, undefined, loading) } /** * 获取工具详情 * @param tool_id 工具id * @param loading 加载器 * @returns 函数详情 */ const getToolById: (tool_id: string, loading?: Ref) => Promise> = ( tool_id, loading, ) => { return get(`${prefix.value}/${tool_id}`, undefined, loading) } /** * 删除工具 * @param 参数 tool_id */ const delTool: (tool_id: string, loading?: Ref) => Promise> = ( tool_id, loading, ) => { return del(`${prefix.value}/${tool_id}`, undefined, {}, loading) } const putToolIcon: (id: string, data: any, loading?: Ref) => Promise> = ( id, data, loading, ) => { return put(`${prefix.value}/${id}/edit_icon`, data, undefined, loading) } const exportTool = (id: string, name: string, loading?: Ref) => { return exportFile(name + '.tool', `${prefix.value}/${id}/export`, undefined, loading) } /** * 调试工具 * @param 参数 */ const postToolDebug: (data: any, loading?: Ref) => Promise> = ( data: any, loading, ) => { return post(`${prefix.value}/debug`, data, undefined, loading) } const postImportTool: (data: any, loading?: Ref) => Promise> = ( data, loading, ) => { return post(`${prefix.value}/import`, data, undefined, loading) } const postPylint: (code: string, loading?: Ref) => Promise> = ( code, loading, ) => { return post(`${prefix.value}/pylint`, { code }, {}, loading) } /** * 工具商店-添加系统内置 */ const addInternalTool: ( tool_id: string, param: AddInternalToolParam, loading?: Ref, ) => Promise> = (tool_id, param, loading) => { return post(`${prefix.value}/${tool_id}/add_internal_tool`, param, undefined, loading) } /** * 工具商店-添加 */ const addStoreTool: ( tool_id: string, param: AddInternalToolParam, loading?: Ref, ) => Promise> = (tool_id, param, loading) => { return post(`${prefix.value}/${tool_id}/add_store_tool`, param, undefined, loading) } const updateStoreTool: ( tool_id: string, param: AddInternalToolParam, loading?: Ref, ) => Promise> = (tool_id, param, loading) => { return post(`${prefix.value}/${tool_id}/update_store_tool`, param, undefined, loading) } export default { getToolList, getAllToolList, getToolListPage, putTool, getToolById, postTool, postToolDebug, postImportTool, postPylint, exportTool, putToolIcon, delTool, addInternalTool, addStoreTool, updateStoreTool, postToolTestConnection }