@abyss-project/cloud 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { ICleanTrashCloudParams, ICleanTrashCloudResponse, ICreateCloudBody, ICreateCloudResponse, IDeleteCloudParams, IDeleteCloudResponse, IGetAllMetricsCloudResponse, IGetCloudParams, IGetCloudResponse, IGetRepositoryCloudParams, IGetRepositoryCloudResponse, IGetTrashCloudParams, IGetTrashCloudResponse, IPaginateCloudQuery, IPaginateCloudResponse, IUpdateCloudBody, IUpdateCloudParams, IUpdateCloudResponse } from '..';
1
+ import { ICleanTrashCloudParams, ICleanTrashCloudResponse, ICreateCloudBody, ICreateCloudResponse, IDeleteCloudParams, IDeleteCloudResponse, IGetAllMetricsCloudResponse, IGetCloudParams, IGetCloudResponse, IGetMetricsCloudParams, IGetMetricsCloudQuery, IGetMetricsCloudResponse, IGetRepositoryCloudParams, IGetRepositoryCloudResponse, IGetTrashCloudParams, IGetTrashCloudResponse, IPaginateCloudQuery, IPaginateCloudResponse, IUpdateCloudBody, IUpdateCloudParams, IUpdateCloudResponse } from '..';
2
2
  export declare const createCloud: (body: ICreateCloudBody) => Promise<ICreateCloudResponse>;
3
3
  export declare const deleteCloud: (params: IDeleteCloudParams) => Promise<IDeleteCloudResponse>;
4
4
  export declare const updateCloud: (params: IUpdateCloudParams, body: IUpdateCloudBody) => Promise<IUpdateCloudResponse>;
@@ -7,4 +7,5 @@ export declare const getTrashCloud: (params: IGetTrashCloudParams) => Promise<IG
7
7
  export declare const cleanTrashCloud: (params: ICleanTrashCloudParams) => Promise<ICleanTrashCloudResponse>;
8
8
  export declare const paginateCloud: (query: IPaginateCloudQuery) => Promise<IPaginateCloudResponse>;
9
9
  export declare const getCloud: (params: IGetCloudParams) => Promise<IGetCloudResponse>;
10
+ export declare const getMetricsCloud: (params: IGetMetricsCloudParams, query: IGetMetricsCloudQuery) => Promise<IGetMetricsCloudResponse>;
10
11
  export declare const getAllMetricsCloud: () => Promise<IGetAllMetricsCloudResponse>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAllMetricsCloud = exports.getCloud = exports.paginateCloud = exports.cleanTrashCloud = exports.getTrashCloud = exports.getRepositoryCloud = exports.updateCloud = exports.deleteCloud = exports.createCloud = void 0;
3
+ exports.getAllMetricsCloud = exports.getMetricsCloud = exports.getCloud = exports.paginateCloud = exports.cleanTrashCloud = exports.getTrashCloud = exports.getRepositoryCloud = exports.updateCloud = exports.deleteCloud = exports.createCloud = void 0;
4
4
  const __1 = require("..");
5
5
  const createCloud = async (body) => {
6
6
  return (await __1.AbyssCloudCore.axios.post(`cloud`, body)).data;
@@ -38,6 +38,12 @@ const getCloud = async (params) => {
38
38
  return (await __1.AbyssCloudCore.axios.get(`cloud/${params.cloudId}`)).data;
39
39
  };
40
40
  exports.getCloud = getCloud;
41
+ const getMetricsCloud = async (params, query) => {
42
+ return (await __1.AbyssCloudCore.axios.get(`cloud/${params.cloudId}/metrics`, {
43
+ params: query,
44
+ })).data;
45
+ };
46
+ exports.getMetricsCloud = getMetricsCloud;
41
47
  const getAllMetricsCloud = async () => {
42
48
  return (await __1.AbyssCloudCore.axios.get(`cloud/metrics`)).data;
43
49
  };
@@ -28,3 +28,9 @@ export type IPaginateCloudQuery = {
28
28
  name?: string;
29
29
  cloudTagId?: string[];
30
30
  } & QueryPaginate;
31
+ export interface IGetMetricsCloudParams {
32
+ cloudId: string;
33
+ }
34
+ export type IGetMetricsCloudQuery = {
35
+ days?: number;
36
+ };
@@ -1,5 +1,6 @@
1
1
  import { IResponse, BasePaginate } from '..';
2
2
  import { IFolder, ICloud, IFile, ICloudShare } from '../..';
3
+ import { CloudMetricsValue } from '../../../others';
3
4
  export interface ICreateCloudData {
4
5
  cloud: ICloud;
5
6
  }
@@ -43,3 +44,7 @@ export interface IGetAllMetricsCloudData {
43
44
  }[];
44
45
  }
45
46
  export type IGetAllMetricsCloudResponse = IResponse<IGetAllMetricsCloudData>;
47
+ export interface IGetMetricsCloudData {
48
+ metrics: CloudMetricsValue[];
49
+ }
50
+ export type IGetMetricsCloudResponse = IResponse<IGetMetricsCloudData>;
@@ -3,6 +3,7 @@ export * from './models/gallery.dto';
3
3
  export * from './models/gallery-element.dto';
4
4
  export * from './models/cloud-share.dto';
5
5
  export * from './models/cloud.dto';
6
+ export * from './models/cloud-metrics.dto';
6
7
  export * from './models/file.dto';
7
8
  export * from './models/folder.dto';
