Loquicom 5 жил өмнө
parent
commit
f3d688d82a
1 өөрчлөгдсөн 46 нэмэгдсэн , 17 устгасан
  1. 46 17
      node/src/route.js

+ 46 - 17
node/src/route.js

@@ -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');
 })
-*/
+*/