Skip to content

Commit a569132

Browse files
Merge pull request #2569 from RedisInsight/be/bugfix/RI-4882_modules_import
#RI-4882 - add modules import
2 parents d32cf27 + 1eadbdf commit a569132

File tree

5 files changed

+19
-6
lines changed

5 files changed

+19
-6
lines changed

redisinsight/api/src/modules/database-import/database-import.service.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ describe('DatabaseImportService', () => {
165165
}, 0);
166166

167167
expect(databaseRepository.create).toHaveBeenCalledWith({
168-
...pick(mockDatabase, ['host', 'port', 'name', 'connectionType', 'timeout', 'compressor']),
168+
...pick(mockDatabase, ['host', 'port', 'name', 'connectionType', 'timeout', 'compressor', 'modules']),
169169
provider: 'RE_CLOUD',
170170
new: true,
171171
});
@@ -177,7 +177,7 @@ describe('DatabaseImportService', () => {
177177
}, 0);
178178

179179
expect(databaseRepository.create).toHaveBeenCalledWith({
180-
...pick(mockDatabase, ['host', 'port', 'name', 'connectionType', 'timeout', 'compressor']),
180+
...pick(mockDatabase, ['host', 'port', 'name', 'connectionType', 'timeout', 'compressor', 'modules']),
181181
name: `${mockDatabase.host}:${mockDatabase.port}`,
182182
new: true,
183183
});
@@ -189,7 +189,7 @@ describe('DatabaseImportService', () => {
189189
}, 0);
190190

191191
expect(databaseRepository.create).toHaveBeenCalledWith({
192-
...pick(mockDatabase, ['host', 'port', 'name', 'connectionType', 'timeout', 'compressor']),
192+
...pick(mockDatabase, ['host', 'port', 'name', 'connectionType', 'timeout', 'compressor', 'modules']),
193193
compressor: Compressor.NONE,
194194
new: true,
195195
});
@@ -201,7 +201,7 @@ describe('DatabaseImportService', () => {
201201
}, 0);
202202

203203
expect(databaseRepository.create).toHaveBeenCalledWith({
204-
...pick(mockDatabase, ['host', 'port', 'name', 'connectionType', 'timeout', 'compressor']),
204+
...pick(mockDatabase, ['host', 'port', 'name', 'connectionType', 'timeout', 'compressor', 'modules']),
205205
compressor: Compressor.GZIP,
206206
new: true,
207207
});
@@ -214,7 +214,7 @@ describe('DatabaseImportService', () => {
214214
}, 0);
215215

216216
expect(databaseRepository.create).toHaveBeenCalledWith({
217-
...pick(mockDatabase, ['host', 'port', 'name', 'timeout', 'compressor']),
217+
...pick(mockDatabase, ['host', 'port', 'name', 'timeout', 'compressor', 'modules']),
218218
connectionType: ConnectionType.CLUSTER,
219219
new: true,
220220
});

redisinsight/api/src/modules/database-import/database-import.service.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export class DatabaseImportService {
6262
['sshPassphrase', ['sshOptions.passphrase', 'sshKeyPassphrase']],
6363
['sshAgentPath', ['ssh_agent_path']],
6464
['compressor', ['compressor']],
65+
['modules', ['modules']],
6566
];
6667

6768
constructor(

redisinsight/api/src/modules/database-import/dto/import.database.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { UseClientCertificateDto } from 'src/modules/certificate/dto/use.client-
1414
export class ImportDatabaseDto extends PickType(Database, [
1515
'host', 'port', 'name', 'db', 'username', 'password',
1616
'connectionType', 'tls', 'verifyServerCert', 'sentinelMaster', 'nodes',
17-
'new', 'ssh', 'sshOptions', 'provider', 'compressor',
17+
'new', 'ssh', 'sshOptions', 'provider', 'compressor', 'modules',
1818
] as const) {
1919
@Expose()
2020
@IsNotEmpty()

redisinsight/api/src/modules/database/models/additional.redis.module.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
2+
import { IsNumber, IsString } from 'class-validator';
3+
import { Expose } from 'class-transformer';
24
import { AdditionalRedisModuleName } from 'src/constants';
35

46
export class AdditionalRedisModule {
@@ -7,19 +9,25 @@ export class AdditionalRedisModule {
79
type: String,
810
example: AdditionalRedisModuleName.RediSearch,
911
})
12+
@IsString()
13+
@Expose()
1014
name: string;
1115

1216
@ApiPropertyOptional({
1317
description: 'Integer representation of a module version.',
1418
type: Number,
1519
example: 20008,
1620
})
21+
@IsNumber()
22+
@Expose()
1723
version?: number;
1824

1925
@ApiPropertyOptional({
2026
description: 'Semantic versioning representation of a module version.',
2127
type: String,
2228
example: '2.0.8',
2329
})
30+
@IsString()
31+
@Expose()
2432
semanticVersion?: string;
2533
}

redisinsight/api/src/modules/database/models/database.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
MaxLength,
1616
Min,
1717
ValidateNested,
18+
IsArray,
1819
} from 'class-validator';
1920
import { SentinelMaster } from 'src/modules/redis-sentinel/models/sentinel-master';
2021
import { Endpoint } from 'src/common/models';
@@ -174,6 +175,9 @@ export class Database {
174175
isArray: true,
175176
})
176177
@Expose()
178+
@IsOptional()
179+
@IsArray()
180+
@Type(() => AdditionalRedisModule)
177181
modules?: AdditionalRedisModule[];
178182

179183
@ApiPropertyOptional({

0 commit comments

Comments
 (0)