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.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..ca33f4f 100644 --- a/cloud/javascript-app/src/config/myconfig.service.ts +++ b/cloud/javascript-app/src/config/myconfig.service.ts @@ -1,7 +1,40 @@ -import { Injectable } from '@nestjs/common'; +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() export class MyConfigService { - constructor() { - } + + static getDBConfig(): DynamicModule { + + const config = { + imports: [ + TypeOrmModule.forRoot({ + type: process.env.DB_TYPE as DB_Type, + 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], + } + } }