From 8c8e543d05fd07d80755598100bafdd0eb3b6ebe Mon Sep 17 00:00:00 2001 From: xtian7489 Date: Thu, 25 Apr 2024 16:23:08 -0300 Subject: [PATCH] agrega claustros schema --- lib/models/claustro.js | 27 +++++++++++ lib/models/index.js | 1 + migrations/2000000000005-cargar-facultades.js | 47 +++++++++++++------ 3 files changed, 61 insertions(+), 14 deletions(-) create mode 100644 lib/models/claustro.js diff --git a/lib/models/claustro.js b/lib/models/claustro.js new file mode 100644 index 0000000..e58ad51 --- /dev/null +++ b/lib/models/claustro.js @@ -0,0 +1,27 @@ +const mongoose = require('mongoose') +const Schema = mongoose.Schema + +const ClaustroSchema = new Schema({ + nombre: { type: String, required: true, minlength: 1, maxlength: 200 } +}, { id: false }) +// esto último hace que no esté el campo _id e id duplicado + +ClaustroSchema.statics.findByName = function (name, cb) { + return this.findOne({ name: name }).exec(cb) +} + +/** + * Make Schema `.toObject()` and + * `.toJSON()` parse getters for + * proper JSON API response + */ + +ClaustroSchema.set('toObject', { getters: true }) +ClaustroSchema.set('toJSON', { getters: true }) +/** + * Expose Model + */ + +module.exports = function initialize(conn) { + return conn.model('Claustro', ClaustroSchema) +} diff --git a/lib/models/index.js b/lib/models/index.js index 4adddb3..e378f0c 100644 --- a/lib/models/index.js +++ b/lib/models/index.js @@ -41,6 +41,7 @@ module.exports = exports = function models () { exports.User = require('./user')(usersDb) exports.Text = require('./text')(connection) exports.Facultad = require('./facultad')(connection) + exports.Claustro = require('./claustro')(connection) exports.Padron = require('./padron')(connection) exports.aboutUs = require('./aboutUs')(connection) diff --git a/migrations/2000000000005-cargar-facultades.js b/migrations/2000000000005-cargar-facultades.js index f95e6a0..7fb0ab2 100644 --- a/migrations/2000000000005-cargar-facultades.js +++ b/migrations/2000000000005-cargar-facultades.js @@ -1,23 +1,29 @@ const dbReady = require('lib/models').ready const models = require('lib/models') -const nombreMigrationParaLog = 'cargar facultades' +const nombreMigrationParaLog = 'cargar facultades y claustros' const Facultad = models.Facultad +const Claustro = models.Claustro const facultades = [ - - { nombre: 'CNAI'}, - { nombre: 'ESM'}, - { nombre: 'F.PSICO'}, - { nombre: 'FAUD'}, - { nombre: 'FCA'}, - { nombre: 'FCEyN'}, - { nombre: 'FCEyS'}, - { nombre: 'FCSYTS'}, - { nombre: 'FD'}, - { nombre: 'FH'}, - { nombre: 'FI'}, - { nombre: 'Rec'}, + { nombre: 'Arquitectura, Urbanismo y Diseño', abreviacion: 'FAUD' }, + { nombre: 'Facultad de Ciencias Agrarias', abreviacion: 'FCA' }, + { nombre: 'Facultad de Ciencias de la Salud y Trabajo Social', abreviacion: 'FCSYTS' }, + { nombre: 'Facultad de Ciencias Económicas y Sociales', abreviacion: 'FCEyS' }, + { nombre: 'Facultad de Ciencias Exactas y Naturales', abreviacion: 'FCEyN' }, + { nombre: 'Facultad de Derecho', abreviacion: 'FD' }, + { nombre: 'Facultad de Humanidades', abreviacion: 'FH' }, + { nombre: 'Facultad de Ingeniería', abreviacion: 'FI' }, + { nombre: 'Facultad de Psicologia', abreviacion: 'F.PSICO' }, + { nombre: 'Escuela Superior de Medicina', abreviacion: 'ESM' }, + { nombre: 'Colegio Nacional Arturo Illia', abreviacion: 'CNAI' }, + { nombre: 'Rectorado', abreviacion: 'Rec' }, +] +const claustros = [ + { nombre: 'Estudiantes' }, + { nombre: 'Docentes' }, + { nombre: 'Nodocentes' }, + { nombre: 'Graduados/as' }, ] /** @@ -40,9 +46,22 @@ exports.up = function up (done) { }) }) }) + .then(() => { + return new Promise((resolve, reject) => { + Claustro.collection.count({}, (err, count) => { + if (err) reject(new Error(err)) + if (count) { + console.log('Ya hay claustros cargados (%s), salteando migración', count) + reject(new SaltearPromises()) + } + resolve() + }) + }) + }) // Agregamos data .then(() => Facultad.collection.insertMany(facultades)) + .then(() => Claustro.collection.insertMany(claustros)) // Todo OK .then(() => {