| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- 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 type MailSendResponse = { data: string, result: string }
- export const useSendMail = () => {
- return useMutation({
- mutationKey: [NAME_SPACE, 'mail-send'],
- mutationFn: (body: { email: string, language: string }) => {
- return post<MailSendResponse>('/email-register/send-email', { body })
- },
- })
- }
-
- export type MailValidityResponse = { is_valid: boolean, token: string }
-
- export const useMailValidity = () => {
- return useMutation({
- mutationKey: [NAME_SPACE, 'mail-validity'],
- mutationFn: (body: { email: string, code: string, token: string }) => {
- return post<MailValidityResponse>('/email-register/validity', { body })
- },
- })
- }
-
- export type MailRegisterResponse = { result: string, data: { access_token: string, refresh_token: string } }
-
- export const useMailRegister = () => {
- return useMutation({
- mutationKey: [NAME_SPACE, 'mail-register'],
- mutationFn: (body: { token: string, new_password: string, password_confirm: string }) => {
- return post<MailRegisterResponse>('/email-register', { 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'),
- })
- }
|