const mongoose = require('mongoose').set('debug', false) const Schema = mongoose.Schema; const tools = require('../tools/general'); mongoose.Promise = global.Promise; mongoose.level = "F"; mongoose.set('debug', false); // Resolving error Unknown modifier: $pushAll mongoose.plugin(schema => { schema.options.usePushEach = true }); const SiteSchema = new Schema({ active: { type: Boolean, }, idapp: { type: String, }, name: { type: String, }, adminemail: { type: String, }, manageremail: { type: String, }, replyTo: { type: String, }, host: { type: String, }, host_test: { type: String, }, portapp: { type: String, }, dir: { type: String, }, dir_test: { type: String, }, email_from: { type: String, }, email_pwd: { type: String, }, telegram_key: { type: String, }, telegram_bot_name: { type: String, }, telegram_key_test: { type: String, }, telegram_bot_name_test: { type: String, }, telegram_support_chat: { type: String, }, pathreg_add: { type: String, }, who: { type: String }, status: { type: String }, note: { type: String }, domain_provider: { type: String, }, domain_expiring: { type: Date }, next_payment: { type: Date }, confsite: { options: { // ConfSite type: Number, default: 0, }, } }); var Site = module.exports = mongoose.model('Site', SiteSchema); module.exports.getFieldsForSearch = function () { return [] }; module.exports.executeQueryTable = async function (idapp, params, userreq) { params.fieldsearch = this.getFieldsForSearch(); // return tools.executeQueryTable(this, null, params); const { User } = require('../models/user'); // Solo l'Admin puó leggerlo const extrapar = params.extrapar; if (extrapar) { return await Site.findOne({idapp: extrapar}, {name: 1, manageremail: 1, confsite: 1}).lean(); } if (User.isAdmin(userreq.perm)) { const myarr = await Site.find({}); return ({ count: myarr.length, rows: myarr }) } }; module.exports.findAll = async function () { const myfind = { active: true }; return Site.find(myfind).lean(); }; module.exports.findAllIdApp = async function (idapp) { const myfind = { idapp, active: true }; let rec = await Site.findOne(myfind).lean(); if (rec) { rec.email_pwd = ''; rec.telegram_key = ''; rec.telegram_key_test = ''; return rec; } return {}; };