|  | @@ -90,6 +90,53 @@ const router = class Router {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /* --- Definitions des routes --- */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    newFile(user, file, data, res) {
 | 
	
		
			
				|  |  | +        let promise, filename;
 | 
	
		
			
				|  |  | +        // Si on sauvegarde les données dans des fichiers, generation du chemin
 | 
	
		
			
				|  |  | +        if (global.storage === 'file') {
 | 
	
		
			
				|  |  | +            let hash = Date.now() + '-' + req.body.user + '-' + req.params.file;
 | 
	
		
			
				|  |  | +            hash = crypto.createHash('md5').update(hash).digest('base64');
 | 
	
		
			
				|  |  | +            hash = hash.replace(/=/g, '').replace(/\//g, '');
 | 
	
		
			
				|  |  | +            filename = './data/' + hash + '.fdata';
 | 
	
		
			
				|  |  | +            promise = db.addFile(user, file, filename);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // Sinon om met directement en base
 | 
	
		
			
				|  |  | +        else {
 | 
	
		
			
				|  |  | +            promise = db.addFile(user, file, data);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (promise === false) {
 | 
	
		
			
				|  |  | +            res.json(error(ERR_REQUEST));
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        promise.then((fileId) => {
 | 
	
		
			
				|  |  | +            if (fileId === false) {
 | 
	
		
			
				|  |  | +                res.json(ERR_SERV);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                // Si en mode fichier stockage dans un fichier
 | 
	
		
			
				|  |  | +                if ((global.storage === 'file')) {
 | 
	
		
			
				|  |  | +                    fs.writeFile(filename, data, (err) => {
 | 
	
		
			
				|  |  | +                        if (err) {
 | 
	
		
			
				|  |  | +                            if (global.verbose) {
 | 
	
		
			
				|  |  | +                                console.error(err);
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            res.json(error(ERR_SERV));
 | 
	
		
			
				|  |  | +                        } else {
 | 
	
		
			
				|  |  | +                            res.json(success({fileId: fileId, fileName: file}));
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                // Le fichier est directement sauvegarder en base
 | 
	
		
			
				|  |  | +                else {
 | 
	
		
			
				|  |  | +                    res.json(success({fileId: fileId, fileName: file}));
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    saveFile() {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      route() {
 | 
	
		
			
				|  |  |          this.app.get('/', [this.verbose, (req, res) => {
 | 
	
		
			
				|  |  |              res.json(this.doc);
 | 
	
	
		
			
				|  | @@ -195,44 +242,22 @@ const router = class Router {
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  |          }]);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        this.app.post('/save/:file', [this.verbose, this.verifyAuth, (req, res) => {
 | 
	
		
			
				|  |  | -            //Si on sauvegarde les données dans des fichiers, generation du chemin
 | 
	
		
			
				|  |  | -            let data = req.body.data;
 | 
	
		
			
				|  |  | -            if (global.storage === 'file') {
 | 
	
		
			
				|  |  | -                let hash = Date.now() + '-' + req.body.user + '-' + req.params.file;
 | 
	
		
			
				|  |  | -                hash = crypto.createHash('md5').update(hash).digest('base64');
 | 
	
		
			
				|  |  | -                hash = hash.replace(/=/g, '').replace(/\//g, '');
 | 
	
		
			
				|  |  | -                data = './data/' + hash + '.fdata';
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            const promise = db.addFile(req.body.user, req.params.file, data);
 | 
	
		
			
				|  |  | -            if (promise === false) {
 | 
	
		
			
				|  |  | -                res.json(error(ERR_REQUEST));
 | 
	
		
			
				|  |  | -                return;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            promise.then((fileId) => {
 | 
	
		
			
				|  |  | -                if (fileId === false) {
 | 
	
		
			
				|  |  | -                    res.json(ERR_SERV);
 | 
	
		
			
				|  |  | +        this.app.post('/save/:file?', [this.verbose, this.verifyAuth, (req, res) => {
 | 
	
		
			
				|  |  | +            if (req.params.file === undefined) {
 | 
	
		
			
				|  |  | +                if (req.body.file === undefined || req.body.data === undefined) {
 | 
	
		
			
				|  |  | +                    res.json(error(ERR_REQUEST));
 | 
	
		
			
				|  |  |                  } else {
 | 
	
		
			
				|  |  | -                    // Si en mode fichier stockage dans un fichier
 | 
	
		
			
				|  |  | -                    if ((global.storage === 'file')) {
 | 
	
		
			
				|  |  | -                        fs.writeFile(data, req.body.data, (err) => {
 | 
	
		
			
				|  |  | -                            if (err) {
 | 
	
		
			
				|  |  | -                                if (global.verbose) {
 | 
	
		
			
				|  |  | -                                    console.error(err);
 | 
	
		
			
				|  |  | -                                }
 | 
	
		
			
				|  |  | -                                res.json(error(ERR_SERV));
 | 
	
		
			
				|  |  | -                            } else {
 | 
	
		
			
				|  |  | -                                res.json(success({fileId: fileId, fileName: req.params.file}));
 | 
	
		
			
				|  |  | -                            }
 | 
	
		
			
				|  |  | -                        });
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    // Le fichier est directement sauvegarder en base
 | 
	
		
			
				|  |  | -                    else {
 | 
	
		
			
				|  |  | -                        res.json(success({fileId: fileId, fileName: req.params.file}));
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | +                    this.newFile(req.body.user, req.body.file, req.body.data, res);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                if (req.body.data === undefined) {
 | 
	
		
			
				|  |  | +                    res.json(error(ERR_REQUEST));
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    this.saveFile(req.body.user, req.body.data, res);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }]);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  };
 | 
	
	
		
			
				|  | @@ -246,6 +271,7 @@ app.get('/', function (req, res) {
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  app.get('/test/:val?', function (req, res) {
 | 
	
		
			
				|  |  | +    console.log(req.params.val);
 | 
	
		
			
				|  |  |      res.send('Val = ' + req.params.val);
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  
 |