UnisKB/ui/src/api/model.ts

126 lines
3.0 KiB
TypeScript
Raw Normal View History

2023-11-28 10:26:31 +00:00
import { request } from './../request/index'
2023-11-22 10:37:08 +00:00
import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
2023-11-24 02:37:17 +00:00
import { type Ref } from 'vue'
2023-11-28 10:26:31 +00:00
import type {
modelRequest,
Provider,
ListModelRequest,
Model,
BaseModel,
2023-12-01 09:30:06 +00:00
CreateModelRequest,
EditModelRequest
2023-11-28 10:26:31 +00:00
} from '@/api/type/model'
import type { FormField } from '@/components/dynamics-form/type'
import type { KeyValue } from './type/common'
2023-11-22 10:37:08 +00:00
const prefix = '/model'
const prefix_provider = '/provider'
2023-11-23 06:30:28 +00:00
/**
*
* @params name, model_type, model_name
*/
2023-11-27 10:08:58 +00:00
const getModel: (
2023-12-07 07:21:28 +00:00
request?: ListModelRequest,
2023-11-27 10:08:58 +00:00
loading?: Ref<boolean>
) => Promise<Result<Array<Model>>> = (data, loading) => {
return get(`${prefix}`, data, loading)
2023-11-23 06:30:28 +00:00
}
2023-11-27 10:08:58 +00:00
2023-11-23 09:20:19 +00:00
/**
*
*/
2023-11-24 02:37:17 +00:00
const getProvider: (loading?: Ref<boolean>) => Promise<Result<Array<Provider>>> = (loading) => {
return get(`${prefix_provider}`, {}, loading)
2023-11-23 09:20:19 +00:00
}
2023-11-23 06:30:28 +00:00
2023-11-28 10:26:31 +00:00
/**
*
* @param provider
* @param model_type
* @param model_name
* @param loading
* @returns
*/
const getModelCreateForm: (
provider: string,
model_type: string,
model_name: string,
loading?: Ref<boolean>
) => Promise<Result<Array<FormField>>> = (provider, model_type, model_name, loading) => {
return get(`${prefix_provider}/model_form`, { provider, model_type, model_name }, loading)
}
/**
*
* @param provider
* @param loading
* @returns
*/
const listModelType: (
provider: string,
loading?: Ref<boolean>
) => Promise<Result<Array<KeyValue<string, string>>>> = (provider, loading?: Ref<boolean>) => {
return get(`${prefix_provider}/model_type_list`, { provider }, loading)
}
/**
*
* @param provider
* @param model_type
* @param loading
* @returns
*/
const listBaseModel: (
provider: string,
model_type: string,
loading?: Ref<boolean>
) => Promise<Result<Array<BaseModel>>> = (provider, model_type, loading) => {
return get(`${prefix_provider}/model_list`, { provider, model_type }, loading)
}
/**
*
* @param request
* @param loading
* @returns
*/
2023-12-01 09:30:06 +00:00
const createModel: (
request: CreateModelRequest,
loading?: Ref<boolean>
) => Promise<Result<Model>> = (request, loading) => {
return post(`${prefix}`, request, {}, loading)
}
/**
*
* @param request
* @param loading
* @returns
*/
const updateModel: (
model_id: string,
request: EditModelRequest,
loading?: Ref<boolean>
) => Promise<Result<Model>> = (model_id, request, loading) => {
console.log(request)
return put(`${prefix}/${model_id}`, request, {}, loading)
}
const deleteModel: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
model_id,
2023-11-28 10:26:31 +00:00
loading
) => {
2023-12-07 07:22:07 +00:00
return del(`${prefix}/${model_id}`, undefined, {}, loading)
2023-11-28 10:26:31 +00:00
}
2023-11-23 06:30:28 +00:00
export default {
2023-11-23 09:20:19 +00:00
getModel,
2023-11-28 10:26:31 +00:00
getProvider,
getModelCreateForm,
listModelType,
listBaseModel,
2023-12-01 09:30:06 +00:00
createModel,
updateModel,
deleteModel
2023-11-23 06:30:28 +00:00
}