2015-06-27 15:03:50 +02:00
//api.js
var lookup = require ( './lookup' ) ;
var schedule = require ( './schedule' ) ;
function parse ( req , res , next , api ) {
req . api = true ;
if ( api == 'search' ) {
if ( ! req . query . name ) error ( 'You didn\'t send the needed queries: name' , res ) ;
else {
lookup . api ( req , function ( lookup ) {
if ( lookup . error ) error ( lookup . error , res ) ;
2015-08-15 21:07:22 +02:00
else sendResponse ( lookup . data , res ) ;
2015-06-27 15:03:50 +02:00
} ) ;
}
}
else if ( api == 'schedule' ) {
if ( ! req . query . name ) error ( 'You didn\'t send the needed queries : name' , res ) ;
else {
lookup . api ( req , function ( lookup ) {
if ( lookup . error ) error ( lookup . error , res ) ;
else {
if ( lookup . data . length > 1 || lookup . data . length == 0 ) error ( 'The request that you did had multiple responses or none, make sure that your query returns one.' , res , lookup . data )
else {
2015-08-15 21:07:22 +02:00
schedule . api ( lookup , function ( scheduleData ) {
sendResponse ( scheduleData , res , true ) ;
2015-06-27 15:03:50 +02:00
} ) ;
}
}
} )
}
}
}
function error ( str , res , data ) {
res . set ( 'Content-Type' , 'application/json' ) ;
var error = JSON . stringify ( { 'error' : str , 'data' : data } , null , 2 ) ;
res . status ( 400 ) . end ( error ) ;
return ;
}
2015-08-15 21:07:22 +02:00
function sendResponse ( data , res , disablePretty ) {
2015-06-27 15:03:50 +02:00
res . set ( 'Content-Type' , 'application/json' ) ;
2015-08-15 21:07:22 +02:00
var response = JSON . stringify ( { 'data' : data } , null , disablePretty ? 0 : 2 ) ;
2015-06-27 15:03:50 +02:00
res . status ( 200 ) . end ( response ) ;
return ;
}
module . exports = parse ;