@flusys/nestjs-storage 7.0.0 → 7.0.2
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.
- package/cjs/services/file-manager.service.js +1 -4
- package/cjs/services/file-manager.service.spec.js +10 -6
- package/cjs/services/folder.service.js +2 -4
- package/cjs/services/folder.service.spec.js +10 -6
- package/cjs/services/storage-provider-config.service.js +1 -4
- package/cjs/services/storage-provider-config.service.spec.js +10 -6
- package/fesm/services/file-manager.service.js +2 -5
- package/fesm/services/file-manager.service.spec.js +10 -6
- package/fesm/services/folder.service.js +2 -4
- package/fesm/services/folder.service.spec.js +10 -6
- package/fesm/services/storage-provider-config.service.js +2 -5
- package/fesm/services/storage-provider-config.service.spec.js +10 -6
- package/interfaces/storage-module-options.interface.d.ts +2 -2
- package/package.json +3 -3
- package/services/file-manager.service.d.ts +1 -2
- package/services/folder.service.d.ts +1 -2
- package/services/storage-provider-config.service.d.ts +1 -2
|
@@ -102,9 +102,6 @@ const DEFAULT_SELECT_FIELDS = [
|
|
|
102
102
|
'deletedAt'
|
|
103
103
|
];
|
|
104
104
|
let FileManagerService = class FileManagerService extends _classes.ApiService {
|
|
105
|
-
resolveEntity() {
|
|
106
|
-
return this.storageConfig.isCompanyFeatureEnabled() ? _entities.FileManagerWithCompany : _entities.FileManager;
|
|
107
|
-
}
|
|
108
105
|
// ─── Override Methods ───────────────────────────────────────────────────────
|
|
109
106
|
async convertSingleDtoToEntity(dto, user) {
|
|
110
107
|
let entity = {};
|
|
@@ -365,7 +362,7 @@ let FileManagerService = class FileManagerService extends _classes.ApiService {
|
|
|
365
362
|
};
|
|
366
363
|
}
|
|
367
364
|
constructor(cacheManager, utilsService, uploadService, storageConfig, dataSourceProvider, permissionCacheService){
|
|
368
|
-
super(
|
|
365
|
+
super(_config.STORAGE_EVENT_ENTITIES.FILE, cacheManager, utilsService, FileManagerService.name, true, _config.STORAGE_EVENT_MODULE, dataSourceProvider, storageConfig.isCompanyFeatureEnabled() ? _entities.FileManagerWithCompany : _entities.FileManager), _define_property(this, "cacheManager", void 0), _define_property(this, "utilsService", void 0), _define_property(this, "uploadService", void 0), _define_property(this, "storageConfig", void 0), _define_property(this, "dataSourceProvider", void 0), _define_property(this, "permissionCacheService", void 0), this.cacheManager = cacheManager, this.utilsService = utilsService, this.uploadService = uploadService, this.storageConfig = storageConfig, this.dataSourceProvider = dataSourceProvider, this.permissionCacheService = permissionCacheService;
|
|
369
366
|
}
|
|
370
367
|
};
|
|
371
368
|
FileManagerService = _ts_decorate([
|
|
@@ -36,6 +36,7 @@ function buildFile(overrides = {}) {
|
|
|
36
36
|
}
|
|
37
37
|
describe('FileManagerService', ()=>{
|
|
38
38
|
let service;
|
|
39
|
+
let module;
|
|
39
40
|
let mockFileRepo;
|
|
40
41
|
let mockFolderRepo;
|
|
41
42
|
let mockStorageConfigRepo;
|
|
@@ -84,7 +85,7 @@ describe('FileManagerService', ()=>{
|
|
|
84
85
|
mockSharedPermissionCacheService = {
|
|
85
86
|
hasPermission: jest.fn().mockResolvedValue(false)
|
|
86
87
|
};
|
|
87
|
-
|
|
88
|
+
module = await _testing.Test.createTestingModule({
|
|
88
89
|
providers: [
|
|
89
90
|
_filemanagerservice.FileManagerService,
|
|
90
91
|
{
|
|
@@ -116,13 +117,16 @@ describe('FileManagerService', ()=>{
|
|
|
116
117
|
service = await module.resolve(_filemanagerservice.FileManagerService);
|
|
117
118
|
await service.ensureDataSourceRepository();
|
|
118
119
|
});
|
|
119
|
-
describe('
|
|
120
|
-
it('
|
|
121
|
-
|
|
120
|
+
describe('entity selection', ()=>{
|
|
121
|
+
it('uses FileManager when the company feature is disabled', async ()=>{
|
|
122
|
+
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(false);
|
|
123
|
+
const built = await module.resolve(_filemanagerservice.FileManagerService);
|
|
124
|
+
expect(built['_entity']).toBe(_entities.FileManager);
|
|
122
125
|
});
|
|
123
|
-
it('
|
|
126
|
+
it('uses FileManagerWithCompany when the company feature is enabled', async ()=>{
|
|
124
127
|
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
|
|
125
|
-
|
|
128
|
+
const built = await module.resolve(_filemanagerservice.FileManagerService);
|
|
129
|
+
expect(built['_entity']).toBe(_entities.FileManagerWithCompany);
|
|
126
130
|
});
|
|
127
131
|
});
|
|
128
132
|
describe('convertSingleDtoToEntity', ()=>{
|
|
@@ -12,6 +12,7 @@ const _classes = require("@flusys/nestjs-shared/classes");
|
|
|
12
12
|
const _modules = require("@flusys/nestjs-shared/modules");
|
|
13
13
|
const _utils = require("@flusys/nestjs-shared/utils");
|
|
14
14
|
const _common = require("@nestjs/common");
|
|
15
|
+
const _config = require("../config");
|
|
15
16
|
const _entities = require("../entities");
|
|
16
17
|
const _storageconfigservice = require("./storage-config.service");
|
|
17
18
|
const _storagedatasourceprovider = require("./storage-datasource.provider");
|
|
@@ -43,9 +44,6 @@ function _ts_param(paramIndex, decorator) {
|
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
46
|
let FolderService = class FolderService extends _classes.ApiService {
|
|
46
|
-
resolveEntity() {
|
|
47
|
-
return this.storageConfig.isCompanyFeatureEnabled() ? _entities.FolderWithCompany : _entities.Folder;
|
|
48
|
-
}
|
|
49
47
|
// ─── Override Methods ───────────────────────────────────────────────────────
|
|
50
48
|
async convertSingleDtoToEntity(dto, user) {
|
|
51
49
|
const entity = await super.convertSingleDtoToEntity(dto, user);
|
|
@@ -82,7 +80,7 @@ let FolderService = class FolderService extends _classes.ApiService {
|
|
|
82
80
|
return result;
|
|
83
81
|
}
|
|
84
82
|
constructor(cacheManager, utilsService, storageConfig, dataSourceProvider){
|
|
85
|
-
super(
|
|
83
|
+
super(_config.STORAGE_EVENT_ENTITIES.FOLDER, cacheManager, utilsService, FolderService.name, true, _config.STORAGE_EVENT_MODULE, dataSourceProvider, storageConfig.isCompanyFeatureEnabled() ? _entities.FolderWithCompany : _entities.Folder), _define_property(this, "cacheManager", void 0), _define_property(this, "utilsService", void 0), _define_property(this, "storageConfig", void 0), this.cacheManager = cacheManager, this.utilsService = utilsService, this.storageConfig = storageConfig;
|
|
86
84
|
}
|
|
87
85
|
};
|
|
88
86
|
FolderService = _ts_decorate([
|
|
@@ -12,6 +12,7 @@ const _storagedatasourceprovider = require("./storage-datasource.provider");
|
|
|
12
12
|
const _entities = require("../entities");
|
|
13
13
|
describe('FolderService', ()=>{
|
|
14
14
|
let service;
|
|
15
|
+
let module;
|
|
15
16
|
let mockRepo;
|
|
16
17
|
let mockStorageConfig;
|
|
17
18
|
beforeEach(async ()=>{
|
|
@@ -20,7 +21,7 @@ describe('FolderService', ()=>{
|
|
|
20
21
|
mockStorageConfig = {
|
|
21
22
|
isCompanyFeatureEnabled: jest.fn().mockReturnValue(false)
|
|
22
23
|
};
|
|
23
|
-
|
|
24
|
+
module = await _testing.Test.createTestingModule({
|
|
24
25
|
providers: [
|
|
25
26
|
_folderservice.FolderService,
|
|
26
27
|
{
|
|
@@ -43,13 +44,16 @@ describe('FolderService', ()=>{
|
|
|
43
44
|
}).compile();
|
|
44
45
|
service = await module.resolve(_folderservice.FolderService);
|
|
45
46
|
});
|
|
46
|
-
describe('
|
|
47
|
-
it('
|
|
48
|
-
|
|
47
|
+
describe('entity selection', ()=>{
|
|
48
|
+
it('uses Folder when the company feature is disabled', async ()=>{
|
|
49
|
+
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(false);
|
|
50
|
+
const built = await module.resolve(_folderservice.FolderService);
|
|
51
|
+
expect(built['_entity']).toBe(_entities.Folder);
|
|
49
52
|
});
|
|
50
|
-
it('
|
|
53
|
+
it('uses FolderWithCompany when the company feature is enabled', async ()=>{
|
|
51
54
|
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
|
|
52
|
-
|
|
55
|
+
const built = await module.resolve(_folderservice.FolderService);
|
|
56
|
+
expect(built['_entity']).toBe(_entities.FolderWithCompany);
|
|
53
57
|
});
|
|
54
58
|
});
|
|
55
59
|
describe('convertSingleDtoToEntity', ()=>{
|
|
@@ -45,9 +45,6 @@ function _ts_param(paramIndex, decorator) {
|
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
let StorageProviderConfigService = class StorageProviderConfigService extends _classes.ApiService {
|
|
48
|
-
resolveEntity() {
|
|
49
|
-
return this.storageConfig.isCompanyFeatureEnabled() ? _entities.StorageConfigWithCompany : _entities.StorageConfig;
|
|
50
|
-
}
|
|
51
48
|
async beforeDeleteOperation(dto, _user, _queryRunner) {
|
|
52
49
|
const ids = Array.isArray(dto.id) ? dto.id : [
|
|
53
50
|
dto.id
|
|
@@ -153,7 +150,7 @@ let StorageProviderConfigService = class StorageProviderConfigService extends _c
|
|
|
153
150
|
});
|
|
154
151
|
}
|
|
155
152
|
constructor(cacheManager, utilsService, storageConfig, dataSourceProvider){
|
|
156
|
-
super(
|
|
153
|
+
super(_config.STORAGE_EVENT_ENTITIES.STORAGE_CONFIG, cacheManager, utilsService, StorageProviderConfigService.name, true, _config.STORAGE_EVENT_MODULE, dataSourceProvider, storageConfig.isCompanyFeatureEnabled() ? _entities.StorageConfigWithCompany : _entities.StorageConfig), _define_property(this, "cacheManager", void 0), _define_property(this, "utilsService", void 0), _define_property(this, "storageConfig", void 0), this.cacheManager = cacheManager, this.utilsService = utilsService, this.storageConfig = storageConfig;
|
|
157
154
|
}
|
|
158
155
|
};
|
|
159
156
|
StorageProviderConfigService = _ts_decorate([
|
|
@@ -31,6 +31,7 @@ function buildStorageConfig(overrides = {}) {
|
|
|
31
31
|
}
|
|
32
32
|
describe('StorageProviderConfigService', ()=>{
|
|
33
33
|
let service;
|
|
34
|
+
let module;
|
|
34
35
|
let mockRepo;
|
|
35
36
|
let mockStorageConfig;
|
|
36
37
|
beforeEach(async ()=>{
|
|
@@ -40,7 +41,7 @@ describe('StorageProviderConfigService', ()=>{
|
|
|
40
41
|
isCompanyFeatureEnabled: jest.fn().mockReturnValue(false),
|
|
41
42
|
getAppUrl: jest.fn().mockReturnValue('http://localhost:2002')
|
|
42
43
|
};
|
|
43
|
-
|
|
44
|
+
module = await _testing.Test.createTestingModule({
|
|
44
45
|
providers: [
|
|
45
46
|
_storageproviderconfigservice.StorageProviderConfigService,
|
|
46
47
|
{
|
|
@@ -63,13 +64,16 @@ describe('StorageProviderConfigService', ()=>{
|
|
|
63
64
|
}).compile();
|
|
64
65
|
service = await module.resolve(_storageproviderconfigservice.StorageProviderConfigService);
|
|
65
66
|
});
|
|
66
|
-
describe('
|
|
67
|
-
it('
|
|
68
|
-
|
|
67
|
+
describe('entity selection', ()=>{
|
|
68
|
+
it('uses StorageConfig when the company feature is disabled', async ()=>{
|
|
69
|
+
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(false);
|
|
70
|
+
const built = await module.resolve(_storageproviderconfigservice.StorageProviderConfigService);
|
|
71
|
+
expect(built['_entity']).toBe(_entities.StorageConfig);
|
|
69
72
|
});
|
|
70
|
-
it('
|
|
73
|
+
it('uses StorageConfigWithCompany when the company feature is enabled', async ()=>{
|
|
71
74
|
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
|
|
72
|
-
|
|
75
|
+
const built = await module.resolve(_storageproviderconfigservice.StorageProviderConfigService);
|
|
76
|
+
expect(built['_entity']).toBe(_entities.StorageConfigWithCompany);
|
|
73
77
|
});
|
|
74
78
|
});
|
|
75
79
|
describe('convertSingleDtoToEntity', ()=>{
|
|
@@ -30,7 +30,7 @@ import { SharedPermissionCacheService, UtilsService } from '@flusys/nestjs-share
|
|
|
30
30
|
import { applyCompanyFilter } from '@flusys/nestjs-shared/utils';
|
|
31
31
|
import { BadRequestException, Inject, Injectable, NotFoundException, Scope } from '@nestjs/common';
|
|
32
32
|
import { Brackets, In } from 'typeorm';
|
|
33
|
-
import { FILE_MESSAGES, FOLDER_MESSAGES, UPLOAD_MESSAGES } from '../config';
|
|
33
|
+
import { FILE_MESSAGES, FOLDER_MESSAGES, STORAGE_EVENT_ENTITIES, STORAGE_EVENT_MODULE, UPLOAD_MESSAGES } from '../config';
|
|
34
34
|
import { FileManager, FileManagerWithCompany, Folder, FolderWithCompany } from '../entities';
|
|
35
35
|
import { FileLocationEnum } from '../enums/file-location.enum';
|
|
36
36
|
import { StorageConfigService } from './storage-config.service';
|
|
@@ -51,9 +51,6 @@ const DEFAULT_SELECT_FIELDS = [
|
|
|
51
51
|
'deletedAt'
|
|
52
52
|
];
|
|
53
53
|
export class FileManagerService extends ApiService {
|
|
54
|
-
resolveEntity() {
|
|
55
|
-
return this.storageConfig.isCompanyFeatureEnabled() ? FileManagerWithCompany : FileManager;
|
|
56
|
-
}
|
|
57
54
|
// ─── Override Methods ───────────────────────────────────────────────────────
|
|
58
55
|
async convertSingleDtoToEntity(dto, user) {
|
|
59
56
|
let entity = {};
|
|
@@ -314,7 +311,7 @@ export class FileManagerService extends ApiService {
|
|
|
314
311
|
};
|
|
315
312
|
}
|
|
316
313
|
constructor(cacheManager, utilsService, uploadService, storageConfig, dataSourceProvider, permissionCacheService){
|
|
317
|
-
super(
|
|
314
|
+
super(STORAGE_EVENT_ENTITIES.FILE, cacheManager, utilsService, FileManagerService.name, true, STORAGE_EVENT_MODULE, dataSourceProvider, storageConfig.isCompanyFeatureEnabled() ? FileManagerWithCompany : FileManager), _define_property(this, "cacheManager", void 0), _define_property(this, "utilsService", void 0), _define_property(this, "uploadService", void 0), _define_property(this, "storageConfig", void 0), _define_property(this, "dataSourceProvider", void 0), _define_property(this, "permissionCacheService", void 0), this.cacheManager = cacheManager, this.utilsService = utilsService, this.uploadService = uploadService, this.storageConfig = storageConfig, this.dataSourceProvider = dataSourceProvider, this.permissionCacheService = permissionCacheService;
|
|
318
315
|
}
|
|
319
316
|
}
|
|
320
317
|
FileManagerService = _ts_decorate([
|
|
@@ -32,6 +32,7 @@ function buildFile(overrides = {}) {
|
|
|
32
32
|
}
|
|
33
33
|
describe('FileManagerService', ()=>{
|
|
34
34
|
let service;
|
|
35
|
+
let module;
|
|
35
36
|
let mockFileRepo;
|
|
36
37
|
let mockFolderRepo;
|
|
37
38
|
let mockStorageConfigRepo;
|
|
@@ -80,7 +81,7 @@ describe('FileManagerService', ()=>{
|
|
|
80
81
|
mockSharedPermissionCacheService = {
|
|
81
82
|
hasPermission: jest.fn().mockResolvedValue(false)
|
|
82
83
|
};
|
|
83
|
-
|
|
84
|
+
module = await Test.createTestingModule({
|
|
84
85
|
providers: [
|
|
85
86
|
FileManagerService,
|
|
86
87
|
{
|
|
@@ -112,13 +113,16 @@ describe('FileManagerService', ()=>{
|
|
|
112
113
|
service = await module.resolve(FileManagerService);
|
|
113
114
|
await service.ensureDataSourceRepository();
|
|
114
115
|
});
|
|
115
|
-
describe('
|
|
116
|
-
it('
|
|
117
|
-
|
|
116
|
+
describe('entity selection', ()=>{
|
|
117
|
+
it('uses FileManager when the company feature is disabled', async ()=>{
|
|
118
|
+
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(false);
|
|
119
|
+
const built = await module.resolve(FileManagerService);
|
|
120
|
+
expect(built['_entity']).toBe(FileManager);
|
|
118
121
|
});
|
|
119
|
-
it('
|
|
122
|
+
it('uses FileManagerWithCompany when the company feature is enabled', async ()=>{
|
|
120
123
|
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
|
|
121
|
-
|
|
124
|
+
const built = await module.resolve(FileManagerService);
|
|
125
|
+
expect(built['_entity']).toBe(FileManagerWithCompany);
|
|
122
126
|
});
|
|
123
127
|
});
|
|
124
128
|
describe('convertSingleDtoToEntity', ()=>{
|
|
@@ -29,13 +29,11 @@ import { HybridCache, ApiService } from '@flusys/nestjs-shared/classes';
|
|
|
29
29
|
import { UtilsService } from '@flusys/nestjs-shared/modules';
|
|
30
30
|
import { applyCompanyFilter } from '@flusys/nestjs-shared/utils';
|
|
31
31
|
import { Inject, Injectable, Scope } from '@nestjs/common';
|
|
32
|
+
import { STORAGE_EVENT_ENTITIES, STORAGE_EVENT_MODULE } from '../config';
|
|
32
33
|
import { Folder, FolderWithCompany } from '../entities';
|
|
33
34
|
import { StorageConfigService } from './storage-config.service';
|
|
34
35
|
import { StorageDataSourceProvider } from './storage-datasource.provider';
|
|
35
36
|
export class FolderService extends ApiService {
|
|
36
|
-
resolveEntity() {
|
|
37
|
-
return this.storageConfig.isCompanyFeatureEnabled() ? FolderWithCompany : Folder;
|
|
38
|
-
}
|
|
39
37
|
// ─── Override Methods ───────────────────────────────────────────────────────
|
|
40
38
|
async convertSingleDtoToEntity(dto, user) {
|
|
41
39
|
const entity = await super.convertSingleDtoToEntity(dto, user);
|
|
@@ -72,7 +70,7 @@ export class FolderService extends ApiService {
|
|
|
72
70
|
return result;
|
|
73
71
|
}
|
|
74
72
|
constructor(cacheManager, utilsService, storageConfig, dataSourceProvider){
|
|
75
|
-
super(
|
|
73
|
+
super(STORAGE_EVENT_ENTITIES.FOLDER, cacheManager, utilsService, FolderService.name, true, STORAGE_EVENT_MODULE, dataSourceProvider, storageConfig.isCompanyFeatureEnabled() ? FolderWithCompany : Folder), _define_property(this, "cacheManager", void 0), _define_property(this, "utilsService", void 0), _define_property(this, "storageConfig", void 0), this.cacheManager = cacheManager, this.utilsService = utilsService, this.storageConfig = storageConfig;
|
|
76
74
|
}
|
|
77
75
|
}
|
|
78
76
|
FolderService = _ts_decorate([
|
|
@@ -8,6 +8,7 @@ import { StorageDataSourceProvider } from './storage-datasource.provider';
|
|
|
8
8
|
import { Folder, FolderWithCompany } from '../entities';
|
|
9
9
|
describe('FolderService', ()=>{
|
|
10
10
|
let service;
|
|
11
|
+
let module;
|
|
11
12
|
let mockRepo;
|
|
12
13
|
let mockStorageConfig;
|
|
13
14
|
beforeEach(async ()=>{
|
|
@@ -16,7 +17,7 @@ describe('FolderService', ()=>{
|
|
|
16
17
|
mockStorageConfig = {
|
|
17
18
|
isCompanyFeatureEnabled: jest.fn().mockReturnValue(false)
|
|
18
19
|
};
|
|
19
|
-
|
|
20
|
+
module = await Test.createTestingModule({
|
|
20
21
|
providers: [
|
|
21
22
|
FolderService,
|
|
22
23
|
{
|
|
@@ -39,13 +40,16 @@ describe('FolderService', ()=>{
|
|
|
39
40
|
}).compile();
|
|
40
41
|
service = await module.resolve(FolderService);
|
|
41
42
|
});
|
|
42
|
-
describe('
|
|
43
|
-
it('
|
|
44
|
-
|
|
43
|
+
describe('entity selection', ()=>{
|
|
44
|
+
it('uses Folder when the company feature is disabled', async ()=>{
|
|
45
|
+
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(false);
|
|
46
|
+
const built = await module.resolve(FolderService);
|
|
47
|
+
expect(built['_entity']).toBe(Folder);
|
|
45
48
|
});
|
|
46
|
-
it('
|
|
49
|
+
it('uses FolderWithCompany when the company feature is enabled', async ()=>{
|
|
47
50
|
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
|
|
48
|
-
|
|
51
|
+
const built = await module.resolve(FolderService);
|
|
52
|
+
expect(built['_entity']).toBe(FolderWithCompany);
|
|
49
53
|
});
|
|
50
54
|
});
|
|
51
55
|
describe('convertSingleDtoToEntity', ()=>{
|
|
@@ -30,14 +30,11 @@ import { UtilsService } from '@flusys/nestjs-shared/modules';
|
|
|
30
30
|
import { applyCompanyFilter, buildCompanyWhereCondition } from '@flusys/nestjs-shared/utils';
|
|
31
31
|
import { ForbiddenException, Inject, Injectable, Scope } from '@nestjs/common';
|
|
32
32
|
import { In, IsNull } from 'typeorm';
|
|
33
|
-
import { STORAGE_CONFIG_MESSAGES } from '../config';
|
|
33
|
+
import { STORAGE_CONFIG_MESSAGES, STORAGE_EVENT_ENTITIES, STORAGE_EVENT_MODULE } from '../config';
|
|
34
34
|
import { StorageConfig, StorageConfigWithCompany } from '../entities';
|
|
35
35
|
import { StorageConfigService } from './storage-config.service';
|
|
36
36
|
import { StorageDataSourceProvider } from './storage-datasource.provider';
|
|
37
37
|
export class StorageProviderConfigService extends ApiService {
|
|
38
|
-
resolveEntity() {
|
|
39
|
-
return this.storageConfig.isCompanyFeatureEnabled() ? StorageConfigWithCompany : StorageConfig;
|
|
40
|
-
}
|
|
41
38
|
async beforeDeleteOperation(dto, _user, _queryRunner) {
|
|
42
39
|
const ids = Array.isArray(dto.id) ? dto.id : [
|
|
43
40
|
dto.id
|
|
@@ -143,7 +140,7 @@ export class StorageProviderConfigService extends ApiService {
|
|
|
143
140
|
});
|
|
144
141
|
}
|
|
145
142
|
constructor(cacheManager, utilsService, storageConfig, dataSourceProvider){
|
|
146
|
-
super(
|
|
143
|
+
super(STORAGE_EVENT_ENTITIES.STORAGE_CONFIG, cacheManager, utilsService, StorageProviderConfigService.name, true, STORAGE_EVENT_MODULE, dataSourceProvider, storageConfig.isCompanyFeatureEnabled() ? StorageConfigWithCompany : StorageConfig), _define_property(this, "cacheManager", void 0), _define_property(this, "utilsService", void 0), _define_property(this, "storageConfig", void 0), this.cacheManager = cacheManager, this.utilsService = utilsService, this.storageConfig = storageConfig;
|
|
147
144
|
}
|
|
148
145
|
}
|
|
149
146
|
StorageProviderConfigService = _ts_decorate([
|
|
@@ -27,6 +27,7 @@ function buildStorageConfig(overrides = {}) {
|
|
|
27
27
|
}
|
|
28
28
|
describe('StorageProviderConfigService', ()=>{
|
|
29
29
|
let service;
|
|
30
|
+
let module;
|
|
30
31
|
let mockRepo;
|
|
31
32
|
let mockStorageConfig;
|
|
32
33
|
beforeEach(async ()=>{
|
|
@@ -36,7 +37,7 @@ describe('StorageProviderConfigService', ()=>{
|
|
|
36
37
|
isCompanyFeatureEnabled: jest.fn().mockReturnValue(false),
|
|
37
38
|
getAppUrl: jest.fn().mockReturnValue('http://localhost:2002')
|
|
38
39
|
};
|
|
39
|
-
|
|
40
|
+
module = await Test.createTestingModule({
|
|
40
41
|
providers: [
|
|
41
42
|
StorageProviderConfigService,
|
|
42
43
|
{
|
|
@@ -59,13 +60,16 @@ describe('StorageProviderConfigService', ()=>{
|
|
|
59
60
|
}).compile();
|
|
60
61
|
service = await module.resolve(StorageProviderConfigService);
|
|
61
62
|
});
|
|
62
|
-
describe('
|
|
63
|
-
it('
|
|
64
|
-
|
|
63
|
+
describe('entity selection', ()=>{
|
|
64
|
+
it('uses StorageConfig when the company feature is disabled', async ()=>{
|
|
65
|
+
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(false);
|
|
66
|
+
const built = await module.resolve(StorageProviderConfigService);
|
|
67
|
+
expect(built['_entity']).toBe(StorageConfig);
|
|
65
68
|
});
|
|
66
|
-
it('
|
|
69
|
+
it('uses StorageConfigWithCompany when the company feature is enabled', async ()=>{
|
|
67
70
|
mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
|
|
68
|
-
|
|
71
|
+
const built = await module.resolve(StorageProviderConfigService);
|
|
72
|
+
expect(built['_entity']).toBe(StorageConfigWithCompany);
|
|
69
73
|
});
|
|
70
74
|
});
|
|
71
75
|
describe('convertSingleDtoToEntity', ()=>{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IBootstrapAppConfig, IDataSourceServiceOptions, IDynamicModuleConfig
|
|
1
|
+
import { IBootstrapAppConfig, IDataSourceServiceOptions, IDynamicModuleConfig } from '@flusys/nestjs-core';
|
|
2
2
|
import { IModuleEventsConfig } from '@flusys/nestjs-shared/interfaces';
|
|
3
3
|
import { ModuleMetadata, Type } from '@nestjs/common';
|
|
4
4
|
export interface IStorageModuleConfig extends IDataSourceServiceOptions {
|
|
@@ -13,7 +13,7 @@ export interface StorageModuleOptions extends IDynamicModuleConfig {
|
|
|
13
13
|
bootstrapAppConfig?: IBootstrapAppConfig;
|
|
14
14
|
config?: IStorageModuleConfig;
|
|
15
15
|
}
|
|
16
|
-
export interface StorageOptionsFactory
|
|
16
|
+
export interface StorageOptionsFactory {
|
|
17
17
|
createStorageOptions(): Promise<IStorageModuleConfig> | IStorageModuleConfig;
|
|
18
18
|
}
|
|
19
19
|
export interface StorageModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'>, IDynamicModuleConfig {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flusys/nestjs-storage",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.2",
|
|
4
4
|
"description": "Modular storage package with optional AWS S3, Azure Blob, and SFTP providers",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "fesm/index.js",
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
}
|
|
130
130
|
},
|
|
131
131
|
"dependencies": {
|
|
132
|
-
"@flusys/nestjs-core": "7.0.
|
|
133
|
-
"@flusys/nestjs-shared": "7.0.
|
|
132
|
+
"@flusys/nestjs-core": "7.0.2",
|
|
133
|
+
"@flusys/nestjs-shared": "7.0.2"
|
|
134
134
|
}
|
|
135
135
|
}
|
|
@@ -2,7 +2,7 @@ import { ApiService, HybridCache } from '@flusys/nestjs-shared/classes';
|
|
|
2
2
|
import { DeleteDto, FilterAndPaginationDto } from '@flusys/nestjs-shared/dtos';
|
|
3
3
|
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
4
4
|
import { SharedPermissionCacheService, UtilsService } from '@flusys/nestjs-shared/modules';
|
|
5
|
-
import {
|
|
5
|
+
import { QueryRunner, SelectQueryBuilder } from 'typeorm';
|
|
6
6
|
import { CreateFileManagerDto, FilesResponseDto, GetFilesRequestDto, UpdateFileManagerDto } from '../dtos';
|
|
7
7
|
import { FileManager, FileManagerBase } from '../entities';
|
|
8
8
|
import { IFileManager } from '../interfaces';
|
|
@@ -17,7 +17,6 @@ export declare class FileManagerService extends ApiService<CreateFileManagerDto,
|
|
|
17
17
|
private readonly dataSourceProvider;
|
|
18
18
|
private readonly permissionCacheService;
|
|
19
19
|
constructor(cacheManager: HybridCache, utilsService: UtilsService, uploadService: UploadService, storageConfig: StorageConfigService, dataSourceProvider: StorageDataSourceProvider, permissionCacheService: SharedPermissionCacheService);
|
|
20
|
-
protected resolveEntity(): EntityTarget<FileManagerBase>;
|
|
21
20
|
convertSingleDtoToEntity(dto: CreateFileManagerDto | UpdateFileManagerDto, user: ILoggedUserInfo | null): Promise<FileManagerBase>;
|
|
22
21
|
getSelectQuery(query: SelectQueryBuilder<FileManagerBase>, _user: ILoggedUserInfo | null, select?: string[]): Promise<{
|
|
23
22
|
query: SelectQueryBuilder<FileManager>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HybridCache, ApiService } from '@flusys/nestjs-shared/classes';
|
|
2
2
|
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
3
3
|
import { UtilsService } from '@flusys/nestjs-shared/modules';
|
|
4
|
-
import {
|
|
4
|
+
import { SelectQueryBuilder } from 'typeorm';
|
|
5
5
|
import { CreateFolderDto, UpdateFolderDto } from '../dtos';
|
|
6
6
|
import { Folder, FolderBase } from '../entities';
|
|
7
7
|
import { IFolder } from '../interfaces';
|
|
@@ -12,7 +12,6 @@ export declare class FolderService extends ApiService<CreateFolderDto, UpdateFol
|
|
|
12
12
|
protected utilsService: UtilsService;
|
|
13
13
|
private readonly storageConfig;
|
|
14
14
|
constructor(cacheManager: HybridCache, utilsService: UtilsService, storageConfig: StorageConfigService, dataSourceProvider: StorageDataSourceProvider);
|
|
15
|
-
protected resolveEntity(): EntityTarget<FolderBase>;
|
|
16
15
|
convertSingleDtoToEntity(dto: CreateFolderDto | UpdateFolderDto, user: ILoggedUserInfo | null): Promise<FolderBase>;
|
|
17
16
|
getSelectQuery(query: SelectQueryBuilder<FolderBase>, _user: ILoggedUserInfo | null, select?: string[]): Promise<{
|
|
18
17
|
query: SelectQueryBuilder<Folder>;
|
|
@@ -2,7 +2,7 @@ import { HybridCache, ApiService } from '@flusys/nestjs-shared/classes';
|
|
|
2
2
|
import { DeleteDto } from '@flusys/nestjs-shared/dtos';
|
|
3
3
|
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
4
4
|
import { UtilsService } from '@flusys/nestjs-shared/modules';
|
|
5
|
-
import {
|
|
5
|
+
import { QueryRunner, SelectQueryBuilder } from 'typeorm';
|
|
6
6
|
import { CreateStorageConfigDto, UpdateStorageConfigDto } from '../dtos';
|
|
7
7
|
import { StorageConfig, StorageConfigBase } from '../entities';
|
|
8
8
|
import { IStorageConfig } from '../interfaces';
|
|
@@ -13,7 +13,6 @@ export declare class StorageProviderConfigService extends ApiService<CreateStora
|
|
|
13
13
|
protected utilsService: UtilsService;
|
|
14
14
|
private readonly storageConfig;
|
|
15
15
|
constructor(cacheManager: HybridCache, utilsService: UtilsService, storageConfig: StorageConfigService, dataSourceProvider: StorageDataSourceProvider);
|
|
16
|
-
protected resolveEntity(): EntityTarget<StorageConfigBase>;
|
|
17
16
|
protected beforeDeleteOperation(dto: DeleteDto, _user: ILoggedUserInfo | null, _queryRunner: QueryRunner): Promise<void>;
|
|
18
17
|
convertSingleDtoToEntity(dto: CreateStorageConfigDto | UpdateStorageConfigDto, user: ILoggedUserInfo | null): Promise<StorageConfigBase>;
|
|
19
18
|
getSelectQuery(query: SelectQueryBuilder<StorageConfigBase>, _user: ILoggedUserInfo | null, select?: string[]): Promise<{
|