/**
 *   ПОЛУЧЕНИЕ ПЕРЕЧНЕЙ 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 "{}";}
};
