-
Notifications
You must be signed in to change notification settings - Fork 0
/
backend-controller.code-snippets
110 lines (110 loc) · 3.35 KB
/
backend-controller.code-snippets
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
{
"Controller class template": {
"scope": "typescript",
"prefix": "controller",
"body": [
"import { serializePaginationParams } from '@/utils/pagination.util.js';",
"import {",
" ExpressNextFunction,",
" ExpressRequest,",
" ExpressResponse,",
"} from '@/interfaces/express.interface.js';",
"import {",
" Controller,",
" Delete,",
" Get,",
" Next,",
" Params,",
" Post,",
" Put,",
" Request,",
" Response,",
"} from '@decorators/express';",
"import { CustomLogger, Logger } from '@/providers/logger.provider.js';",
"import { validate } from '@/utils/class-validator.util.js';",
"import { HttpStatus } from '@/enums/http-status.enum.js';",
"import { Injectable } from '@decorators/di';",
"",
"@Controller('/$1')",
"@Injectable()",
"export class ${TM_FILENAME/(.*).controller.ts/${1:/pascalcase}/g}Controller {",
" @Logger()",
" private readonly logger: CustomLogger;",
"",
" @Post('/')",
" async create(",
" @Request() request: ExpressRequest,",
" @Response() response: ExpressResponse,",
" @Next() next: ExpressNextFunction",
" ) {",
" try {",
" return response.status(HttpStatus.Created).json({});",
" } catch (error) {",
" this.logger.fatal(error);",
" next(error);",
" }",
" }",
"",
" @Get('/')",
" async list(",
" @Request() request: ExpressRequest,",
" @Response() response: ExpressResponse,",
" @Next() next: ExpressNextFunction",
" ) {",
" try {",
" const { page, limit } = serializePaginationParams(request);",
" return response.status(HttpStatus.Ok).json({});",
" } catch (error) {",
" this.logger.fatal(error);",
" next(error);",
" }",
" }",
"",
" @Get('/:ID')",
" async get(",
" @Params('ID') ID: string,",
" @Request() request: ExpressRequest,",
" @Response() response: ExpressResponse,",
" @Next() next: ExpressNextFunction",
" ) {",
" try {",
" return response.status(HttpStatus.Ok).json({});",
" } catch (error) {",
" this.logger.fatal(error);",
" next(error);",
" }",
" }",
"",
" @Put('/:ID')",
" async update(",
" @Params('ID') ID: string,",
" @Request() request: ExpressRequest,",
" @Response() response: ExpressResponse,",
" @Next() next: ExpressNextFunction",
" ) {",
" try {",
" return response.status(HttpStatus.Ok).json({});",
" } catch (error) {",
" this.logger.fatal(error);",
" next(error);",
" }",
" }",
"",
" @Delete('/:ID')",
" async delete(",
" @Params('ID') ID: string,",
" @Request() request: ExpressRequest,",
" @Response() response: ExpressResponse,",
" @Next() next: ExpressNextFunction",
" ) {",
" try {",
" return response.sendStatus(HttpStatus.NoContent);",
" } catch (error) {",
" this.logger.fatal(error);",
" next(error);",
" }",
" }",
"}",
]
}
}