universo-platform-3d
50 строк · 1.5 Кб
1import {
2Controller,
3Get,
4InternalServerErrorException,
5Param,
6Post,
7UnauthorizedException,
8UsePipes,
9ValidationPipe
10} from '@nestjs/common'
11import { NODE_ENV } from './util/node-env.enum'
12import { ApiParam } from '@nestjs/swagger'
13@UsePipes(new ValidationPipe({ whitelist: true }))
14@Controller()
15export class AppController {
16@Get()
17getHello(): string {
18const version: string = require('../package.json').version
19return `The Mirror v${version}`
20}
21
22@Get('util/version')
23getHealth(): string {
24const version = require('../package.json').version
25return version
26}
27
28@Post('util/intentional-error-3823937293729373923732949581/:delay') // random string to "hide" the route on dev/staging
29@ApiParam({ name: 'delay', required: false })
30async throwIntentionalError(@Param('delay') delay = 2000) {
31if (Number.isNaN(Number(delay))) {
32delay = 2000
33}
34await new Promise((resolve) => setTimeout(resolve, Number(delay)))
35if (process.env.NODE_ENV !== NODE_ENV.PRODUCTION) {
36throw new InternalServerErrorException('TEST internal server error')
37}
38return new UnauthorizedException() // will only return this on prod
39}
40
41@Post('util/non-responsive-endpoint-9436339442720594681156236885') // random string to "hide" the route
42async nonResponsiveEndpoint() {
43if (process.env.NODE_ENV !== NODE_ENV.PRODUCTION) {
44const delay = 3601000
45await new Promise((resolve) => setTimeout(resolve, delay))
46return
47}
48return new UnauthorizedException() // will only return this on prod
49}
50}
51