diff --git a/src/apps/backoffice/frontend/config/config.ts b/src/apps/backoffice/frontend/config/config.ts index b679f61..de28f95 100644 --- a/src/apps/backoffice/frontend/config/config.ts +++ b/src/apps/backoffice/frontend/config/config.ts @@ -12,7 +12,7 @@ const convictConfig = convict({ doc: 'The Mongo connection URL', format: String, env: 'MONGO_URL', - default: 'mongodb://localhost:27017/dev' + default: 'mongodb://localhost:27017/backoffice-frontend-dev' } } }); diff --git a/src/apps/backoffice/frontend/config/test.json b/src/apps/backoffice/frontend/config/test.json index 0967ef4..6a0d2f4 100644 --- a/src/apps/backoffice/frontend/config/test.json +++ b/src/apps/backoffice/frontend/config/test.json @@ -1 +1,5 @@ -{} +{ + "mongo": { + "url": "mongodb://localhost:27017/backoffice-frontend-test" + } +} diff --git a/src/apps/backoffice/frontend/seed.ts b/src/apps/backoffice/frontend/seed.ts new file mode 100644 index 0000000..a1abc60 --- /dev/null +++ b/src/apps/backoffice/frontend/seed.ts @@ -0,0 +1,18 @@ +import { CoursesCounterRepository } from '../../../Contexts/Mooc/CoursesCounter/domain/CoursesCounterRepository'; +import { CoursesCounter } from '../../../Contexts/Mooc/CoursesCounter/domain/CoursesCounter'; +import { CoursesCounterId } from '../../../Contexts/Mooc/CoursesCounter/domain/CoursesCounterId'; +import container from './config/dependency-injection'; + +export async function seed() { + const repository: CoursesCounterRepository = container.get('Mooc.coursesCounter.CoursesCounterRepository'); + const logger = container.get('Contexts.shared.Logger'); + + const alreadyExists = await repository.search(); + const isTestEnvironment = process.env.NODE_ENV === 'test'; + + if (!alreadyExists && !isTestEnvironment) { + logger.info('[Seed] Initializing CourseCounter'); + const courseCounter = CoursesCounter.initialize(CoursesCounterId.random()); + await repository.save(courseCounter); + } +} diff --git a/src/apps/backoffice/frontend/server.ts b/src/apps/backoffice/frontend/server.ts index 76b7b0a..576a1c5 100644 --- a/src/apps/backoffice/frontend/server.ts +++ b/src/apps/backoffice/frontend/server.ts @@ -1,6 +1,7 @@ import errorHandler from 'errorhandler'; import app from './app'; import container from './config/dependency-injection'; +import { seed } from './seed'; /** * Error Handler. Provides full stack - remove for production @@ -10,9 +11,11 @@ app.use(errorHandler()); /** * Start Express server. */ -const server = app.listen(app.get('port'), () => { +const server = app.listen(app.get('port'), async () => { const winstonLogger = container.get('Contexts.shared.Logger'); + await seed(); + winstonLogger.info( ` Backoffice frontend is running at http://localhost:${app.get('port')} in ${app.get('env')} mode` ); diff --git a/src/apps/mooc_backend/config/config.ts b/src/apps/mooc_backend/config/config.ts index b679f61..bd561bb 100644 --- a/src/apps/mooc_backend/config/config.ts +++ b/src/apps/mooc_backend/config/config.ts @@ -12,7 +12,7 @@ const convictConfig = convict({ doc: 'The Mongo connection URL', format: String, env: 'MONGO_URL', - default: 'mongodb://localhost:27017/dev' + default: 'mongodb://localhost:27017/mooc-backend-dev' } } }); diff --git a/src/apps/mooc_backend/config/test.json b/src/apps/mooc_backend/config/test.json index fcef01b..c18fdd4 100644 --- a/src/apps/mooc_backend/config/test.json +++ b/src/apps/mooc_backend/config/test.json @@ -1,3 +1,3 @@ { - "mongo": { "url": "mongodb://localhost:27017/test" } + "mongo": { "url": "mongodb://localhost:27017/mooc-backend-test" } }