-
-
Notifications
You must be signed in to change notification settings - Fork 8.5k
Expand file tree
/
Copy pathadapters.ts
More file actions
85 lines (70 loc) · 2.31 KB
/
Copy pathadapters.ts
File metadata and controls
85 lines (70 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import { api } from './client'
import type { AdapterFileConfig } from '../types/adapter'
export type DingtalkRegistrationBegin = {
deviceCode: string
userCode?: string
verificationUri?: string
verificationUriComplete: string
expiresInSeconds: number
intervalSeconds: number
qrDataUrl?: string
}
export type DingtalkRegistrationPoll = {
status: 'WAITING' | 'SUCCESS' | 'FAIL' | 'EXPIRED' | 'UNKNOWN'
failReason?: string
config?: AdapterFileConfig
}
export type FeishuSetupBegin = {
deviceCode: string
userCode?: string
verificationUri?: string
verificationUriComplete: string
expiresInSeconds: number
intervalSeconds: number
qrDataUrl?: string
}
export type FeishuSetupPoll = {
status: 'WAITING' | 'SUCCESS' | 'FAIL' | 'EXPIRED' | 'UNKNOWN'
domain?: string
openId?: string
failReason?: string
config?: AdapterFileConfig
}
export const adaptersApi = {
getConfig() {
return api.get<AdapterFileConfig>('/api/adapters')
},
updateConfig(patch: Partial<AdapterFileConfig>) {
return api.put<AdapterFileConfig>('/api/adapters', patch)
},
startWechatLogin() {
return api.post<{ qrcodeUrl?: string; message: string; sessionKey: string }>('/api/adapters/wechat/login/start', {})
},
pollWechatLogin(sessionKey: string) {
return api.post<
| AdapterFileConfig
| { connected: false; status: string; message: string }
>('/api/adapters/wechat/login/poll', { sessionKey }, { timeout: 45_000 })
},
unbindWechat() {
return api.post<AdapterFileConfig>('/api/adapters/wechat/unbind', {})
},
unbindDingtalk() {
return api.post<AdapterFileConfig>('/api/adapters/dingtalk/unbind', {})
},
beginDingtalkRegistration() {
return api.post<DingtalkRegistrationBegin>('/api/adapters/dingtalk/registration/begin', {})
},
pollDingtalkRegistration(deviceCode: string) {
return api.post<DingtalkRegistrationPoll>('/api/adapters/dingtalk/registration/poll', { deviceCode })
},
beginFeishuSetup(domain = 'feishu') {
return api.post<FeishuSetupBegin>('/api/adapters/feishu/setup/begin', { domain })
},
pollFeishuSetup(deviceCode: string, domain = 'feishu') {
return api.post<FeishuSetupPoll>('/api/adapters/feishu/setup/poll', { deviceCode, domain })
},
unbindFeishu() {
return api.post<AdapterFileConfig>('/api/adapters/feishu/unbind', {})
},
}