@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.
@@ -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('file_manager', cacheManager, utilsService, FileManagerService.name, true, 'storage', undefined, dataSourceProvider), _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;
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
- const module = await _testing.Test.createTestingModule({
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('resolveEntity', ()=>{
120
- it('resolves to the core FileManager entity when company feature is disabled', ()=>{
121
- expect(service.resolveEntity()).toBe(_entities.FileManager);
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('resolves to FileManagerWithCompany when company feature is enabled', ()=>{
126
+ it('uses FileManagerWithCompany when the company feature is enabled', async ()=>{
124
127
  mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
125
- expect(service.resolveEntity()).toBe(_entities.FileManagerWithCompany);
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('folder', cacheManager, utilsService, FolderService.name, true, 'storage', undefined, dataSourceProvider), _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;
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
- const module = await _testing.Test.createTestingModule({
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('resolveEntity', ()=>{
47
- it('resolves to the core Folder entity when company feature is disabled', ()=>{
48
- expect(service.resolveEntity()).toBe(_entities.Folder);
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('resolves to FolderWithCompany when company feature is enabled', ()=>{
53
+ it('uses FolderWithCompany when the company feature is enabled', async ()=>{
51
54
  mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
52
- expect(service.resolveEntity()).toBe(_entities.FolderWithCompany);
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('storageConfig', cacheManager, utilsService, StorageProviderConfigService.name, true, 'storage', undefined, dataSourceProvider), _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;
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
- const module = await _testing.Test.createTestingModule({
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('resolveEntity', ()=>{
67
- it('resolves to the core StorageConfig entity when company feature is disabled', ()=>{
68
- expect(service.resolveEntity()).toBe(_entities.StorageConfig);
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('resolves to StorageConfigWithCompany when company feature is enabled', ()=>{
73
+ it('uses StorageConfigWithCompany when the company feature is enabled', async ()=>{
71
74
  mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
72
- expect(service.resolveEntity()).toBe(_entities.StorageConfigWithCompany);
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('file_manager', cacheManager, utilsService, FileManagerService.name, true, 'storage', undefined, dataSourceProvider), _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;
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
- const module = await Test.createTestingModule({
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('resolveEntity', ()=>{
116
- it('resolves to the core FileManager entity when company feature is disabled', ()=>{
117
- expect(service.resolveEntity()).toBe(FileManager);
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('resolves to FileManagerWithCompany when company feature is enabled', ()=>{
122
+ it('uses FileManagerWithCompany when the company feature is enabled', async ()=>{
120
123
  mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
121
- expect(service.resolveEntity()).toBe(FileManagerWithCompany);
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('folder', cacheManager, utilsService, FolderService.name, true, 'storage', undefined, dataSourceProvider), _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;
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
- const module = await Test.createTestingModule({
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('resolveEntity', ()=>{
43
- it('resolves to the core Folder entity when company feature is disabled', ()=>{
44
- expect(service.resolveEntity()).toBe(Folder);
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('resolves to FolderWithCompany when company feature is enabled', ()=>{
49
+ it('uses FolderWithCompany when the company feature is enabled', async ()=>{
47
50
  mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
48
- expect(service.resolveEntity()).toBe(FolderWithCompany);
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('storageConfig', cacheManager, utilsService, StorageProviderConfigService.name, true, 'storage', undefined, dataSourceProvider), _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;
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
- const module = await Test.createTestingModule({
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('resolveEntity', ()=>{
63
- it('resolves to the core StorageConfig entity when company feature is disabled', ()=>{
64
- expect(service.resolveEntity()).toBe(StorageConfig);
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('resolves to StorageConfigWithCompany when company feature is enabled', ()=>{
69
+ it('uses StorageConfigWithCompany when the company feature is enabled', async ()=>{
67
70
  mockStorageConfig.isCompanyFeatureEnabled.mockReturnValue(true);
68
- expect(service.resolveEntity()).toBe(StorageConfigWithCompany);
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, IModuleOptionsFactory } from '@flusys/nestjs-core';
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 extends IModuleOptionsFactory<IStorageModuleConfig> {
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.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.0",
133
- "@flusys/nestjs-shared": "7.0.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 { EntityTarget, QueryRunner, SelectQueryBuilder } from 'typeorm';
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 { EntityTarget, SelectQueryBuilder } from 'typeorm';
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 { EntityTarget, QueryRunner, SelectQueryBuilder } from 'typeorm';
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<{