diff --git a/schedule.js b/schedule.js new file mode 100644 index 0000000..b9d61e4 --- /dev/null +++ b/schedule.js @@ -0,0 +1,49 @@ +//schedule.js +var http = require('http'); +var database = require('mongoskin').db('mongodb://wallpiece/roosterio'); +var schoolid = 934; + +function lookup(req, res, next, search) { + console.log(search); + var index = database.collection('index'); + index.find({$or : [{id : search}, {name : search}, {first_name : search}, {last_name : search}]}).toArray(function (err, database_entry) { + if (err) console.warn(err); + + if (database_entry.length == 1) { + var link = make_link(database_entry[0]); + res.redirect(link); + } + else if (database_entry.length == 0) { + res.send('No matches were found in the database.'); + } + else { + res.send('Multiple hits were found in the database.'); + } + }); +} + +function make_link(database_entry) { + var link = 'http://roosters5.gepro-osi.nl/roosters/rooster.php?school=' + schoolid + '&type=' + database_entry.type.charAt(0).toUpperCase() + database_entry.type.slice(1) + 'rooster'; + + switch (database_entry.type) { + case 'leerling' : + link += '&afdeling=' + database_entry.studentcategory + '&leerling=' + database_entry.id; + break; + + case 'docent' : + link += '&docenten=' + database_entry.name; + break; + + case 'lokaal' : + link += '&lokalen=' + database_entry.name; + break; + + case 'klas' : + link += '&klassen=' + database_entry.name; + break; + } + + return link; +} + +module.exports = lookup; diff --git a/web.js b/web.js index c2d35c4..58e7404 100644 --- a/web.js +++ b/web.js @@ -1,14 +1,13 @@ //web.js var express = require('express'); +var schedule = require('./schedule.js'); var app = express(); app.get('/', function (req, res) { res.send('Hello world!'); }); -app.param('search', function (req, res, next, search) { - res.send('You searched for ' + search); -}); +app.param('search', schedule); app.get('/rooster/:search', function (req, res) { next();