123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /**
- * СОЗДАНИЕ ПАПКИ НА СЕРВЕРЕ ДЛЯ БУДУЩЕЙ СТАТЬИ
- * 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";}
- };
|