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

// Создает папку, пишет данные о созданной папке в базу
// Возвращает имя созданной папки
// arg  - это пустой объект, только для соблюдения синтаксиса
// user - это данные клиента [3, "ivanov", "Иванов", "Ян", "Карлович"]
module.exports = async (arg, user) => {
   try {
      // Промисификатор коллбэка создания папки
      const crFolder = id => {
         return new Promise((resolve, reject) => {
            fs.mkdir(__dirname + "/../draft/" + id, {recursive: true}, e => {
               if (e) reject("none"); else resolve(id);
            })
         })
      };
      let now = new Date();
      let id  = (Math.round(now.getTime()/100) - 1596e7).toString(36);
      let res = await crFolder(id);
      
      // Делаем запись в базу
      // Поле status (число) имеет следующие значения:
      //    0 - создана папка на сервере            (готовится автором)
      //    1 - черновик поступил в редакцию        (получена редакцией)
      //    2 - просмотрен редактором с замечаниями (замечания по оформлению)
      //    3 - просмотрен редактором без замеч.    (передана рецензенту)
      //    4 - получена рецензия с замечаниями     (замечания рецензента)
      //    5 - получена рецензия без замечаний     (передана корректору)
      //    6 - пройдена корректура                 (готовится к публикации)
      //    7 - опубликована                        (опубликована)
      if (res != "none") 
         db.articles.insert({_id: id, us: user[1], coauth: {}, status: 0});

      return res; 
   }
   catch(e) {return "none";}
};
