1
1
// eslint-disable-next-line simple-import-sort/imports
2
2
import 'reflect-metadata' ;
3
- import { CORS_ORIGINS , CREDENTIALS , DBURL , isProduction , PORT , SENTRY_DSN , jwtStrategy } from './config' ;
3
+ import { CORS_ORIGINS , CREDENTIALS , MONGO_URI , DATABASE , isProduction , PORT , SENTRY_DSN , jwtStrategy } from './config' ;
4
4
5
5
import * as Sentry from '@sentry/node' ;
6
6
import bodyParser from 'body-parser' ;
7
- import { defaultMetadataStorage as classTransformerDefaultMetadataStorage } from 'class-transformer/cjs/storage' ;
8
- import { validationMetadatasToSchemas } from 'class-validator-jsonschema' ;
7
+
9
8
import cookieParser from 'cookie-parser' ;
10
9
import cors from 'cors' ;
11
10
import express , { Application , ErrorRequestHandler , RequestHandler } from 'express' ;
@@ -14,9 +13,7 @@ import hpp from 'hpp';
14
13
import http from 'http' ;
15
14
import mongoose from 'mongoose' ;
16
15
import passport from 'passport' ;
17
- import { getMetadataArgsStorage , useExpressServer } from 'routing-controllers' ;
18
- import { routingControllersToSpec } from 'routing-controllers-openapi' ;
19
- import swaggerUi from 'swagger-ui-express' ;
16
+ import { useExpressServer } from 'routing-controllers' ;
20
17
import xss from 'xss-clean' ;
21
18
22
19
import handlingErrorsMiddleware from './middlewares/handlingErrors.middleware' ;
@@ -26,16 +23,17 @@ let serverConnection: http.Server;
26
23
export default class App {
27
24
private app : Application ;
28
25
private port : string | number ;
26
+ private controllers : Function [ ] = [ ] ;
29
27
30
28
constructor ( controllers : Function [ ] ) {
31
29
this . app = express ( ) ;
32
30
this . port = PORT || 8080 ;
31
+ this . controllers = controllers ;
33
32
34
33
this . initSentry ( ) ;
35
34
this . initMiddlewares ( ) ;
36
35
this . initRoutes ( controllers ) ;
37
36
38
- this . initSwagger ( controllers ) ;
39
37
this . initHandlingErrors ( ) ;
40
38
}
41
39
@@ -74,37 +72,6 @@ export default class App {
74
72
} ) ;
75
73
}
76
74
77
- private initSwagger ( controllers : Function [ ] ) {
78
- const schemas = validationMetadatasToSchemas ( {
79
- classTransformerMetadataStorage : classTransformerDefaultMetadataStorage ,
80
- refPointerPrefix : '#/components/schemas/' ,
81
- } ) ;
82
-
83
- const routingControllersOptions = {
84
- controllers : controllers ,
85
- } ;
86
-
87
- const storage = getMetadataArgsStorage ( ) ;
88
- const spec = routingControllersToSpec ( storage , routingControllersOptions , {
89
- components : {
90
- schemas,
91
- securitySchemes : {
92
- basicAuth : {
93
- scheme : 'basic' ,
94
- type : 'http' ,
95
- } ,
96
- } ,
97
- } ,
98
- info : {
99
- description : 'API Generated with `routing-controllers-openapi` package' ,
100
- title : 'API' ,
101
- version : '1.0.0' ,
102
- } ,
103
- } ) ;
104
-
105
- this . app . use ( '/api-docs' , swaggerUi . serve , swaggerUi . setup ( spec ) ) ;
106
- }
107
-
108
75
private initHandlingErrors ( ) {
109
76
if ( isProduction ) {
110
77
// The error handler must be before any other error middleware and after all controllers
@@ -114,7 +81,7 @@ export default class App {
114
81
}
115
82
116
83
static async initDB ( ) {
117
- await mongoose . connect ( DBURL ) ;
84
+ await mongoose . connect ( ` ${ MONGO_URI } / ${ DATABASE } ` ) ;
118
85
}
119
86
120
87
static async closeDB ( ) {
@@ -146,4 +113,8 @@ export default class App {
146
113
public getServer = ( ) => {
147
114
return this . app ;
148
115
} ;
116
+
117
+ public get getControllers ( ) {
118
+ return this . controllers ;
119
+ }
149
120
}
0 commit comments