1234567891011121314151617181920212223242526272829303132333435363738 |
- /**
- * ПОЛУЧЕНИЕ ПЕРЕЧНЕЙ ID СТАТЕЙ В РАБОТЕ (ТОЛЬКО ПО ЗАПРОСУ РЕДАКТОРА)
- * Copyright © 2021, А.М.Гольдин. ISC license
- */
- "use strict";
- // Возвращает объект (ключи - статусы)
- // {st1: ["ghf46s8h", "hdsfk567"], st2: ["sd546243e"], ...}
- // либо пустой объект
- // arg - это неиспользуемая переменная, только для соблюдения синтаксиса
- // user - это данные клиента [3, "ivanov", "Иванов", "Ян", "Карлович"]
- module.exports = async (arg, user) => {
- try {
- // Проверяем, является ли он редактором
- let roles = 0;
- let staff = await dbFind("staff", {login: user[1]});
- if (staff[0]) roles = staff[0].roles;
- let isEditor =
- roles.toString(2).padStart(3, '0')[0] == "1" || user[1] == ADMIN;
- if (!isEditor) return "{}";
- // Получаем массив с неопубликованными статьями
- let res = await dbFind("articles",
- {$where: function () {return (this.status < 7);}}
- );
- if (!res.length) return "{}";
- // Разбираем его по статусам и отдаем клиенту
- let resp = {};
- for (let art of res) {
- if (!resp[`st${art.status}`]) resp[`st${art.status}`] = [];
- resp[`st${art.status}`].push(art._id);
- }
- return JSON.stringify(resp);
- }
- catch(e) {console.info(e); return "{}";}
- };
|