8
9
  export * from './models/file-version.dto';
@@ -19,6 +19,7 @@ __exportStar(require("./models/gallery.dto"), exports);
19
19
  __exportStar(require("./models/gallery-element.dto"), exports);
20
20
  __exportStar(require("./models/cloud-share.dto"), exports);
21
21
  __exportStar(require("./models/cloud.dto"), exports);
22
+ __exportStar(require("./models/cloud-metrics.dto"), exports);
22
23
  __exportStar(require("./models/file.dto"), exports);
23
24
  __exportStar(require("./models/folder.dto"), exports);
24
25
  __exportStar(require("./models/file-version.dto"), exports);
@@ -0,0 +1,40 @@
1
+ import { ICloud } from './cloud.dto';
2
+ import { IFile } from './file.dto';
3
+ import { IFolder } from './folder.dto';
4
+ export interface ICloudMetrics {
5
+ id?: string;
6
+ cloudId: string;
7
+ cloudUsageLimit: number;
8
+ freeSpace: number;
9
+ repositorySize: number;
10
+ trashSize: number;
11
+ countRepositoryFiles: number;
12
+ countRepositoryFolders: number;
13
+ countTrashFiles: number;
14
+ countTrashFolders: number;
15
+ countCloudShares: number;
16
+ repository: RepositoryView;
17
+ trash: TrashView;
18
+ countRepositoryFileDocuments: number;
19
+ countRepositoryFileImages: number;
20
+ countRepositoryFileVideos: number;
21
+ countRepositoryFileOthers: number;
22
+ countTrashFileDocuments: number;
23
+ countTrashFileImages: number;
24
+ countTrashFileVideos: number;
25
+ countTrashFileOthers: number;
26
+ date: Date;
27
+ updatedAt?: Date;
28
+ createdAt?: Date;
29
+ cloud?: ICloud;
30
+ }
31
+ export type RepositoryView = {
32
+ folder: IFolder[];
33
+ file: IFile[];
34
+ size: number;
35
+ };
36
+ export type TrashView = {
37
+ folder: IFolder[];
38
+ file: IFile[];
39
+ size: number;
40
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,3 +1,4 @@
1
+ import { ICloudMetrics } from './cloud-metrics.dto';
1
2
  import { ICloudPublicAccess } from './cloud-public-access.dto';
2
3
  import { ICloudTag } from './cloud-tag.dto';
3
4
  import { IFile } from './file.dto';
@@ -14,4 +15,5 @@ export interface ICloud {
14
15
  file?: IFile[];
15
16
  cloudTag?: ICloudTag[];
16
17
  cloudPublicAccess?: ICloudPublicAccess[];
18
+ cloudMetrics?: ICloudMetrics[];
17
19
  }
@@ -10,3 +10,23 @@ export type FileIdWithVersionId = {
10
10
  fileId: string;
11
11
  fileVersionId?: string;
12
12
  };
13
+ export type CloudMetricsValue = {
14
+ cloudUsageLimit: number;
15
+ freeSpace: number;
16
+ repositorySize: number;
17
+ trashSize: number;
18
+ countRepositoryFiles: number;
19
+ countRepositoryFolders: number;
20
+ countTrashFiles: number;
21
+ countTrashFolders: number;
22
+ countCloudShares: number;
23
+ countRepositoryFileDocuments: number;
24
+ countRepositoryFileImages: number;
25
+ countRepositoryFileVideos: number;
26
+ countRepositoryFileOthers: number;
27
+ countTrashFileDocuments: number;
28
+ countTrashFileImages: number;
29
+ countTrashFileVideos: number;
30
+ countTrashFileOthers: number;
31
+ date: Date;
32
+ };
@@ -1,2 +1,9 @@
1
- import { IFolder } from '../types';
1
+ import { IFile, IFolder } from '../types';
2
2
  export declare const flattenFolders: (folders: IFolder[]) => IFolder[];
3
+ export declare const countElement: (repository: {
4
+ files: IFile[];
5
+ folders: IFolder[];
6
+ }) => {
7
+ countFolder: number;
8
+ countFile: number;
9
+ };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.flattenFolders = void 0;
3
+ exports.countElement = exports.flattenFolders = void 0;
4
4
  const flattenFolders = (folders) => {
5
5
  return [
6
6
  ...folders.flatMap((folder) => {
@@ -9,3 +9,25 @@ const flattenFolders = (folders) => {
9
9
  ];
10
10
  };
11
11
  exports.flattenFolders = flattenFolders;
12
+ const countChildFolder = (folders) => {
13
+ let countFolder = 0;
14
+ let countFile = 0;
15
+ for (const folder of folders) {
16
+ countFile += (folder.childFile || []).length;
17
+ countFolder += (folder.childFolder || []).length;
18
+ const result = countChildFolder(folder.childFolder || []);
19
+ countFolder += result.countFolder;
20
+ countFile += result.countFile;
21
+ }
22
+ return { countFolder, countFile };
23
+ };
24
+ const countElement = (repository) => {
25
+ const countFolder = repository.folders.length;
26
+ const countFile = repository.files.length;
27
+ const counter = countChildFolder(repository.folders);
28
+ return {
29
+ countFolder: countFolder + counter.countFolder,
30
+ countFile: countFile + counter.countFile,
31
+ };
32
+ };
33
+ exports.countElement = countElement;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abyss-project/cloud",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Core package to interact with Abyss-Project Cloud",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",