Common security modules
Overview
!!! This is an expermental module !!!
Provides a logging interceptor to log method entry and exit points along with timings. Uses winston logger under the bonnet.
Install
npm install elewis-nestjs-logging
Types
- AuthGuard
- RolesGuard
Usage
import { LoggingInterceptor } from 'elewis-nestjs-logging';
import {
Controller,
Get,
Post,
Body,
Inject,
Headers,
UseGuards,
UseInterceptors,
} from '@nestjs/common';
import { CreateAgreementDto } from './dto/create-agreement.dto';
import { AgreementsService } from './agreements.service';
import { Agreement } from './interfaces/agreement.interface';
import { Logger } from 'winston';
import { LoggingInterceptor } from 'elewis-nestjs-logging';
//import { LoggingTimer } from '../logging.intereceptor.decorator';
import { AuthGuard, RolesGuard, Roles } from 'elewis-nestjs-security';
@Controller('agreements')
@UseInterceptors(LoggingInterceptor)
export class AgreementsController {
constructor(
private readonly agreementsService: AgreementsService,
@Inject('winston') private readonly logger: Logger,
) {}
@Post()
async create(
@Body() createAgreementDto: CreateAgreementDto,
@Headers('Authorization') authorzation: string,
) {
this.agreementsService.create(createAgreementDto);
}
@Get()
@UseGuards(AuthGuard)
@Roles('admin')
// @LoggingTimer('test')
async findAll(
@Headers('Authorization') authorzation: string,
): Promise<Agreement[]> {
return this.agreementsService.findAll();
}
}