UnisKB/ui/src/api/chat/chat.ts

165 lines
3.8 KiB
TypeScript
Raw Normal View History

2025-06-17 08:18:41 +00:00
import {Result} from '@/request/Result'
2025-06-16 04:08:09 +00:00
import {
get,
post,
postStream,
del,
put,
request,
download,
exportFile,
} from '@/request/chat/index'
2025-06-17 08:18:41 +00:00
import {type ChatProfile} from '@/api/type/chat'
import {type Ref} from 'vue'
2025-06-16 04:08:09 +00:00
2025-06-16 11:00:46 +00:00
import useStore from '@/stores'
2025-06-17 08:18:41 +00:00
import type {LoginRequest} from "@/api/type/user.ts";
const prefix: any = {_value: '/workspace/'}
2025-06-16 11:00:46 +00:00
Object.defineProperty(prefix, 'value', {
get: function () {
2025-06-17 08:18:41 +00:00
const {user} = useStore()
2025-06-16 11:00:46 +00:00
return this._value + user.getWorkspaceId() + '/application'
},
})
2025-06-16 04:08:09 +00:00
/**
* id
* @param application_id id
* @param loading
* @returns
*/
2025-06-17 03:58:35 +00:00
const open: (loading?: Ref<boolean>) => Promise<Result<string>> = (loading) => {
return get('/open', {}, loading)
2025-06-17 08:18:41 +00:00
2025-06-16 04:08:09 +00:00
}
/**
*
* @param
* chat_id: string
* data
*/
const chat: (chat_id: string, data: any) => Promise<any> = (chat_id, data) => {
2025-06-17 03:58:35 +00:00
return postStream(`/chat/api/chat_message/${chat_id}`, data)
2025-06-16 04:08:09 +00:00
}
2025-06-17 03:58:35 +00:00
const chatProfile: (assessToken: string, loading?: Ref<boolean>) => Promise<Result<ChatProfile>> = (
2025-06-16 04:08:09 +00:00
assessToken,
loading,
) => {
2025-06-17 08:18:41 +00:00
return get('/profile', {access_token: assessToken}, loading)
2025-06-16 04:08:09 +00:00
}
2025-06-17 03:58:35 +00:00
/**
*
* @param assessToken
* @param loading
* @returns
*/
const anonymousAuthentication: (
assessToken: string,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (assessToken, loading) => {
2025-06-17 08:18:41 +00:00
return post('/auth/anonymous', {access_token: assessToken}, {}, loading)
2025-06-17 03:58:35 +00:00
}
/**
*
* @param loading
* @returns
*/
const applicationProfile: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get('/application/profile', {}, loading)
2025-06-16 04:08:09 +00:00
}
2025-06-17 08:18:41 +00:00
/**
*
* @param request
* @param loading
* @returns
*/
const login: (accessToken: string, request: LoginRequest, loading?: Ref<boolean>) => Promise<Result<any>> = (
accessToken: string,
request,
loading,
) => {
return post('/auth/login/' + accessToken, request, undefined, loading)
}
const ldapLogin: (accessToken: string, request: LoginRequest, loading?: Ref<boolean>) => Promise<Result<any>> = (
accessToken: string,
request,
loading,
) => {
return post('/auth/ldap/login/' + accessToken, request, undefined, loading)
}
/**
*
* @param loading
*/
const getCaptcha: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
2025-06-17 08:31:07 +00:00
return get('/captcha', undefined, loading)
2025-06-17 08:18:41 +00:00
}
/**
*
*/
const getQrType: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get('qr_type', undefined, loading)
}
const getQrSource: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get('qr_type/source', undefined, loading)
}
const getDingCallback: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
code,
loading
) => {
return get('dingtalk', {code}, loading)
}
const getDingOauth2Callback: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
code,
loading
) => {
return get('dingtalk/oauth2', {code}, loading)
}
const getWecomCallback: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
code,
loading
) => {
return get('wecom', {code}, loading)
}
const getLarkCallback: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
code,
loading
) => {
return get('lark/oauth2', {code}, loading)
}
2025-06-17 08:31:07 +00:00
/**
*
*/
const getAuthSetting: (auth_type: string, loading?: Ref<boolean>) => Promise<Result<any>> = (auth_type, loading) => {
return get(`/chat_user/${auth_type}/detail`, undefined, loading)
}
2025-06-16 04:08:09 +00:00
export default {
open,
chat,
chatProfile,
2025-06-17 03:58:35 +00:00
anonymousAuthentication,
applicationProfile,
2025-06-17 08:18:41 +00:00
login,
getCaptcha,
getDingCallback,
getQrType,
getWecomCallback,
getDingOauth2Callback,
getLarkCallback,
getQrSource,
2025-06-17 08:31:07 +00:00
ldapLogin,
getAuthSetting
2025-06-16 04:08:09 +00:00
}