Skip to content

Commit f0d0f4b

Browse files
committed
feat: update GetConnectionsInfoByIds use case to return FoundConnectionInfoRO and add new data structure
1 parent 214927e commit f0d0f4b

4 files changed

Lines changed: 90 additions & 8 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import { ApiProperty } from '@nestjs/swagger';
2+
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js';
3+
4+
export class FoundConnectionInfoRO {
5+
@ApiProperty()
6+
id: string;
7+
8+
@ApiProperty()
9+
title: string;
10+
11+
@ApiProperty({ enum: ConnectionTypesEnum })
12+
type: ConnectionTypesEnum;
13+
14+
@ApiProperty()
15+
host: string;
16+
17+
@ApiProperty()
18+
port: number;
19+
20+
@ApiProperty()
21+
database: string;
22+
23+
@ApiProperty()
24+
schema: string;
25+
26+
@ApiProperty()
27+
sid: string;
28+
29+
@ApiProperty()
30+
ssh: boolean;
31+
32+
@ApiProperty()
33+
ssl: boolean;
34+
35+
@ApiProperty()
36+
createdAt: Date;
37+
38+
@ApiProperty()
39+
updatedAt: Date;
40+
41+
@ApiProperty()
42+
isTestConnection: boolean;
43+
44+
@ApiProperty()
45+
is_frozen: boolean;
46+
47+
@ApiProperty()
48+
masterEncryption: boolean;
49+
50+
@ApiProperty()
51+
azure_encryption: boolean;
52+
53+
@ApiProperty()
54+
authSource: string;
55+
56+
@ApiProperty()
57+
dataCenter: string | null;
58+
}

backend/src/microservices/saas-microservice/saas.controller.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import { UserEntity } from '../../entities/user/user.entity.js';
2424
import { InTransactionEnum } from '../../enums/in-transaction.enum.js';
2525
import { Messages } from '../../exceptions/text/messages.js';
2626
import { SentryInterceptor } from '../../interceptors/sentry.interceptor.js';
27-
import { ConnectionEntity } from '../../entities/connection/connection.entity.js';
2827
import { CreatedConnectionResponse, SuccessResponse } from './data-structures/common-responce.ds.js';
28+
import { FoundConnectionInfoRO } from './data-structures/found-connection-info.ro.js';
2929
import { CreateConnectionForHostedDbDto } from './data-structures/create-connecttion-for-selfhosted-db.dto.js';
3030
import { DeleteConnectionForHostedDbDto } from './data-structures/delete-connection-for-hosted-db.dto.js';
3131
import { GetConnectionsInfoByIdsDS } from './data-structures/get-connections-info-by-ids.ds.js';
@@ -336,12 +336,12 @@ export class SaasController {
336336
@ApiBody({ type: GetConnectionsInfoByIdsDS })
337337
@ApiResponse({
338338
status: 200,
339-
type: [ConnectionEntity],
339+
type: [FoundConnectionInfoRO],
340340
})
341341
@Post('/connections/info')
342342
async getConnectionsInfoByIds(
343343
@Body() connectionsData: GetConnectionsInfoByIdsDS,
344-
): Promise<Array<ConnectionEntity>> {
344+
): Promise<Array<FoundConnectionInfoRO>> {
345345
return await this.getConnectionsInfoByIdsUseCase.execute(connectionsData);
346346
}
347347
}

backend/src/microservices/saas-microservice/use-cases/get-connections-info-by-ids.use.case.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ import { IGlobalDatabaseContext } from '../../../common/application/global-datab
55
import { BaseType } from '../../../common/data-injection.tokens.js';
66
import { ConnectionEntity } from '../../../entities/connection/connection.entity.js';
77
import { Messages } from '../../../exceptions/text/messages.js';
8+
import { FoundConnectionInfoRO } from '../data-structures/found-connection-info.ro.js';
89
import { GetConnectionsInfoByIdsDS } from '../data-structures/get-connections-info-by-ids.ds.js';
910
import { IGetConnectionsInfoByIds } from './saas-use-cases.interface.js';
1011

1112
@Injectable()
1213
export class GetConnectionsInfoByIdsUseCase
13-
extends AbstractUseCase<GetConnectionsInfoByIdsDS, Array<ConnectionEntity>>
14+
extends AbstractUseCase<GetConnectionsInfoByIdsDS, Array<FoundConnectionInfoRO>>
1415
implements IGetConnectionsInfoByIds
1516
{
1617
constructor(
@@ -20,7 +21,7 @@ export class GetConnectionsInfoByIdsUseCase
2021
super();
2122
}
2223

23-
protected async implementation(inputData: GetConnectionsInfoByIdsDS): Promise<Array<ConnectionEntity>> {
24+
protected async implementation(inputData: GetConnectionsInfoByIdsDS): Promise<Array<FoundConnectionInfoRO>> {
2425
const { connectionIds } = inputData;
2526
if (!connectionIds || connectionIds.length === 0) {
2627
throw new HttpException(
@@ -35,6 +36,29 @@ export class GetConnectionsInfoByIdsUseCase
3536
id: In(connectionIds),
3637
});
3738

38-
return connections;
39+
return connections.map((connection) => this.buildConnectionInfoRO(connection));
40+
}
41+
42+
private buildConnectionInfoRO(connection: ConnectionEntity): FoundConnectionInfoRO {
43+
return {
44+
id: connection.id,
45+
title: connection.title,
46+
type: connection.type,
47+
host: connection.host,
48+
port: connection.port,
49+
database: connection.database,
50+
schema: connection.schema,
51+
sid: connection.sid,
52+
ssh: connection.ssh,
53+
ssl: connection.ssl,
54+
createdAt: connection.createdAt,
55+
updatedAt: connection.updatedAt,
56+
isTestConnection: connection.isTestConnection,
57+
is_frozen: connection.is_frozen,
58+
masterEncryption: connection.masterEncryption,
59+
azure_encryption: connection.azure_encryption,
60+
authSource: connection.authSource,
61+
dataCenter: connection.dataCenter,
62+
};
3963
}
4064
}

backend/src/microservices/saas-microservice/use-cases/saas-use-cases.interface.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { CompanyInfoEntity } from '../../../entities/company-info/company-info.entity.js';
22
import { CreatedConnectionDTO } from '../../../entities/connection/application/dto/created-connection.dto.js';
3-
import { ConnectionEntity } from '../../../entities/connection/connection.entity.js';
3+
import { FoundConnectionInfoRO } from '../data-structures/found-connection-info.ro.js';
44
import { SaaSRegisterDemoUserAccountDS } from '../../../entities/user/application/data-structures/demo-user-account-register.ds.js';
55
import { SaasUsualUserRegisterDS } from '../../../entities/user/application/data-structures/usual-register-user.ds.js';
66
import { FoundUserDto } from '../../../entities/user/dto/found-user.dto.js';
@@ -86,5 +86,5 @@ export interface IUpdateHostedConnectionPassword {
8686
}
8787

8888
export interface IGetConnectionsInfoByIds {
89-
execute(inputData: GetConnectionsInfoByIdsDS): Promise<Array<ConnectionEntity>>;
89+
execute(inputData: GetConnectionsInfoByIdsDS): Promise<Array<FoundConnectionInfoRO>>;
9090
}

0 commit comments

Comments
 (0)