UNPKG

create-nest-template-malahimdev

Version:

Scaffolds a NestJS template with Swagger, global pipes, exception filters, MongoDB connection and response helpers.

62 lines (55 loc) 1.59 kB
import { Body, Controller, Get, Post, UseGuards } from '@nestjs/common'; import { AppService } from './app.service'; import { ApiBearerAuth, ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { JwtAuthGuard } from './auth/auth.guard'; import { successResponse, errorResponse } from '../helpers/response.helper'; import { CreateItemDto } from './dto/create-item.dto'; @ApiTags('App') @Controller() export class AppController { constructor(private readonly appService: AppService) {} @Get() getHello() { return successResponse('Hello API working ✅', { data: this.appService.getHello(), }); } // ✅ Public API @Get('public-api') getPublic() { return successResponse('Public API fetched successfully 🚀', { data: { info: 'This is a public API' }, }); } // ✅ Protected API @Get('protected-api') @UseGuards(JwtAuthGuard) @ApiBearerAuth() getProtected() { return successResponse('Protected API fetched successfully 🔒', { data: { info: 'This is a protected API' }, }); } // 🚫 Hidden API @Get('hidden-api') @ApiExcludeEndpoint() getHidden() { return successResponse('Hidden API executed 👻', { data: { secret: 'This API is hidden from Swagger' }, }); } // 🆕 POST API with DTO @Post('create-item') createItem(@Body() body: CreateItemDto) { try { return successResponse('Item created successfully ✅', { data: { id: Date.now(), ...body, }, }); } catch (error) { return errorResponse.internal(); } } }