Loquicom 5 lat temu
rodzic
commit
66231737f6
3 zmienionych plików z 43 dodań i 1 usunięć
  1. 22 0
      node/src/db.js
  2. 16 0
      node/src/router.js
  3. 5 1
      node/src/sql.js

+ 22 - 0
node/src/db.js

@@ -225,6 +225,28 @@ Db.prototype.renameFile = function (username, fileId, name) {
     });
 };
 
+
+Db.prototype.deleteFile = function (username, fileId) {
+    if (typeof username !== 'string' || typeof fileId !== 'string') {
+        return false;
+    }
+    // Supprime le fichier
+    return new Promise((resolve, reject) => {
+        this.getFile(username, fileId).then((file) => {
+            if (file === false) {
+                if (gobal.verbose) {
+                    console.info(`File ${fileId} for user ${username} not found`);
+                }
+                resolve(false);
+            } else {
+                this._execute(sql.deleteUserFile, file.id);
+                this._execute(sql.deleteFile, file.id);
+                resolve(true);
+            }
+        });
+    });
+};
+
 Db.prototype._execute = function (sql, params) {
     try {
         if (params !== undefined && params !== null) {

+ 16 - 0
node/src/router.js

@@ -347,7 +347,23 @@ const router = class Router {
     }
 
     deleteFile(req, res) {
+        if (req.params.file === undefined) {
+            res.json(error(ERR_REQUEST));
+            return;
+        }
+        let promise = db.deleteFile(req.params.user, req.params.file);
+        if (promise === false) {
+            res.json(error(ERR_REQUEST));
+            return;
+        }
+        promise.then((result) => {
+            if (result) {
+                res.json(success());
+            } else {
 
+                res.json(error(ERR_FILE));
+            }
+        });
     }
 
 };

+ 5 - 1
node/src/sql.js

@@ -45,7 +45,7 @@ module.exports.fileExist = 'SELECT count(*) as nb FROM FILE f '
     + 'WHERE us_name = lower(?) '
     + 'AND fi_hash = ?;';
 
-module.exports.getFile = 'SELECT fi_hash as hash, fi_name as name, fi_data as data FROM FILE f '
+module.exports.getFile = 'SELECT fi_id as id, fi_hash as hash, fi_name as name, fi_data as data FROM FILE f '
     + 'INNER JOIN USERFILE uf on f.fi_id = uf.fi_id '
     + 'INNER JOIN USER u on uf.us_id = u.us_id '
     + 'WHERE us_name = lower(?) '
@@ -68,3 +68,7 @@ module.exports.lastId = 'SELECT last_insert_rowid() as lastId;';
 
 // Modifie le nom du fichier
 module.exports.renameFile = 'UPDATE FILE SET fi_name = lower(?) WHERE fi_hash = ?';
+
+module.exports.deleteUserFile = 'DELETE FROM USERFILE WHERE fi_id = ?';
+
+module.exports.deleteFile = 'DELETE FROM FILE WHERE fi_id = ?';