|  | @@ -119,12 +119,12 @@ Db.prototype.fileExist = function (username, filename) {
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -Db.prototype.getFile = function (username, filename) {
 | 
	
		
			
				|  |  | -    if (typeof username !== 'string' || typeof filename !== 'string') {
 | 
	
		
			
				|  |  | +Db.prototype.getFile = function (username, fileId) {
 | 
	
		
			
				|  |  | +    if (typeof username !== 'string' || typeof fileId !== 'string') {
 | 
	
		
			
				|  |  |          return false;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      return new Promise((resolve, reject) => {
 | 
	
		
			
				|  |  | -        this.db.all(sql.getFile, [username, filename], (err, rows) => {
 | 
	
		
			
				|  |  | +        this.db.all(sql.getFile, [username, fileId], (err, rows) => {
 | 
	
		
			
				|  |  |              if (err) {
 | 
	
		
			
				|  |  |                  if (global.verbose) {
 | 
	
		
			
				|  |  |                      console.error(err);
 | 
	
	
		
			
				|  | @@ -141,15 +141,20 @@ Db.prototype.addFile = function (username, filename, data) {
 | 
	
		
			
				|  |  |      if (typeof username !== 'string' || typeof filename !== 'string' || typeof data !== 'string') {
 | 
	
		
			
				|  |  |          return false;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    // Verification que le nom n'est pas deja pris pour l'utilisateur
 | 
	
		
			
				|  |  | -    this.fileExist(username, filename).then((result) => {
 | 
	
		
			
				|  |  | -        if (!result) {
 | 
	
		
			
				|  |  | -            // Ajoute les données de base du fichier
 | 
	
		
			
				|  |  | -            this._execute(sql.addFile, [filename, data]);
 | 
	
		
			
				|  |  | -            // Recupère l'id de l'insert
 | 
	
		
			
				|  |  | -            this.db.all(sql.lastId, (err, rows) => {
 | 
	
		
			
				|  |  | +    // Ajout du fichier
 | 
	
		
			
				|  |  | +    return new Promise((resolve, reject) => {
 | 
	
		
			
				|  |  | +        // Ajoute les données de base du fichier
 | 
	
		
			
				|  |  | +        this._execute(sql.addFile, [filename, data]);
 | 
	
		
			
				|  |  | +        // Recupère l'id du fichier
 | 
	
		
			
				|  |  | +        this.db.all(sql.lastId, (err, rows) => {
 | 
	
		
			
				|  |  | +            if (err) {
 | 
	
		
			
				|  |  | +                if (global.verbose) {
 | 
	
		
			
				|  |  | +                    console.error(err);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                resolve(false);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  |                  const fileId = rows[0].lastId;
 | 
	
		
			
				|  |  | -                // Calcul le hash
 | 
	
		
			
				|  |  | +                //Calcul du hash
 | 
	
		
			
				|  |  |                  let hash = fileId + '-' + username + '-' + filename;
 | 
	
		
			
				|  |  |                  hash = crypto.createHash('md5').update(hash).digest('base64');
 | 
	
		
			
				|  |  |                  hash = hash.replace(/=/g, '');
 | 
	
	
		
			
				|  | @@ -157,13 +162,21 @@ Db.prototype.addFile = function (username, filename, data) {
 | 
	
		
			
				|  |  |                  this._execute(sql.addFileHash, [hash, fileId]);
 | 
	
		
			
				|  |  |                  // Recupération de l'utilisateur
 | 
	
		
			
				|  |  |                  this.getUser(username).then((user) => {
 | 
	
		
			
				|  |  | -                    // Ajoute le lien entre utilisateur et fichier
 | 
	
		
			
				|  |  | -                    this._execute(sql.addUserFile, [user.id, fileId]);
 | 
	
		
			
				|  |  | +                    if (user === false) {
 | 
	
		
			
				|  |  | +                        if (global.verbose) {
 | 
	
		
			
				|  |  | +                            console.error(err);
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        resolve(false);
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        // Ajoute le lien entre utilisateur et fichier
 | 
	
		
			
				|  |  | +                        this._execute(sql.addUserFile, [user.id, fileId]);
 | 
	
		
			
				|  |  | +                        // Retourne le hash du fichier
 | 
	
		
			
				|  |  | +                        resolve(hash);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                  });
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  | -    return true;
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Db.prototype.updateFile = function (username, filename, data) {
 |