imeeting/frontend/src/api/business/meeting.ts

117 lines
2.8 KiB
TypeScript
Raw Normal View History

import http from "../http";
export interface MeetingVO {
id: number;
tenantId: number;
creatorId: number;
title: string;
meetingTime: string;
participants: string;
tags: string;
audioUrl: string;
summaryContent: string;
status: number;
createdAt: string;
}
export interface MeetingDTO {
id?: number;
title: string;
meetingTime: string;
participants: string;
tags: string;
audioUrl: string;
asrModelId: number;
promptId: number;
}
export const getMeetingPage = (params: {
current: number;
size: number;
title?: string;
viewType?: 'all' | 'created' | 'involved';
}) => {
return http.get<any, { code: string; data: { records: MeetingVO[]; total: number }; msg: string }>(
"/api/biz/meeting/page",
{ params }
);
};
export const createMeeting = (data: MeetingDTO) => {
return http.post<any, { code: string; data: MeetingVO; msg: string }>(
"/api/biz/meeting",
data
);
};
export const deleteMeeting = (id: number) => {
return http.delete<any, { code: string; data: boolean; msg: string }>(
`/api/biz/meeting/${id}`
);
};
export interface MeetingTranscriptVO {
id: number;
speakerId: string;
speakerName: string;
speakerLabel: string;
content: string;
startTime: number;
endTime: number;
}
export const getMeetingDetail = (id: number) => {
return http.get<any, { code: string; data: MeetingVO; msg: string }>(
`/api/biz/meeting/detail/${id}`
);
};
export const getTranscripts = (id: number) => {
return http.get<any, { code: string; data: MeetingTranscriptVO[]; msg: string }>(
`/api/biz/meeting/transcripts/${id}`
);
};
export const updateSpeakerInfo = (params: { meetingId: number; speakerId: string; newName: string; label: string }) => {
return http.put<any, { code: string; data: boolean; msg: string }>(
"/api/biz/meeting/speaker",
params
);
};
export const reSummary = (params: { meetingId: number; summaryModelId: number; promptId: number }) => {
return http.post<any, { code: string; data: boolean; msg: string }>(
"/api/biz/meeting/re-summary",
params
);
};
export const updateMeeting = (data: Partial<MeetingVO>) => {
return http.put<any, { code: string; data: boolean; msg: string }>(
"/api/biz/meeting",
data
);
};
export const uploadAudio = (file: File) => {
const formData = new FormData();
formData.append("file", file);
return http.post<any, { code: string; data: string; msg: string }>(
"/api/biz/meeting/upload",
formData,
{ headers: { "Content-Type": "multipart/form-data" } }
);
};
export interface MeetingProgress {
percent: number;
message: string;
updateAt: number;
}
export const getMeetingProgress = (id: number) => {
return http.get<any, { code: string; data: MeetingProgress; msg: string }>(
`/api/biz/meeting/${id}/progress`
);
};