2016-03-27 23:24:28 -04:30
var mongoose = require ( 'mongoose' ) ;
var express = require ( 'express' ) ;
var app = express ( ) ;
var db = mongoose . connection ;
//var Professor = require('./models/professor');
var bodyParser = require ( 'body-parser' ) ;
app . use ( express . static ( _ _dirname ) ) ;
app . use ( bodyParser . json ( ) ) ;
2016-05-02 07:03:55 -04:30
var nodemailer = require ( 'nodemailer' ) ;
// create reusable transporter object using the default SMTP transport
var transporter = nodemailer . createTransport ( 'smtps://reynaldo.reyes.4@gmail.com:zwvdhyensrwnfipt@smtp.gmail.com' ) ;
2016-03-27 23:24:28 -04:30
db . on ( 'error' , console . error ) ;
db . once ( 'open' , function ( ) {
var assitanceSchema = new mongoose . Schema ( {
2016-04-11 00:05:59 -04:30
day : String ,
assistance : Boolean
2016-03-27 23:24:28 -04:30
} ) ;
var studentSchema = new mongoose . Schema ( {
id : Number ,
name : String ,
lastname : String ,
email : String ,
assistance : Number ,
btaddress : String ,
2016-04-11 00:05:59 -04:30
assistanceTotal : [ assitanceSchema ]
2016-03-27 23:24:28 -04:30
} ) ;
var sectionSchema = new mongoose . Schema ( {
name : String ,
2016-04-11 00:05:59 -04:30
code : String ,
2016-03-27 23:24:28 -04:30
course : String ,
semester : String ,
students : [ studentSchema ]
} ) ;
var courseSchema = new mongoose . Schema ( {
2016-04-11 00:05:59 -04:30
code : String ,
2016-03-27 23:24:28 -04:30
name : String ,
credits : Number ,
description : String ,
sections : [ sectionSchema ]
} ) ;
var professorSchema = new mongoose . Schema ( {
id : Number ,
name : String ,
lastname : String ,
email : String ,
number : String ,
role : String ,
password : String ,
courses : [ courseSchema ]
} ) ;
var Professor = mongoose . model ( 'Professor' , professorSchema ) ;
//Professor CRUD
app . get ( '/professors' , function ( req , res ) {
2016-04-11 00:05:59 -04:30
console . log ( 'Received GET ALL professors request' ) ;
2016-03-27 23:24:28 -04:30
Professor . find ( function ( err , docs ) {
2016-04-11 00:05:59 -04:30
//console.log(docs);
2016-03-27 23:24:28 -04:30
res . json ( docs ) ;
} )
} ) ;
app . get ( '/professors/:id' , function ( req , res ) {
2016-04-11 00:05:59 -04:30
console . log ( 'Received GET professor request' ) ;
2016-03-27 23:24:28 -04:30
console . log ( req . params ) ;
2016-04-26 10:46:51 -04:30
Professor . findById ( req . params . id ,
2016-03-27 23:24:28 -04:30
function ( err , docs ) {
2016-04-26 10:46:51 -04:30
console . log ( docs ) ;
2016-03-27 23:24:28 -04:30
res . json ( docs ) ;
} )
} ) ;
app . post ( '/professors' , function ( req , res ) {
2016-04-11 00:05:59 -04:30
console . log ( 'Received ADD professor request' ) ;
//console.log(req.body);
2016-03-27 23:24:28 -04:30
var professor = new Professor ( {
id : req . body . id ,
name : req . body . name ,
lastname : req . body . lastname ,
email : req . body . email ,
number : req . body . number ,
role : req . body . role ,
password : req . body . password ,
course : [
{ name : "Materia" }
]
} )
professor . save (
function ( err , docs ) {
2016-05-02 07:03:55 -04:30
// setup e-mail data with unicode symbols
var mailOptions = {
from : '"Rey Reyes" <reynaldo.reyes.4@gmail.com>' , // sender address
to : req . body . email , // list of receivers
subject : 'Registro en la aplicación M.A.S.A.' ,
text : 'Este es un correo automatizado para informarle que ha sido registrado en la aplicación M.A.S.A. sus credenciales son: ' + req . body . id + ' / ' + req . body . password ,
html : 'Este es un correo automatizado para informarle que ha sido registrado en la aplicación <b> M.A.S.A.</b> sus credenciales son: ' + req . body . id + ' / ' + req . body . password
} ;
// send mail with defined transport object
transporter . sendMail ( mailOptions , function ( error , info ) {
if ( error ) {
return console . log ( error ) ;
}
console . log ( 'Message sent: ' + info . response ) ;
} ) ;
2016-03-27 23:24:28 -04:30
res . json ( docs ) ;
} )
} ) ;
app . delete ( '/professors/:id' , function ( req , res ) {
2016-04-11 00:05:59 -04:30
console . log ( "Received DELETE professor request..." ) ;
2016-03-27 23:24:28 -04:30
console . log ( req . params ) ;
Professor . findByIdAndRemove ( req . params . id ,
function ( err , docs ) {
2016-04-11 00:05:59 -04:30
//console.log(docs);
2016-03-27 23:24:28 -04:30
res . json ( docs ) ;
} ) ;
} ) ;
app . put ( '/professors/:id' , function ( req , res ) {
2016-04-11 00:05:59 -04:30
console . log ( "Received UPDATE professor request" ) ;
2016-03-27 23:24:28 -04:30
console . log ( "params:" + req . params ) ;
console . log ( "body:" + req . body ) ;
Professor . findById ( req . params . id , function ( err , professor ) {
if ( err )
res . send ( err ) ;
if ( typeof req . body . email != 'undefined' ) professor . email = req . body . email ;
if ( typeof req . body . number != 'undefined' ) professor . number = req . body . number ;
if ( typeof req . body . courses != 'undefined' ) professor . courses = req . body . courses ;
professor . save ( function ( err , docs ) {
if ( err )
res . send ( err ) ;
console . log ( docs ) ;
res . json ( docs ) ;
} ) ;
} ) ;
} ) ;
} ) ;
mongoose . connect ( 'mongodb://localhost/AttendanceDB' ) ;
app . listen ( 3000 ) ;
2016-04-11 00:05:59 -04:30
console . log ( "server running on port 3000" ) ;