Skip to content

Commit d17df1a

Browse files
author
Julien Sergent
committed
refactor: Working on reducing coupling between easy classes
1 parent 1c23ad0 commit d17df1a

File tree

6 files changed

+39
-18
lines changed

6 files changed

+39
-18
lines changed

easy/core/Application.js

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,20 @@ class Application extends Configurable {
5757
this.configureEnvironment()
5858

5959
/*
60-
* Build container
60+
* Prepare container
6161
*/
6262
const containerBuilder = new ContainerBuilder( this )
6363
containerBuilder.configure({ includeComponents: true })
6464

6565
/*
66-
* Create and daemonize databases
66+
* Start and daemonize databases
6767
*/
6868
this.databasesManager = new DatabasesManager( this, containerBuilder.container )
6969
this.databasesManager.load()
7070

71+
/*
72+
* Build container
73+
*/
7174
containerBuilder.addToBuild( 'component.databasesmanager', this.databasesManager )
7275

7376
/*
@@ -110,7 +113,6 @@ class Application extends Configurable {
110113
this.plugAuthentication()
111114
this.router.load()
112115
this.initializePassport()
113-
this.plugMiddlewareLogger()
114116
this.app.use( '/', this.router.scope )
115117
}
116118

@@ -159,6 +161,13 @@ class Application extends Configurable {
159161
*/
160162
this.app.use( bodyParser.json() ) // support json encoded bodies
161163
this.app.use( bodyParser.urlencoded({ extended: true }) ) // support encoded bodies
164+
165+
if ( this.config.app.log ) {
166+
this.app.use( morgan(
167+
':date - [:method :url] - [:status, :response-time ms, :res[content-length] B] - [HTTP/:http-version, :remote-addr, :user-agent]',
168+
{ stream: fs.createWriteStream( `${this.kernel.path.root}/logs/traffic.log`, { flags: 'a' }) }
169+
) )
170+
}
162171
}
163172

164173
/**
@@ -176,9 +185,7 @@ class Application extends Configurable {
176185
}
177186

178187
req.setEncoding( 'utf8' )
179-
req.on( 'data', chunk => {
180-
data += chunk
181-
})
188+
req.on( 'data', chunk => data += chunk )
182189
req.on( 'end', () => {
183190
req.rawBody = data
184191
next()
@@ -210,15 +217,6 @@ class Application extends Configurable {
210217
this.app.use( passport.initialize() )
211218
}
212219

213-
/**
214-
* plugMiddlewareLogger - Trace everything that happens on the server
215-
*/
216-
plugMiddlewareLogger() {
217-
if ( this.config.app.log ) {
218-
this.app.use( morgan( ':date - [:method :url] - [:status, :response-time ms, :res[content-length] B] - [HTTP/:http-version, :remote-addr, :user-agent]', { stream: fs.createWriteStream( `${this.kernel.path.root}/logs/traffic.log`, { flags: 'a' }) }) )
219-
}
220-
}
221-
222220
/**
223221
* getEnv - get node environment
224222
*

easy/interfaces/Writer.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* @class Writer
3+
*/
4+
class Writer {
5+
/**
6+
* Write the message on specific support
7+
*
8+
* @param {string} message
9+
* @param {object} context
10+
*
11+
* @returns {any}
12+
*/
13+
async write( message, context ) {}
14+
}
15+
16+
module.exports = Writer

easy/interfaces/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ module.exports.Analyzer = require( './Analyzer' )
1111
module.exports.Configurable = require( './Configurable' )
1212
module.exports.Document = require( './Document' )
1313
module.exports.SecurityAccess = require( './SecurityAccess' )
14+
module.exports.Writer = require( './Writer' )

easy/log/LogWriter.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@
1010
const File = require( '../fs/File' )
1111
const Console = require( '../core/Console' )
1212
const { strtr } = require( '../lib/string' )
13+
const Writer = require( '../interfaces/Writer' )
14+
1315

1416
/**
1517
* @class LogWriter
18+
* @extends {Writer}
1619
*/
17-
class LogWriter {
20+
class LogWriter extends Writer {
1821
/**
1922
* Creates an instance of LogWriter.
2023
*
@@ -25,6 +28,8 @@ class LogWriter {
2528
* @memberOf LogWriter
2629
*/
2730
constructor( logDirectoryManager ) {
31+
super()
32+
2833
this.logDirectoryManager = logDirectoryManager
2934
}
3035

easy/log/Logger.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
class Logger {
2828
/**
2929
* @constructor
30-
* @param {LogWriter} writer
30+
* @param {Writer} writer
3131
*/
3232
constructor( writer ) {
3333
this._writer = writer

todo.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
----------| NOW |----------
33
-----------------------------
44

5-
- Réduire le couplage (par exemple dans LogDirectoryManager, enlever application du constructeur et juste envoyer le path du dossier log)
65
- refactor Router, Application, Controller classes
6+
- Voir pour déléguer des tâches entre Application et Kernel ou virer Kernel
7+
- Working on reusable components (Logger, Router, etc.)
78
- pouvoir rm un dossier non vide
89
- faire les tests du vendor
910
- exporter role et user dans un repo externe, importable

0 commit comments

Comments
 (0)