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