/**
 *   ПОЛНОЕ УДАЛЕНИЕ НЕОПУБЛИКОВАННОЙ СТАТЬИ
 *   Copyright © 2021, А.М.Гольдин. ISC license
 */
"use strict";

// Возвращает success или none
//   id - это id удаляемой статьи :)
// user - это данные клиента [3, "ivanov", "Иванов", "Ян", "Карлович"]
module.exports = async (id, user) => {
   try {
      // Промисификатор коллбэка удаления папки
      const delFolder = id => {
         return new Promise((resolve, reject) => {
            fs.rm(__dirname + "/../draft/" + id, {recursive: true}, e => {
               if (e) reject("none"); else resolve("success");
            })
         })
      };

      // Является ли юзер автором статьи или главным редактором?
      // Не опубликована ли уже статья (для НЕ главного редактора)?
      let res = await dbFind("articles", {_id: id});
      if (!res.length) return "none";      
      if (user[1] !== global.ADMIN) {
         if (res[0].us == user[1]) {if (res[0].status == 7) return "none";}
         else return "none";
      }

      // Удаляем папку и запись из базы
      let success = await delFolder(id);
      if (success == "success") db.articles.remove({_id: id}, {});
      return success;
   }
   catch(e) {return "none";}
};
