Files
one-pipe-system/src/api/modules/wecom.ts
luo 2706c52a47
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m21s
feat: 7月迭代
2026-07-28 14:00:22 +08:00

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
)
}
}