| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import { get, post } from './base'
- import type {
- FileUploadConfigResponse,
- Member,
- StructuredOutputRulesRequestBody,
- StructuredOutputRulesResponse,
- } from '@/models/common'
- import { useMutation, useQuery } from '@tanstack/react-query'
- import type { FileTypesRes } from './datasets'
-
- const NAME_SPACE = 'common'
-
- export const useFileUploadConfig = () => {
- return useQuery<FileUploadConfigResponse>({
- queryKey: [NAME_SPACE, 'file-upload-config'],
- queryFn: () => get<FileUploadConfigResponse>('/files/upload'),
- })
- }
-
- export const useGenerateStructuredOutputRules = () => {
- return useMutation({
- mutationKey: [NAME_SPACE, 'generate-structured-output-rules'],
- mutationFn: (body: StructuredOutputRulesRequestBody) => {
- return post<StructuredOutputRulesResponse>(
- '/rule-structured-output-generate',
- { body },
- )
- },
- })
- }
-
- export const useFileSupportTypes = () => {
- return useQuery<FileTypesRes>({
- queryKey: [NAME_SPACE, 'file-types'],
- queryFn: () => get<FileTypesRes>('/files/support-type'),
- })
- }
-
- type MemberResponse = {
- accounts: Member[] | null
- }
-
- export const useMembers = () => {
- return useQuery<MemberResponse>({
- queryKey: [NAME_SPACE, 'members'],
- queryFn: (params: Record<string, any>) => get<MemberResponse>('/workspaces/current/members', {
- params,
- }),
- })
- }
-
- type FilePreviewResponse = {
- content: string
- }
-
- export const useFilePreview = (fileID: string) => {
- return useQuery<FilePreviewResponse>({
- queryKey: [NAME_SPACE, 'file-preview', fileID],
- queryFn: () => get<FilePreviewResponse>(`/files/${fileID}/preview`),
- enabled: !!fileID,
- })
- }
-
- export type SchemaTypeDefinition = {
- name: string
- schema: {
- properties: Record<string, any>
- }
- }
-
- export const useSchemaTypeDefinitions = () => {
- return useQuery<SchemaTypeDefinition[]>({
- queryKey: [NAME_SPACE, 'schema-type-definitions'],
- queryFn: () => get<SchemaTypeDefinition[]>('/spec/schema-definitions'),
- })
- }
|