1234567891011121314151617181920212223242526272829303132333435 |
- /**
- * УДАЛЕНИЕ ФАЙЛА, ЗАГРУЖЕННОГО ПОЛЬЗОВАТЕЛЕМ
- * Copyright © 2021, А.М.Гольдин. ISC license
- */
- "use strict";
- // Возвращает success или none
- // fullName - это имя файла типа kjhg65j/12.svg
- // user - это данные клиента [3, "ivanov", "Иванов", "Ян", "Карлович"]
- module.exports = async (fullName, user) => {
- try {
- if (!/^\w+\/\d+\.(jpg|png|svg)$/.test(fullName)) return "none";
- // Промисификатор коллбэка удаления файла
- const deleteFile = path => {
- return new Promise((resolve, reject) => {
- fs.rm(__dirname + "/../draft/" + path, e => {
- if (e) reject("none"); else resolve("success");
- })
- })
- };
- // Является ли юзер автором статьи?
- let id = fullName.split('/')[0];
- let res = await dbFind("articles", {_id: id});
- if (!res.length) return "none";
- if (res[0].us !== user[1]) return "none";
- // Удаляем файл
- let success = await deleteFile(fullName);
- return success;
- }
- catch(e) {return "none";}
- };
|