elewis-nestjs-logging
TypeScript icon, indicating that this package has built-in type declarations

0.0.16 • Public • Published

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();
  }
}

Readme

Keywords

none

Package Sidebar

Install

npm i elewis-nestjs-logging

Weekly Downloads

17

Version

0.0.16

License

MIT

Unpacked Size

14.1 kB

Total Files

26

Last publish

Collaborators

  • eldon.lewis1