mirror of
https://github.com/dadosfera/maestro.git
synced 2026-09-28 12:04:49 +00:00
145 lines
3.9 KiB
TypeScript
145 lines
3.9 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Delete,
|
|
Get,
|
|
Headers,
|
|
Inject,
|
|
Param,
|
|
Patch,
|
|
Post,
|
|
Query,
|
|
UploadedFile,
|
|
UseInterceptors,
|
|
} from '@nestjs/common';
|
|
import { NetworkConfigService } from './network-config.service';
|
|
import { DadosferaLogger } from '@dadosfera/dadosfera-logs';
|
|
import { ApiConsumes, ApiOkResponse, ApiTags } from '@nestjs/swagger';
|
|
import { RequestUser, User } from 'src/authentication/user.decorator';
|
|
import {
|
|
CreateNetworkConfigReq,
|
|
CreateNetworkConfigRes,
|
|
DeleteNetworkConfigRes,
|
|
FindAllNetworkConfigsRes,
|
|
UpdateNetworkConfigReq,
|
|
UpdateNetworkConfigRes,
|
|
} from './dto/network-config';
|
|
import { FileInterceptor } from '@nestjs/platform-express';
|
|
|
|
@ApiTags('Network Config')
|
|
@Controller('network-config')
|
|
export class NetworkConfigController {
|
|
logger: any;
|
|
constructor(
|
|
private networkConfigService: NetworkConfigService,
|
|
@Inject(DadosferaLogger) dadosferaLogger: DadosferaLogger,
|
|
) {
|
|
this.logger = dadosferaLogger.logger;
|
|
}
|
|
@Get()
|
|
@ApiOkResponse({ type: FindAllNetworkConfigsRes })
|
|
async findAllNetworkConfigs(
|
|
@User() user: RequestUser,
|
|
@Headers('Dadosfera-Lang') language,
|
|
@Query() queries,
|
|
) {
|
|
this.logger.info('GET /network-config', {
|
|
user: user.user_id,
|
|
customer: user.customer_name,
|
|
});
|
|
|
|
const { user_id, customer_id, customer_name } = user;
|
|
const { search, size, page, ...filters } = queries;
|
|
|
|
return this.networkConfigService.findAllNetworkConfigs({
|
|
body: { search, size, page, filters },
|
|
info: { user_id, customer_id, customer_name, language },
|
|
});
|
|
}
|
|
|
|
@Get(':id')
|
|
@ApiOkResponse({ type: FindAllNetworkConfigsRes })
|
|
async findNetworkConfigById(
|
|
@User() user: RequestUser,
|
|
@Param('id') id: string,
|
|
) {
|
|
this.logger.info('GET /network-config/:id', {
|
|
user: user.user_id,
|
|
customer: user.customer_name,
|
|
});
|
|
return this.networkConfigService.findNetworkConfigById(id);
|
|
}
|
|
|
|
@Get(':id/details')
|
|
@ApiOkResponse({ type: FindAllNetworkConfigsRes })
|
|
async findNetworkConfigByIdDetails(
|
|
@User() user: RequestUser,
|
|
@Headers('Dadosfera-Lang') language,
|
|
@Param('id') id: string,
|
|
) {
|
|
this.logger.info('GET /network-config/:id', {
|
|
user: user.user_id,
|
|
customer: user.customer_name,
|
|
});
|
|
return this.networkConfigService.findNetworkConfigByIdDetails(id, {
|
|
customer_name: user.customer_name,
|
|
customer_id: user.customer_id,
|
|
language,
|
|
});
|
|
}
|
|
|
|
@Post()
|
|
@ApiOkResponse({ type: CreateNetworkConfigRes })
|
|
@ApiConsumes('multipart/form-data')
|
|
@UseInterceptors(FileInterceptor('ovpn_file'))
|
|
async createNetworkConfigs(
|
|
@User() user: RequestUser,
|
|
@UploadedFile() file: Express.Multer.File,
|
|
@Body() body: CreateNetworkConfigReq,
|
|
) {
|
|
this.logger.info('POST /network-config', {
|
|
user: user.user_id,
|
|
customer: user.customer_name,
|
|
});
|
|
const { customer_id, customer_name, user_id } = user;
|
|
return this.networkConfigService.createNetworkConfig(body, file, {
|
|
customer_name,
|
|
customer_id,
|
|
user_id,
|
|
});
|
|
}
|
|
|
|
@Patch(':id')
|
|
@ApiOkResponse({ type: UpdateNetworkConfigRes })
|
|
async updateNetworkConfig(
|
|
@User() user: RequestUser,
|
|
@Param('id') network_config_id: string,
|
|
@Body() body: UpdateNetworkConfigReq,
|
|
) {
|
|
this.logger.info('PATCH /network-config/:id', {
|
|
user: user.user_id,
|
|
customer: user.customer_name,
|
|
});
|
|
return this.networkConfigService.updateNetworkConfig(
|
|
body,
|
|
network_config_id,
|
|
);
|
|
}
|
|
|
|
@Delete(':id')
|
|
@ApiOkResponse({ type: DeleteNetworkConfigRes })
|
|
async deleteNetworkConfig(
|
|
@User() user: RequestUser,
|
|
@Param('id') network_config_id: string,
|
|
) {
|
|
this.logger.info('DELETE /network-config', {
|
|
user: user.user_id,
|
|
customer: user.customer_name,
|
|
});
|
|
return this.networkConfigService.deleteNetworkConfig(network_config_id, {
|
|
customer_name: user.customer_name,
|
|
customer_id: user.customer_id,
|
|
});
|
|
}
|
|
}
|