FEAT: Managers

This commit is contained in:
Victor Radael
2022-08-12 14:47:44 -03:00
parent 626f785994
commit 372fc74bcb
6 changed files with 89 additions and 48 deletions
@@ -62,10 +62,10 @@ export class ConnectionTestService {
const createConnectionBody: CreateConnectionDto = {
...body,
};
const { connection } = await this.connectionsService.createConnection({
body: createConnectionBody,
info: { customer_id, customer_name, user_id },
});
const { connection } = await this.connectionsService.createConnection(
createConnectionBody,
{ customer_id, customer_name, user_id },
);
connection_id = connection.id;
}
/************************************/
+24 -18
View File
@@ -8,8 +8,14 @@ import {
import { ClientGrpc } from '@nestjs/microservices';
import { ConnectionManager } from '@dadosfera/protospack-v2';
import { lastValueFrom } from 'rxjs';
import { GetConnectionsRes } from './dtos/connection';
import {
ConnectionRes,
ConnectionsRes,
CreateConnectionDto,
UpdateConnectionDto,
} from './dtos/connection';
import { ConnectionClientConfiguration } from './client.config';
import { GetConnectionDetailsResponse } from '@dadosfera/protospack-v2/dist/lib/ConnectionManager/interfaces/messages';
export class ConnectionClientService implements OnModuleInit {
private connectionServiceRead: ConnectionManager.ReadService.ConnectionManagerReadServices;
@@ -31,7 +37,10 @@ export class ConnectionClientService implements OnModuleInit {
);
}
async createConnection({ body, info }) {
async createConnection(
body: CreateConnectionDto,
info: any,
): Promise<ConnectionRes> {
const meta = new Metadata();
meta.add('customer_id', info.customer_id);
meta.add('customer_name', info.customer_name);
@@ -70,33 +79,27 @@ export class ConnectionClientService implements OnModuleInit {
});
}
async updateConnection({ body, info }) {
async updateConnection(
id: string,
body: UpdateConnectionDto,
info,
): Promise<ConnectionRes> {
const meta = new Metadata();
meta.add('customer_id', info.customer_id);
meta.add('customer_name', info.customer_name);
meta.add('user_id', info.user_id);
meta.add('language', info.language);
const {
id,
description,
image_url,
name,
network_config_id,
properties,
type,
} = body;
const { description, name, network_config_id, properties } = body;
return lastValueFrom(
this.connectionServiceWrite.UpdateConnection(
{
id,
description,
image_url,
name,
network_config_id,
properties: JSON.stringify(properties),
type,
},
meta,
),
@@ -108,7 +111,7 @@ export class ConnectionClientService implements OnModuleInit {
});
}
async deleteConnection({ body, info }) {
async deleteConnection({ body, info }): Promise<ConnectionRes> {
const meta = new Metadata();
meta.add('customer_id', info.customer_id);
meta.add('customer_name', info.customer_name);
@@ -131,7 +134,7 @@ export class ConnectionClientService implements OnModuleInit {
});
}
async getAllConnection({ body, info }): Promise<GetConnectionsRes> {
async getAllConnection({ body, info }): Promise<ConnectionsRes> {
const meta = new Metadata();
meta.add('customer_id', info.customer_id);
meta.add('customer_name', info.customer_name);
@@ -153,7 +156,7 @@ export class ConnectionClientService implements OnModuleInit {
});
}
async getConnection({ body, info }) {
async getConnection({ body, info }): Promise<ConnectionRes> {
const meta = new Metadata();
meta.add('customer_id', info.customer_id);
meta.add('customer_name', info.customer_name);
@@ -172,7 +175,10 @@ export class ConnectionClientService implements OnModuleInit {
});
}
async getConnectionDetails({ body, info }) {
async getConnectionDetails({
body,
info,
}): Promise<GetConnectionDetailsResponse> {
const meta = new Metadata();
meta.add('customer_id', info.customer_id);
meta.add('customer_name', info.customer_name);
+29 -15
View File
@@ -20,7 +20,12 @@ import {
import { PERMISSIONS } from 'src/authentication/permissions.enum';
import { User } from 'src/authentication/user.decorator';
import { ValidationPipe } from '../../pipes/object-validation.pipe';
import { GetConnectionsRes, UpdateConnectionDto } from './dtos/connection';
import {
ConnectionDetailsRes,
ConnectionRes,
ConnectionsRes,
UpdateConnectionDto,
} from './dtos/connection';
import { CreateConnectionDto } from './dtos/connection';
@ApiTags('connections')
@@ -42,14 +47,15 @@ export class ConnectionController {
async createConnection(
@User() user,
@Body(new ValidationPipe()) body: CreateConnectionDto,
) {
): Promise<ConnectionRes> {
this.logger.info('/connections - Create Connection');
const { user_id, customer_id, customer_name } = user;
const response: any = await this.clientService.createConnection({
body,
info: { user_id, customer_id, customer_name },
const response: any = await this.clientService.createConnection(body, {
user_id,
customer_id,
customer_name,
});
return response;
@@ -59,17 +65,19 @@ export class ConnectionController {
// @RequireAllPermissions(Permissions.CONNECTIONS.CREATE)
async updateConnection(
@User() user,
@Headers('Dadosfera-Lang') language,
@Param('id') id,
@Headers('Dadosfera-Lang') language: string,
@Param('id') id: string,
@Body(new ValidationPipe()) body: UpdateConnectionDto,
) {
): Promise<ConnectionRes> {
this.logger.info('/connections - Update Connection');
const { user_id, customer_id, customer_name } = user;
const response: any = await this.clientService.updateConnection({
body: { ...body, id },
info: { user_id, customer_id, customer_name, language },
const response: any = await this.clientService.updateConnection(id, body, {
user_id,
customer_id,
customer_name,
language,
});
return response;
@@ -77,7 +85,10 @@ export class ConnectionController {
@Delete('/:id')
// @RequireAllPermissions(Permissions.CONNECTIONS.CREATE)
async deleteConnection(@User() user, @Param('id') id) {
async deleteConnection(
@User() user,
@Param('id') id: string,
): Promise<ConnectionRes> {
this.logger.info('/connections - Delete Connection');
const { user_id, customer_id, customer_name } = user;
@@ -96,7 +107,7 @@ export class ConnectionController {
@User() user,
@Headers('Dadosfera-Lang') language,
@Query() queries,
): Promise<GetConnectionsRes> {
): Promise<ConnectionsRes> {
this.logger.info('/connections - Get All Connection');
const { user_id, customer_id, customer_name } = user;
@@ -116,7 +127,7 @@ export class ConnectionController {
@User() user,
@Headers('Dadosfera-Lang') language,
@Param('id') id,
) {
): Promise<ConnectionRes> {
this.logger.info('/connections - Get Connection');
const { user_id, customer_id, customer_name } = user;
@@ -131,7 +142,10 @@ export class ConnectionController {
@Get('/:id/details')
// @RequireAllPermissions(Permissions.CONNECTIONS.CREATE)
async getConnectionDetails(@User() user, @Param('id') id) {
async getConnectionDetails(
@User() user,
@Param('id') id,
): Promise<ConnectionDetailsRes> {
this.logger.info('/connections - Get Connection Details');
const { user_id, customer_id, customer_name } = user;
+24 -3
View File
@@ -8,7 +8,11 @@ import {
Connection,
ConnectionToCatalog,
} from '@dadosfera/protospack-v2/dist/lib/ConnectionManager/interfaces/entities';
import { GetAllConnectionResponse } from '@dadosfera/protospack-v2/dist/lib/ConnectionManager/interfaces/messages';
import {
GetAllConnectionResponse,
GetConnectionDetailsResponse,
GetConnectionResponse,
} from '@dadosfera/protospack-v2/dist/lib/ConnectionManager/interfaces/messages';
export class ConnectionDto implements Connection {
// ---Automatically generated information will not be sent by the frontend--- //
@@ -82,15 +86,32 @@ export class UpdateConnectionDto extends PickType(ConnectionDto, [
'properties',
]) {}
export class GetConnectionsRes implements GetAllConnectionResponse {
export class ConnectionsRes implements GetAllConnectionResponse {
@ApiProperty()
connections: Connection[];
connections: ConnectionToCatalog[];
@ApiProperty()
message: string;
}
export class ConnectionRes implements GetConnectionResponse {
@ApiProperty()
connection?: ConnectionToCatalog;
@ApiProperty()
message: string;
}
export class ConnectionDetailsRes implements GetConnectionDetailsResponse {
@ApiProperty()
connection?: Connection;
@ApiProperty()
message: string;
}
export class DatabaseConnectionPropertiesDto {
@ApiProperty()
credentials_type: 'basic_auth';
@ApiProperty()
plugin: string;