Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: cloud file support in fms #92

Merged
merged 5 commits into from
Sep 3, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions src/api/fms/cloudFile.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
import { defHttp } from '/@/utils/http/axios';
import { ErrorMessageMode, UploadFileParams } from '/#/axios';
import {
BaseDataResp,
BaseListReq,
BaseResp,
BaseUUIDsReq,
BaseUUIDReq,
} from '/@/api/model/baseModel';
import { CloudFileInfo, CloudFileListResp } from './model/cloudFileModel';
import { AxiosProgressEvent } from 'axios';
import { UploadApiResp } from '../sys/model/uploadModel';

enum Api {
CreateCloudFile = '/fms-api/cloud_file/create',
UpdateCloudFile = '/fms-api/cloud_file/update',
GetCloudFileList = '/fms-api/cloud_file/list',
DeleteCloudFile = '/fms-api/cloud_file/delete',
GetCloudFileById = '/fms-api/cloud_file',
uploadFile = '/fms-api/cloud_file/upload',
}

/**
* @description: Get cloud file list
*/

export const getCloudFileList = (params: BaseListReq, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseDataResp<CloudFileListResp>>(
{ url: Api.GetCloudFileList, params },
{ errorMessageMode: mode },
);
};

/**
* @description: Create a new cloud file
*/
export const createCloudFile = (params: CloudFileInfo, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseResp>(
{ url: Api.CreateCloudFile, params: params },
{
errorMessageMode: mode,
successMessageMode: mode,
},
);
};

/**
* @description: Update the cloud file
*/
export const updateCloudFile = (params: CloudFileInfo, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseResp>(
{ url: Api.UpdateCloudFile, params: params },
{
errorMessageMode: mode,
successMessageMode: mode,
},
);
};

/**
* @description: Delete cloud files
*/
export const deleteCloudFile = (params: BaseUUIDsReq, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseResp>(
{ url: Api.DeleteCloudFile, params: params },
{
errorMessageMode: mode,
successMessageMode: mode,
},
);
};

/**
* @description: Get cloud file By ID
*/
export const getCloudFileById = (params: BaseUUIDReq, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseDataResp<CloudFileInfo>>(
{ url: Api.GetCloudFileById, params: params },
{
errorMessageMode: mode,
},
);
};

/**
* @description: Upload interface
*/
export function uploadApi(
params: UploadFileParams,
onUploadProgress: (progressEvent: AxiosProgressEvent) => void,
) {
return defHttp.uploadFile<BaseDataResp<UploadApiResp>>(
{
url: Api.uploadFile,
onUploadProgress,
},
params,
);
}
74 changes: 74 additions & 0 deletions src/api/fms/cloudFileTag.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import { defHttp } from '/@/utils/http/axios';
import { ErrorMessageMode } from '/#/axios';
import { BaseDataResp, BaseListReq, BaseResp, BaseIDsReq, BaseIDReq } from '/@/api/model/baseModel';
import { CloudFileTagInfo, CloudFileTagListResp } from './model/cloudFileTagModel';

enum Api {
CreateCloudFileTag = '/fms-api/cloud_file_tag/create',
UpdateCloudFileTag = '/fms-api/cloud_file_tag/update',
GetCloudFileTagList = '/fms-api/cloud_file_tag/list',
DeleteCloudFileTag = '/fms-api/cloud_file_tag/delete',
GetCloudFileTagById = '/fms-api/cloud_file_tag',
}

/**
* @description: Get cloud file tag list
*/

export const getCloudFileTagList = (params: BaseListReq, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseDataResp<CloudFileTagListResp>>(
{ url: Api.GetCloudFileTagList, params },
{ errorMessageMode: mode },
);
};

/**
* @description: Create a new cloud file tag
*/
export const createCloudFileTag = (params: CloudFileTagInfo, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseResp>(
{ url: Api.CreateCloudFileTag, params: params },
{
errorMessageMode: mode,
successMessageMode: mode,
},
);
};

/**
* @description: Update the cloud file tag
*/
export const updateCloudFileTag = (params: CloudFileTagInfo, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseResp>(
{ url: Api.UpdateCloudFileTag, params: params },
{
errorMessageMode: mode,
successMessageMode: mode,
},
);
};

/**
* @description: Delete cloud file tags
*/
export const deleteCloudFileTag = (params: BaseIDsReq, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseResp>(
{ url: Api.DeleteCloudFileTag, params: params },
{
errorMessageMode: mode,
successMessageMode: mode,
},
);
};

/**
* @description: Get cloud file tag By ID
*/
export const getCloudFileTagById = (params: BaseIDReq, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseDataResp<CloudFileTagInfo>>(
{ url: Api.GetCloudFileTagById, params: params },
{
errorMessageMode: mode,
},
);
};
12 changes: 6 additions & 6 deletions src/api/fms/tag.ts → src/api/fms/fileTag.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { defHttp } from '/@/utils/http/axios';
import { ErrorMessageMode } from '/#/axios';
import { BaseDataResp, BaseListReq, BaseResp, BaseIDsReq, BaseIDReq } from '/@/api/model/baseModel';
import { TagInfo, TagListResp } from './model/tagModel';
import { TagInfo, TagListResp } from './model/fileTagModel';

enum Api {
CreateTag = '/fms-api/tag/create',
UpdateTag = '/fms-api/tag/update',
GetTagList = '/fms-api/tag/list',
DeleteTag = '/fms-api/tag/delete',
GetTagById = '/fms-api/tag',
CreateTag = '/fms-api/file_tag/create',
UpdateTag = '/fms-api/file_tag/update',
GetTagList = '/fms-api/file_tag/list',
DeleteTag = '/fms-api/file_tag/delete',
GetTagById = '/fms-api/file_tag',
}

