94 lines
2.9 KiB
TypeScript
94 lines
2.9 KiB
TypeScript
import { BaseService } from '../BaseService'
|
|
import type {
|
|
BaseResponse,
|
|
WecomAccountBindingRequest,
|
|
WecomApplication,
|
|
WecomApplicationListResponse,
|
|
WecomApplicationQueryParams,
|
|
WecomApplicationRequest,
|
|
WecomApplicationResponse,
|
|
WecomBusinessFieldListResponse,
|
|
WecomBusinessType,
|
|
WecomMemberListResponse,
|
|
WecomMemberQueryParams,
|
|
WecomSceneListResponse,
|
|
WecomSceneQueryParams,
|
|
WecomSceneRequest,
|
|
WecomSceneResponse,
|
|
WecomSyncMembersApiResponse,
|
|
WecomTemplateDetailResponse,
|
|
WecomTemplateInspectRequest
|
|
} from '@/types/api'
|
|
|
|
export class WecomService extends BaseService {
|
|
static getApplications(
|
|
params?: WecomApplicationQueryParams
|
|
): Promise<WecomApplicationListResponse> {
|
|
return this.get<WecomApplicationListResponse>('/api/admin/wecom/applications', params)
|
|
}
|
|
|
|
static saveApplication(data: WecomApplicationRequest): Promise<WecomApplicationResponse> {
|
|
return this.post<WecomApplicationResponse>('/api/admin/wecom/applications', data)
|
|
}
|
|
|
|
static testApplication(id: number): Promise<BaseResponse<{ success: boolean }>> {
|
|
return this.post<BaseResponse<{ success: boolean }>>(`/api/admin/wecom/applications/${id}/test`)
|
|
}
|
|
|
|
static syncMembers(id: number): Promise<WecomSyncMembersApiResponse> {
|
|
return this.post<WecomSyncMembersApiResponse>(
|
|
`/api/admin/wecom/applications/${id}/members/sync`
|
|
)
|
|
}
|
|
|
|
static getMembers(id: number, params?: WecomMemberQueryParams): Promise<WecomMemberListResponse> {
|
|
return this.get<WecomMemberListResponse>(`/api/admin/wecom/applications/${id}/members`, params)
|
|
}
|
|
|
|
static setDefaultCreator(id: number, userid: string): Promise<WecomApplicationResponse> {
|
|
return this.put<WecomApplicationResponse>(
|
|
`/api/admin/wecom/applications/${id}/default-creator`,
|
|
{ userid }
|
|
)
|
|
}
|
|
|
|
static getScenes(params?: WecomSceneQueryParams): Promise<WecomSceneListResponse> {
|
|
return this.get<WecomSceneListResponse>('/api/admin/wecom/scenes', params)
|
|
}
|
|
|
|
static saveScene(
|
|
businessType: WecomBusinessType,
|
|
data: WecomSceneRequest
|
|
): Promise<WecomSceneResponse> {
|
|
return this.put<WecomSceneResponse>(`/api/admin/wecom/scenes/${businessType}`, data)
|
|
}
|
|
|
|
static inspectTemplate(
|
|
applicationId: number,
|
|
data: WecomTemplateInspectRequest
|
|
): Promise<WecomTemplateDetailResponse> {
|
|
return this.post<WecomTemplateDetailResponse>(
|
|
`/api/admin/wecom/applications/${applicationId}/templates/inspect`,
|
|
data
|
|
)
|
|
}
|
|
|
|
static getBusinessFields(
|
|
businessType: WecomBusinessType
|
|
): Promise<WecomBusinessFieldListResponse> {
|
|
return this.get<WecomBusinessFieldListResponse>(
|
|
`/api/admin/wecom/scenes/${businessType}/fields`
|
|
)
|
|
}
|
|
|
|
static bindAccount(
|
|
accountId: number,
|
|
data: WecomAccountBindingRequest
|
|
): Promise<BaseResponse<WecomApplication>> {
|
|
return this.put<BaseResponse<WecomApplication>>(
|
|
`/api/admin/accounts/${accountId}/wecom-binding`,
|
|
data
|
|
)
|
|
}
|
|
}
|