From 2ccc5e86bc34a5afaef901ca3ae1dca80c6294f4 Mon Sep 17 00:00:00 2001 From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com> Date: Fri, 4 Dec 2020 10:46:27 +0100 Subject: [PATCH] feat(config): update logging and add envconfiguration handling --- src/configuration/config.prod.ts | 21 +++++++++++++++++++++ src/configuration/config.ts | 6 +++--- src/configuration/configuration.service.ts | 11 ++++++++++- src/mailer/mailer.service.ts | 6 +++--- src/structures/structures.service.ts | 5 +++-- template.env | 1 + 6 files changed, 41 insertions(+), 9 deletions(-) create mode 100644 src/configuration/config.prod.ts diff --git a/src/configuration/config.prod.ts b/src/configuration/config.prod.ts new file mode 100644 index 000000000..ca8ee3cac --- /dev/null +++ b/src/configuration/config.prod.ts @@ -0,0 +1,21 @@ +export const configProd = { + url: process.env.MAIL_URL, + token: process.env.MAIL_TOKEN, + host: 'ram.grandlyon.com', + protocol: 'https', + port: '443', + from: 'inclusionnumerique@grandlyon.com', + from_name: 'Réseau des acteurs de la médiation numérique', + replyTo: 'inclusionnumerique@grandlyon.com', + templates: { + directory: './src/mailer/mail-templates', + verify: { + ejs: 'verify.ejs', + json: 'verify.json', + }, + changeEmail: { + ejs: 'changeEmail.ejs', + json: 'changeEmail.json', + }, + }, +}; diff --git a/src/configuration/config.ts b/src/configuration/config.ts index ee0b9db0d..9cc7f1d62 100644 --- a/src/configuration/config.ts +++ b/src/configuration/config.ts @@ -1,9 +1,9 @@ export const config = { url: process.env.MAIL_URL, token: process.env.MAIL_TOKEN, - host: 'ram.grandlyon.com', - protocol: 'https', - port: '443', + host: 'localhost', + protocol: 'http', + port: '4200', from: 'inclusionnumerique@grandlyon.com', from_name: 'Réseau des acteurs de la médiation numérique', replyTo: 'inclusionnumerique@grandlyon.com', diff --git a/src/configuration/configuration.service.ts b/src/configuration/configuration.service.ts index 09d6666ca..e14d70024 100644 --- a/src/configuration/configuration.service.ts +++ b/src/configuration/configuration.service.ts @@ -1,10 +1,19 @@ +import { Logger } from '@nestjs/common'; import * as dotenv from 'dotenv'; import { config } from './config'; +import { configProd } from './config.prod'; export class ConfigurationService { - private _config = config; + private readonly _config; constructor() { // Initializing conf with values from var env + if (process.env.NODE_ENV === 'production') { + this._config = configProd; + Logger.log('App started with production conf', 'ConfigurationService'); + } else { + this._config = config; + Logger.log('App started with dev conf', 'ConfigurationService'); + } dotenv.config(); } diff --git a/src/mailer/mailer.service.ts b/src/mailer/mailer.service.ts index fdebbee31..567520c66 100644 --- a/src/mailer/mailer.service.ts +++ b/src/mailer/mailer.service.ts @@ -28,7 +28,7 @@ export class MailerService { subject: subject, content: html, }); - Logger.log(`[Mailer] Send mail : ${subject}`); + Logger.log(`Send mail : ${subject}`, 'Mailer'); return new Promise((resolve, reject) => { this.httpService .post(process.env.MAIL_URL, data, { @@ -39,11 +39,11 @@ export class MailerService { }) .subscribe( (body) => { - Logger.log(`[Mailer] Send mail : ${subject} success`); + Logger.log(`Send mail : ${subject} success`, 'Mailer'); return resolve(body); }, (err) => { - Logger.error(err); + Logger.error(err, 'Mailer'); return reject(err); } ); diff --git a/src/structures/structures.service.ts b/src/structures/structures.service.ts index 7c9b02198..a7f049580 100644 --- a/src/structures/structures.service.ts +++ b/src/structures/structures.service.ts @@ -82,7 +82,8 @@ export class StructuresService { resolve(structure); }, (err) => { - Logger.error(`[getCoord] Request error: ${err.config.url}`, err); + Logger.error(`Request error: ${err.config.url}`, 'StructureService'); + Logger.error(err); } ); }); @@ -112,7 +113,7 @@ export class StructuresService { public getCoord(numero: string, address: string, zipcode: string): Observable<AxiosResponse<any>> { const req = 'https://download.data.grandlyon.com/geocoding/photon/api' + '?q=' + numero + ' ' + address + ' ' + zipcode; - Logger.log(`[StructureService - getCoord] Request : ${req}`); + Logger.log(`Request : ${req}`, 'StructureService - getCoord'); return this.httpService.get(encodeURI(req)); } } diff --git a/template.env b/template.env index 88a2a0339..79db55d3f 100644 --- a/template.env +++ b/template.env @@ -1,4 +1,5 @@ TAG=<version number> +NODE_ENV=<dev or production> SERVICE_API_BIND_PORT=<service port> JWT_SECRET=<the secret used to sign jwt token> MONGO_ROOT_PASSWORD=<mongo root user password> -- GitLab