/**
24 changes: 24 additions & 0 deletions src/api/fms/model/cloudFileModel.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { BaseListResp } from '/@/api/model/baseModel';

/**
* @description: CloudFile info response
*/
export interface CloudFileInfo {
id: string;
createdAt?: number;
updatedAt?: number;
state?: boolean;
name?: string;
url?: string;
size?: number;
fileType?: number;
userId?: string;
providerId?: number;
tagIds?: number[];
}

/**
* @description: CloudFile list response
*/

export type CloudFileListResp = BaseListResp<CloudFileInfo>;
19 changes: 19 additions & 0 deletions src/api/fms/model/cloudFileTagModel.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { BaseListResp } from '/@/api/model/baseModel';

/**
* @description: CloudFileTag info response
*/
export interface CloudFileTagInfo {
id: number;
createdAt?: number;
updatedAt?: number;
status?: number;
name?: string;
remark?: string;
}

/**
* @description: CloudFileTag list response
*/

export type CloudFileTagListResp = BaseListResp<CloudFileTagInfo>;
File renamed without changes.
25 changes: 25 additions & 0 deletions src/api/fms/model/storageProviderModel.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { BaseListResp } from '/@/api/model/baseModel';

/**
* @description: StorageProvider info response
*/
export interface StorageProviderInfo {
id: number;
createdAt?: number;
updatedAt?: number;
state?: boolean;
name?: string;
bucket?: string;
providerName?: string;
secretId?: string;
secretKey?: string;
folder?: string;
region?: string;
isDefault?: boolean;
}

/**
* @description: StorageProvider list response
*/

export type StorageProviderListResp = BaseListResp<StorageProviderInfo>;
74 changes: 74 additions & 0 deletions src/api/fms/storageProvider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import { defHttp } from '/@/utils/http/axios';
import { ErrorMessageMode } from '/#/axios';
import { BaseDataResp, BaseListReq, BaseResp, BaseIDsReq, BaseIDReq } from '/@/api/model/baseModel';
import { StorageProviderInfo, StorageProviderListResp } from './model/storageProviderModel';

enum Api {
CreateStorageProvider = '/fms-api/storage_provider/create',
UpdateStorageProvider = '/fms-api/storage_provider/update',
GetStorageProviderList = '/fms-api/storage_provider/list',
DeleteStorageProvider = '/fms-api/storage_provider/delete',
GetStorageProviderById = '/fms-api/storage_provider',
}

/**
* @description: Get storage provider list
*/

export const getStorageProviderList = (params: BaseListReq, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseDataResp<StorageProviderListResp>>(
{ url: Api.GetStorageProviderList, params },
{ errorMessageMode: mode },
);
};

/**
* @description: Create a new storage provider
*/
export const createStorageProvider = (params: StorageProviderInfo, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseResp>(
{ url: Api.CreateStorageProvider, params: params },
{
errorMessageMode: mode,
successMessageMode: mode,
},
);
};

/**
* @description: Update the storage provider
*/
export const updateStorageProvider = (params: StorageProviderInfo, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseResp>(
{ url: Api.UpdateStorageProvider, params: params },
{
errorMessageMode: mode,
successMessageMode: mode,
},
);
};

/**
* @description: Delete storage providers
*/
export const deleteStorageProvider = (params: BaseIDsReq, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseResp>(
{ url: Api.DeleteStorageProvider, params: params },
{
errorMessageMode: mode,
successMessageMode: mode,
},
);
};

/**
* @description: Get storage provider By ID
*/
export const getStorageProviderById = (params: BaseIDReq, mode: ErrorMessageMode = 'notice') => {
return defHttp.post<BaseDataResp<StorageProviderInfo>>(
{ url: Api.GetStorageProviderById, params: params },
{
errorMessageMode: mode,
},
);
};
37 changes: 37 additions & 0 deletions src/locales/lang/en/fms.ts
Original file line number Diff line number Diff line change
@@ -34,4 +34,41 @@ export default {
editTag: 'Edit Tag',
tagList: 'Tag List',
},
storageProvider: {
state: 'State',
name: 'Name',
bucket: 'Bucket',
providerName: 'Provider Name',
secretId: 'Secret ID',
secretKey: 'Secret Key',
folder: 'Folder in cloud',
region: 'Region',
isDefault: 'Is Default',
addStorageProvider: 'Add Storage Provider',
editStorageProvider: 'Edit Storage Provider',
storageProviderList: 'Storage Provider List',
// help message
nameHelpMessage: 'Make sure that prefix with provider type, such as "tencent-" , "aliyun-"',
folderHelpMessage: 'Sub folder in cloud, can be empty. Prefix with "/", such as "/test"',
},
cloudFile: {
state: 'State',
name: 'Name',
url: 'URL',
size: 'Size',
fileType: 'File Type',
userId: 'User ID',
providerId: 'Storage Provider',
addCloudFile: 'Add Cloud File',
editCloudFile: 'Edit Cloud File',
cloudFileList: 'Cloud File List',
},
cloudFileTag: {
status: 'Status',
name: 'Name',
remark: 'Remark',
addCloudFileTag: "Add Cloud File's Tag",
editCloudFileTag: "Edit Cloud File's Tag",
cloudFileTagList: "Cloud File's Tag List",
},
};
Loading