| 
					
				 | 
			
			
				@@ -1,3 +1,4 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const fs = require('fs'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const auth = require('./auth'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const db = require('./db'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -7,14 +8,15 @@ const ERR_AUTH = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const ERR_UNKNOW = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const ERR_TOKEN = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const ERR_SERV = 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const ERR_FILE = 6; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // Fonctions de traitement pour les routes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function verifyAuth(req, res, next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(req.body.user === undefined || req.body.token === undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (req.body.user === undefined || req.body.token === undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         res.json(error(ERR_REQUEST)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(auth.isActivated() && !auth.verify(req.body.user, req.body.token)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (auth.isActivated() && !auth.verify(req.body.user, req.body.token)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         res.json(error(ERR_TOKEN)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -22,11 +24,11 @@ function verifyAuth(req, res, next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function verbose(req, res, next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(global.verbose) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (global.verbose) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const nbProp = Object.keys(req.body); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         console.log(`\nCall ${req.route.path} with ${nbProp.length} parameter(s)`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(nbProp.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for(prop in req.body) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (nbProp.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (prop in req.body) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 console.log(`   ${prop}: ${req.body[prop]}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -40,7 +42,7 @@ function error(code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         success: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         code: code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    switch(code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    switch (code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         case ERR_REQUEST: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             answer.message = 'Bad request'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             break; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,6 +58,8 @@ function error(code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         case ERR_SERV: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             answer.message = 'Server error'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        case ERR_FILE: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            answer.message = 'File not found'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             answer.message = 'Unknow error'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -63,10 +67,9 @@ function error(code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function success(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(data === undefined || data === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (data === undefined || data === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return {success: true}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    else if(typeof data !== 'object') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else if (typeof data !== 'object') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return {success: true, data: data}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         data.success = true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -80,7 +83,7 @@ app.get('/authentication', [verbose, (req, res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 app.post('/register', [verbose, (req, res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(req.body.user === undefined || req.body.password === undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (req.body.user === undefined || req.body.password === undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         res.json(error(ERR_REQUEST)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -90,15 +93,15 @@ app.post('/register', [verbose, (req, res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 app.post('/login', [verbose, (req, res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(req.body.user === undefined || req.body.password === undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (req.body.user === undefined || req.body.password === undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         res.json(error(ERR_REQUEST)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     db.getUser(req.body.user).then((user) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(user === undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user === undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             res.json(error(ERR_UNKNOW)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(auth.passwordVerify(req.body.password, user.pass)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (auth.passwordVerify(req.body.password, user.pass)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 res.json(success({token: auth.generateToken(req.body.user)})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 res.json(error(ERR_AUTH)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -108,7 +111,7 @@ app.post('/login', [verbose, (req, res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 app.post('/token', [verbose, (req, res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(req.body.user === undefined || req.body.token === undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (req.body.user === undefined || req.body.token === undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         res.json(error(ERR_REQUEST)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -117,8 +120,7 @@ app.post('/token', [verbose, (req, res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 app.post('/list', [verbose, verifyAuth, (req, res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     db.listFile(req.body.user).then((list) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //console.log(req); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(list === false) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (list === false) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             res.json(error(ERR_SERV)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             res.json(success({ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -129,6 +131,33 @@ app.post('/list', [verbose, verifyAuth, (req, res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+app.get('/get/:file', [verbose, verifyAuth, (req, res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    db.getFile(req.body.user, req.params.file).then((file) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Erreur 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (file === false) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            res.json(error(ERR_SERV)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Création reponse commune 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let result = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fileid: file.fi_hash, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            filename: file.fi_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Recupération données fichier 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (global.storage === 'database') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result.data = file.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            res.json(success(result)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!fs.existsSync(file.data)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                res.json(error(ERR_FILE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fs.readFile(file.data, (err, data) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result.data = data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                res.json(success(result)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 app.get('/', function (req, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     res.send('Hello World!'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -141,4 +170,4 @@ app.get('/test/:val?', function (req, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 app.get(/.*aze$/, function (req, res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     res.send('URL end with aze'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+*/ 
			 |