Files
freeplanet_serverside/src/server/models/iscrittiConacreis.js
Paolo Arena 396bfea289 Disabled debug Mongoose
Updated modules
fixed tests
2021-09-22 01:13:41 +02:00

199 lines
3.6 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";
// Resolving error Unknown modifier: $pushAll
mongoose.plugin(schema => {
schema.options.usePushEach = true
});
const IscrittiConacreisSchema = new Schema({
idapp: {
type: String,
},
userId: {
type: String,
},
numTesseraInterna: {
type: Number,
default: 0,
},
name: {
type: String,
trim: true,
},
surname: {
type: String,
trim: true,
},
email: {
type: String,
trim: true,
},
fiscalcode: {
type: String,
trim: true,
},
residency_address: {
type: String,
},
residency_city: {
type: String,
trim: true,
},
residency_province: {
type: String,
trim: true,
},
residency_country: {
type: String,
trim: true,
},
residency_zipcode: {
type: String,
trim: true,
},
dateofbirth: {
type: Date,
},
born_city: {
type: String,
trim: true,
},
born_province: {
type: String,
trim: true,
},
born_country: {
type: String,
trim: true,
},
cell_phone: {
type: String,
},
newsletter_on: {
type: Boolean,
},
terms: {
type: Boolean,
},
metodo_pagamento: {
type: Number,
},
ha_pagato: {
type: Boolean,
},
iscrizione_compilata: {
type: Boolean,
},
dateofreg: {
type: Date,
},
dateofapproved: {
type: Date,
},
codiceConacreis: {
type: String,
},
annoTesseramento: {
type: Number
},
motivazioni: {
type: String,
},
competenze_professionalita: {
type: String,
},
cosa_potrei_offrire: {
type: String,
},
cosa_vorrei_ricevere: {
type: String,
},
altre_comunicazioni: {
type: String,
},
come_ci_hai_conosciuto: {
type: String,
},
note: {
type: String,
},
});
IscrittiConacreisSchema.pre('save', async function (next) {
if (this.isNew) {
const myrec = await IscrittiConacreis.findOne().limit(1).sort({ numTesseraInterna: -1 });
if (!!myrec) {
this.numTesseraInterna = myrec._doc.numTesseraInterna + 1;
} else {
this.numTesseraInterna = 0;
}
}
next();
});
var IscrittiConacreis = module.exports = mongoose.model('IscrittiConacreis', IscrittiConacreisSchema);
module.exports.getFieldsForSearch = function () {
return [{ field: 'name', type: tools.FieldType.string },
{ field: 'surname', type: tools.FieldType.string },
{ field: 'email', type: tools.FieldType.string }]
};
module.exports.executeQueryTable = function (idapp, params) {
params.fieldsearch = this.getFieldsForSearch();
return tools.executeQueryTable(this, idapp, params);
};
module.exports.getLastRec = async function (idapp) {
const lastrec = await IscrittiConacreis.find({ idapp }).sort({ dateofreg: -1 }).limit(1);
if (!!lastrec) {
return lastrec[0];
} else {
return null;
}
};
module.exports.getNameSurnameByEmail = async function (idapp, email) {
return await IscrittiConacreis.findOne({
idapp, email,
}, { name: 1, surname: 1 })
.then((rec) => {
return (!!rec) ? `${rec.name} ${rec.surname}` : '';
}).catch((e) => {
console.error('getNameSurnameByUsername', e);
});
};
module.exports.findByEmail = function (idapp, email) {
return IscrittiConacreis.findOne({
'idapp': idapp,
'email': email,
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
});
};
module.exports.findAllIdApp = async function (idapp) {
const myfind = { idapp };
return await IscrittiConacreis.find(myfind, (err, arrrec) => {
return arrrec
});
};