Skip to content

Commit

Permalink
Merge pull request #92 from suyuan32/dev
Browse files Browse the repository at this point in the history
feat: cloud file support in fms
  • Loading branch information
suyuan32 authored Sep 3, 2023
2 parents 10fafd7 + 7274d0d commit e5712be
Show file tree
Hide file tree
Showing 23 changed files with 1,772 additions and 10 deletions.
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',
}

/**
Expand Down
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
Expand Up @@ -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

0 comments on commit e5712be

Please sign in to comment.