Skip to content

Commit

Permalink
sample(): simplify classic express and fastify samples
Browse files Browse the repository at this point in the history
  • Loading branch information
kamilmysliwiec committed Feb 19, 2020
1 parent 9c1d0d6 commit f48a0c9
Show file tree
Hide file tree
Showing 10 changed files with 50 additions and 38 deletions.
3 changes: 2 additions & 1 deletion sample/01-cats-app/src/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { Module } from '@nestjs/common';
import { CatsModule } from './cats/cats.module';
import { CoreModule } from './core/core.module';

@Module({
imports: [CatsModule],
imports: [CoreModule, CatsModule],
})
export class AppModule {}
19 changes: 4 additions & 15 deletions sample/01-cats-app/src/cats/cats.controller.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,13 @@
import {
Body,
Controller,
Get,
Param,
Post,
UseGuards,
UseInterceptors,
} from '@nestjs/common';
import { Body, Controller, Get, Param, Post, UseGuards } from '@nestjs/common';
import { Roles } from '../common/decorators/roles.decorator';
import { RolesGuard } from '../common/guards/roles.guard';
import { LoggingInterceptor } from '../common/interceptors/logging.interceptor';
import { TransformInterceptor } from '../common/interceptors/transform.interceptor';
import { ParseIntPipe } from '../common/pipes/parse-int.pipe';
import { CatsService } from './cats.service';
import { CreateCatDto } from './dto/create-cat.dto';
import { Cat } from './interfaces/cat.interface';

@Controller('cats')
@UseGuards(RolesGuard)
@UseInterceptors(LoggingInterceptor, TransformInterceptor)
@Controller('cats')
export class CatsController {
constructor(private readonly catsService: CatsService) {}

Expand All @@ -36,8 +25,8 @@ export class CatsController {
@Get(':id')
findOne(
@Param('id', new ParseIntPipe())
id,
id: number,
) {
// logic
// get by ID logic
}
}
12 changes: 12 additions & 0 deletions sample/01-cats-app/src/core/core.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { Module } from '@nestjs/common';
import { APP_INTERCEPTOR } from '@nestjs/core';
import { LoggingInterceptor } from './interceptors/logging.interceptor';
import { TransformInterceptor } from './interceptors/transform.interceptor';

@Module({
providers: [
{ provide: APP_INTERCEPTOR, useClass: TransformInterceptor },
{ provide: APP_INTERCEPTOR, useClass: LoggingInterceptor },
],
})
export class CoreModule {}
3 changes: 2 additions & 1 deletion sample/10-fastify/src/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { Module } from '@nestjs/common';
import { CatsModule } from './cats/cats.module';
import { CoreModule } from './core/core.module';

@Module({
imports: [CatsModule],
imports: [CatsModule, CoreModule],
})
export class AppModule {}
27 changes: 8 additions & 19 deletions sample/10-fastify/src/cats/cats.controller.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,13 @@
import {
Controller,
Get,
Post,
Body,
UseGuards,
UseInterceptors,
Param,
} from '@nestjs/common';
import { CreateCatDto } from './dto/create-cat.dto';
import { CatsService } from './cats.service';
import { Cat } from './interfaces/cat.interface';
import { RolesGuard } from '../common/guards/roles.guard';
import { Body, Controller, Get, Param, Post, UseGuards } from '@nestjs/common';
import { Roles } from '../common/decorators/roles.decorator';
import { LoggingInterceptor } from '../common/interceptors/logging.interceptor';
import { TransformInterceptor } from '../common/interceptors/transform.interceptor';
import { RolesGuard } from '../common/guards/roles.guard';
import { ParseIntPipe } from '../common/pipes/parse-int.pipe';
import { CatsService } from './cats.service';
import { CreateCatDto } from './dto/create-cat.dto';
import { Cat } from './interfaces/cat.interface';

@Controller('cats')
@UseGuards(RolesGuard)
@UseInterceptors(LoggingInterceptor, TransformInterceptor)
@Controller('cats')
export class CatsController {
constructor(private readonly catsService: CatsService) {}

Expand All @@ -36,8 +25,8 @@ export class CatsController {
@Get(':id')
findOne(
@Param('id', new ParseIntPipe())
id,
id: number,
) {
// logic
// get by ID logic
}
}
12 changes: 12 additions & 0 deletions sample/10-fastify/src/core/core.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { Module } from '@nestjs/common';
import { APP_INTERCEPTOR } from '@nestjs/core';
import { LoggingInterceptor } from './interceptors/logging.interceptor';
import { TransformInterceptor } from './interceptors/transform.interceptor';

@Module({
providers: [
{ provide: APP_INTERCEPTOR, useClass: TransformInterceptor },
{ provide: APP_INTERCEPTOR, useClass: LoggingInterceptor },
],
})
export class CoreModule {}
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,17 @@ import {
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

export interface Response<T> {
data: T;
}

@Injectable()
export class TransformInterceptor implements NestInterceptor {
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
export class TransformInterceptor<T>
implements NestInterceptor<T, Response<T>> {
intercept(
context: ExecutionContext,
next: CallHandler<T>,
): Observable<Response<T>> {
return next.handle().pipe(map(data => ({ data })));
}
}

0 comments on commit f48a0c9

Please sign in to comment.