/**
 *   ПОЛУЧЕНИЕ ID СТАТЕЙ, НАЗНАЧЕННЫХ КОРРЕКТОРУ ИЛИ РЕЦЕНЗЕНТУ
 *   Copyright © 2021, А.М.Гольдин. ISC license
 */
"use strict";

// Возвращает массив id, либо "none" в случае ошибки
//  arg - это "corr" или "rev"
// user - это данные клиента [3, "ivanov", "Иванов", "Ян", "Карлович"]
module.exports = async (arg, user) => {
   try {
      let resp = [], ids;

      // Проверяем его роль
      let roles = "000";
      let staff = await dbFind("staff", {login: user[1]});
      if (staff[0]) roles = staff[0].roles.toString(2).padStart(3, '0');
      if (user[1] == ADMIN) {
         roles   = "111";
         user[1] = "ADMIN";
      }
      if (arg == "corr" && !roles[1])    return "none";
      if (arg == "rev"  && !roles[2])    return "none";
      if (arg != "corr" && arg != "rev") return "none";

      // Загружаем данные из базы
      if (arg == "corr") ids = await dbFind("articles", {corr: user[1]});     
      else               ids = await dbFind("articles", {rev:  user[1]});
      for (let art of ids) resp.push(art._id);

      return JSON.stringify(resp);      
   }
   catch(e) {return "none";}
};
