From dd33571463a3f1e9846ab73b8c97d96d659eec7e Mon Sep 17 00:00:00 2001 From: Sergey Elpashev Date: Sat, 18 Nov 2023 02:00:33 +0300 Subject: [PATCH] Added swagger and config read --- backend/config/index.ts | 20 ++++++++++++++++++++ backend/src/main.ts | 10 ++++++++-- backend/src/swagger.ts | 9 +++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 backend/config/index.ts create mode 100644 backend/src/swagger.ts diff --git a/backend/config/index.ts b/backend/config/index.ts new file mode 100644 index 0000000..280614f --- /dev/null +++ b/backend/config/index.ts @@ -0,0 +1,20 @@ +import { config as configInit } from 'dotenv'; + +configInit(); + +export const config = { + database: { + type: 'postgres', + host: process.env.DATABASE_HOST || 'localhost', + port: +process.env.DATABASE_PORT || 5432, + username: process.env.DATABASE_USERNAME || 'postgres', + password: process.env.DATABASE_PASSWORD || '', + database: process.env.DATABASE_DB || 'bot_db', + synchronize: true, + logging: false, + autoLoadEntities: true, + }, + server: { + port: +process.env.SERVER_PORT || 8080, + }, +}; diff --git a/backend/src/main.ts b/backend/src/main.ts index 13cad38..282ef4d 100644 --- a/backend/src/main.ts +++ b/backend/src/main.ts @@ -1,8 +1,14 @@ +import { Logger } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; +import { config } from 'config'; import { AppModule } from './app.module'; +import { swagger } from './swagger'; async function bootstrap() { - const app = await NestFactory.create(AppModule); - await app.listen(3000); + const app = await NestFactory.create(AppModule, { + logger: ['log', 'debug', 'error', 'warn', 'verbose'], + }); + swagger(app); + await app.listen(config.server.port, () => Logger.log(`Server started on port ${config.server.port}`)); } bootstrap(); diff --git a/backend/src/swagger.ts b/backend/src/swagger.ts new file mode 100644 index 0000000..b206b2b --- /dev/null +++ b/backend/src/swagger.ts @@ -0,0 +1,9 @@ +import { INestApplication } from '@nestjs/common'; +import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; + +export function swagger(app: INestApplication): INestApplication { + const config = new DocumentBuilder().setTitle('Neuro website').setDescription('Some description').setVersion('0.1').build(); + const document = SwaggerModule.createDocument(app, config); + SwaggerModule.setup('api', app, document); + return app; +}