Files
freeplanet_serverside/src/server/models/site.js
Paolo Arena 845e244470 Circuits OK
Accounts Ok
Movements OK
2022-09-14 11:32:04 +02:00

154 lines
2.5 KiB
JavaScript
Executable File

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 await 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 {};
};