|
@@ -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);
|
|
|
});
|
|
|
|