createFolder.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * СОЗДАНИЕ ПАПКИ НА СЕРВЕРЕ ДЛЯ БУДУЩЕЙ СТАТЬИ
  3. * Copyright © 2021, А.М.Гольдин. ISC license
  4. */
  5. "use strict";
  6. // Создает папку, пишет данные о созданной папке в базу
  7. // Возвращает имя созданной папки
  8. // arg - это пустой объект, только для соблюдения синтаксиса
  9. // user - это данные клиента [3, "ivanov", "Иванов", "Ян", "Карлович"]
  10. module.exports = async (arg, user) => {
  11. try {
  12. // Промисификатор коллбэка создания папки
  13. const crFolder = id => {
  14. return new Promise((resolve, reject) => {
  15. fs.mkdir(__dirname + "/../draft/" + id, {recursive: true}, e => {
  16. if (e) reject("none"); else resolve(id);
  17. })
  18. })
  19. };
  20. let now = new Date();
  21. let id = (Math.round(now.getTime()/100) - 1596e7).toString(36);
  22. let res = await crFolder(id);
  23. // Делаем запись в базу
  24. // Поле status (число) имеет следующие значения:
  25. // 0 - создана папка на сервере (готовится автором)
  26. // 1 - черновик поступил в редакцию (получена редакцией)
  27. // 2 - просмотрен редактором с замечаниями (замечания по оформлению)
  28. // 3 - просмотрен редактором без замеч. (передана рецензенту)
  29. // 4 - получена рецензия с замечаниями (замечания рецензента)
  30. // 5 - получена рецензия без замечаний (передана корректору)
  31. // 6 - пройдена корректура (готовится к публикации)
  32. // 7 - опубликована (опубликована)
  33. if (res != "none")
  34. db.articles.insert({_id: id, us: user[1], coauth: {}, status: 0});
  35. return res;
  36. }
  37. catch(e) {return "none";}
  38. };