import { Canceler } from "axios";
import { IApiService } from "../Core/IApiService";
import { FileType } from "../Model/FileType";
import { IConfig } from "../Model/IConfig";
import { IPreUploadChunkFileResponse } from "../Model/IPreUploadChunkFileResponse";
import { IPreUploadFileResponse } from "../Model/IPreUploadFileResponse";
import { IProgress } from "../Model/IProgress";
import { IUserFileInfo } from "../Model/IUserFileInfo";
/**
* 默认接口服务实现类
*
此为抽象类,部分接口方法需要对接项目的后端接口
*
* @author LCTR
* @date 2022-11-07
*/
export default abstract class DefaultApiService implements IApiService {
abstract config(code: string): Promise;
getFileTypeByExtension(extension: string): Promise;
getFileTypeByMIME(mimetype: string): Promise;
getFileTypeImageUrl(extension: string): string;
getUnknowFileTypeImageUrl(): string;
abstract rename(id: string, fileName: string): Promise;
abstract getDownloadUrl(id: string, rename: string): string;
abstract getUserFile(id: string): Promise;
abstract getUserFilePreviewUrl(id: string, width?: number | undefined, height?: number | undefined, time?: string | undefined): string;
abstract getUserFileBrowseUrl(id: string): string;
abstract preUploadFile(configCode: string, md5: string, type: string, extension: string, length: string, filename?: string | undefined, section?: boolean | undefined, specs?: number | undefined, total?: number | undefined): Promise;
abstract singleFile(configCode: string, file: File, filename?: string | undefined, onProgress?: ((progress: IProgress) => void) | undefined, setupCancelToken?: ((cancelToken: Canceler) => void) | undefined): Promise;
abstract getSingleFileByArrayBufferRequestParams(configCode: string, type: string, extension: string, filename?: string | undefined): {
urlWithParams: string;
headers: Map;
};
abstract getUserFileInfoFromSingleFileByArrayBufferResponse(response: any): IUserFileInfo;
abstract preUploadChunkFile(file_md5: string, md5: string, index: number, specs: number, forced?: boolean | undefined): Promise;
abstract singleChunkFile(key: string, md5: string, file: Blob, onProgress?: ((progress: IProgress) => void) | undefined, setupCancelToken?: ((cancelToken: Canceler) => void) | undefined): Promise;
abstract getSingleChunkFileByArrayBufferRequestParams(key: string, md5: string): {
urlWithParams: string;
headers: Map;
};
abstract getUserFileInfoFromSingleChunkFileByArrayBufferResponse(response: any): IUserFileInfo;
abstract uploadChunkFileFinished(configCode: string, file_md5: string, specs: number, total: number, type?: string | undefined, extension?: string | undefined, filename?: string | undefined): Promise;
}