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

// Возвращает строку для вставки в <select>
//  arg - это "rev" или "corr"
// 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 "none";

      // Допустимые статусы для рецензента и корректора
      let status = arg == "rev" ? [1, 3, 5, 7] : [2, 3, 6, 7];

      // Получаем всех сотрудников из базы и фильтруем
      let resp = '';
      if (user[1] == ADMIN)
         resp += `<option value="ADMIN">Я (главный редактор)</option>`;
      let res = await dbFind("staff", {});
      for (let sotr of res) {
         if (!status.includes(sotr.roles)) continue;
         resp += `<option value="${sotr.login}">${sotr.fio}</option>`;
      }      

      if (!resp) resp = "none";
      return resp;
   }
   catch(e) {console.info(e); return "none";}
};
