From 5bbabea6e85b9a98de3864c024fdbc3e404e936e Mon Sep 17 00:00:00 2001 From: davideutsch Date: Thu, 9 Mar 2023 15:28:50 +0100 Subject: [PATCH 1/2] restructuring of config service --- .../src/config/myconfig.module.ts | 44 ++++--------------- .../src/config/myconfig.service.ts | 38 ++++++++++++++-- 2 files changed, 44 insertions(+), 38 deletions(-) diff --git a/cloud/javascript-app/src/config/myconfig.module.ts b/cloud/javascript-app/src/config/myconfig.module.ts index 5799aae..d543e89 100644 --- a/cloud/javascript-app/src/config/myconfig.module.ts +++ b/cloud/javascript-app/src/config/myconfig.module.ts @@ -7,40 +7,14 @@ import { MyConfigService } from './myconfig.service'; @Module({}) export class MyConfigModule { - static register(): DynamicModule { - - if(!process.env.DB_LESS || process.env.DB_LESS == "no"){ - return { - imports: [ - TypeOrmModule.forRoot({ - type: 'mysql', - host: process.env.DB_HOST, - port: parseInt(process.env.DB_PORT), - username: process.env.DB_USERNAME, - password: process.env.DB_PASSWORD, - database: process.env.DB_DATABASE, - //entities: [User], - autoLoadEntities: true, - synchronize: true, - }), - UsersModule, - ], - module: MyConfigModule, - providers: [ - MyConfigService, - ], - exports: [MyConfigService], - }; - } - else { - console.log('Without DB'); - return { - module: MyConfigModule, - providers: [ - MyConfigService, - ], - exports: [MyConfigService], - }; - } + + static register(): DynamicModule { + + if (process.env.DB_LESS == "yes") { + console.log('Without DB'); + return MyConfigService.getDBLessConfig(); } + else + return MyConfigService.getDBConfig(); } +} diff --git a/cloud/javascript-app/src/config/myconfig.service.ts b/cloud/javascript-app/src/config/myconfig.service.ts index 8569c7d..dc9f86d 100644 --- a/cloud/javascript-app/src/config/myconfig.service.ts +++ b/cloud/javascript-app/src/config/myconfig.service.ts @@ -1,7 +1,39 @@ -import { Injectable } from '@nestjs/common'; +import { DynamicModule, Injectable } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { UsersModule } from 'src/users/users.module'; +import { MyConfigModule } from './myconfig.module'; @Injectable() export class MyConfigService { - constructor() { - } + + static getDBConfig(): DynamicModule { + + const config = { + imports: [ + TypeOrmModule.forRoot({ + type: 'mysql', + host: process.env.DB_HOST, + port: parseInt(process.env.DB_PORT), + username: process.env.DB_USERNAME, + password: process.env.DB_PASSWORD, + database: process.env.DB_DATABASE, + //entities: [User], + autoLoadEntities: true, + synchronize: true, + }), + UsersModule, + ] + } + + return { ...config, ...this.getDBLessConfig() }; + } + + + static getDBLessConfig(): DynamicModule { + return { + module: MyConfigModule, + providers: [MyConfigService], + exports: [MyConfigService], + } + } } From 7b82cf7e5d10ccb4d97cd5cedc60a310e7a1e0e4 Mon Sep 17 00:00:00 2001 From: davideutsch Date: Thu, 9 Mar 2023 15:30:49 +0100 Subject: [PATCH 2/2] simple database change now enabled --- cloud/javascript-app/.env | 1 + cloud/javascript-app/src/config/db_types.enum.ts | 12 ++++++++++++ cloud/javascript-app/src/config/myconfig.service.ts | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 cloud/javascript-app/src/config/db_types.enum.ts diff --git a/cloud/javascript-app/.env b/cloud/javascript-app/.env index 4ae8254..b9f70b4 100644 --- a/cloud/javascript-app/.env +++ b/cloud/javascript-app/.env @@ -1,3 +1,4 @@ +DB_TYPE=mysql DB_HOST=localhost DB_PORT=3306 DB_USERNAME=root diff --git a/cloud/javascript-app/src/config/db_types.enum.ts b/cloud/javascript-app/src/config/db_types.enum.ts new file mode 100644 index 0000000..85884b7 --- /dev/null +++ b/cloud/javascript-app/src/config/db_types.enum.ts @@ -0,0 +1,12 @@ + +export enum DB_Type { + cockroachdb = "cockroachdb", + cordova = "cordova", + mariadb = "mariadb", + mongodb = "mongodb", + mssql = "mssql", + mysql = "mysql", + oracle = "oracle", + postgres = "postgres", + sqlite = "sqlite" +} \ No newline at end of file diff --git a/cloud/javascript-app/src/config/myconfig.service.ts b/cloud/javascript-app/src/config/myconfig.service.ts index dc9f86d..ca33f4f 100644 --- a/cloud/javascript-app/src/config/myconfig.service.ts +++ b/cloud/javascript-app/src/config/myconfig.service.ts @@ -1,6 +1,7 @@ import { DynamicModule, Injectable } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { UsersModule } from 'src/users/users.module'; +import { DB_Type } from './db_types.enum'; import { MyConfigModule } from './myconfig.module'; @Injectable() @@ -11,7 +12,7 @@ export class MyConfigService { const config = { imports: [ TypeOrmModule.forRoot({ - type: 'mysql', + type: process.env.DB_TYPE as DB_Type, host: process.env.DB_HOST, port: parseInt(process.env.DB_PORT), username: process.env.DB_USERNAME,