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

82 lines
2.3 KiB
TypeScript
Raw Normal View History

import http from "../http";
export interface ExternalAppVO {
id: number;
tenantId?: number;
appName: string;
appType: "native" | "web";
appInfo?: Record<string, unknown>;
iconUrl?: string;
description?: string;
sortOrder?: number;
status: number;
createdBy?: number;
creatorUsername?: string;
createdAt?: string;
updatedAt?: string;
remark?: string;
}
export interface ExternalAppDTO {
appName: string;
appType: "native" | "web";
appInfo?: Record<string, unknown>;
iconUrl?: string;
description?: string;
sortOrder?: number;
status: number;
remark?: string;
}
export interface ExternalAppApkUploadResult {
apkUrl?: string;
apkSize?: number;
apkMd5?: string;
appName?: string | null;
packageName?: string | null;
versionName?: string | null;
versionCode?: string | null;
}
export interface ExternalAppIconUploadResult {
iconUrl?: string;
fileSize?: number;
}
export async function listExternalApps(params?: { appType?: string; status?: number }) {
const resp = await http.get("/api/external-apps", { params });
return resp.data.data as ExternalAppVO[];
}
export async function createExternalApp(payload: ExternalAppDTO) {
const resp = await http.post("/api/external-apps", payload);
return resp.data.data as ExternalAppVO;
}
export async function updateExternalApp(id: number, payload: Partial<ExternalAppDTO>) {
const resp = await http.put(`/api/external-apps/${id}`, payload);
return resp.data.data as ExternalAppVO;
}
export async function deleteExternalApp(id: number) {
const resp = await http.delete(`/api/external-apps/${id}`);
return resp.data.data as boolean;
}
export async function uploadExternalAppApk(file: File) {
const formData = new FormData();
formData.append("apkFile", file);
const resp = await http.post("/api/external-apps/upload-apk", formData, {
headers: { "Content-Type": "multipart/form-data" },
});
return resp.data.data as ExternalAppApkUploadResult;
}
export async function uploadExternalAppIcon(file: File) {
const formData = new FormData();
formData.append("iconFile", file);
const resp = await http.post("/api/external-apps/upload-icon", formData, {
headers: { "Content-Type": "multipart/form-data" },
});
return resp.data.data as ExternalAppIconUploadResult;
}