Skip to content
Snippets Groups Projects
Select Git revision
  • master default
1 result

server.js

Blame
  • server.js 2.31 KiB
    /** 
     * @module server 
     * @version 1.0
     * @requires express
     * @license open source
     * @author steve battle
     */
    
    // see openshift blog
    // https://blog.openshift.com/run-your-nodejs-projects-on-openshift-in-two-simple-steps/
    // use PORT environment variable or default 8080
    //console.log("PORT="+process.env.PORT);
    //console.log("OPENSHIFT_NODEJS_PORT="+process.env.OPENSHIFT_NODEJS_PORT);
    //var port = process.env.OPENSHIFT_NODEJS_PORT || 8080
    var port = 8080;
    // load the things we need
    
    var express = require('express');
    var ws = require('./wslib');
    exports.ws = ws;
    
    /**
     * Web service options. 
     * @var {Object} options 
     */
    
    var conf = require('./config/dev.json');
    var options = conf.options;
    exports.options = options;
    
    var app = express();
    // set the view engine to ejs
    app.set('view engine', 'ejs');
    exports.app = app;
    
    // embed path p for ws invocation
    /** @param {String} p path 
     * @returns {Object} options
     * @author steve battle 
     */
    
    function path(p) {
        options.path = p;
        return options;
    }
    exports.path = path;
    
    // use res.render to load up an ejs view file
    // app.get('/', function(request, response) {
    //    response.render('index');
    // });
    
    // https://bristol.api.urbanthings.io/api/2.0/static/importsources
    
    app.get("/", function (request, response) {
        ws.invoke(path("/api/2.0/static/importsources"), 
        (err,data) => {
            if (err) response.status(404).send("Oops!");
            else response.render('page1', data);
        }) ;
    });
    
    // https://bristol.api.urbanthings.io/api/2.0/static/agencies?importsource=TNDS
    
    app.get("/page2", function (request, response) {
        var importsource = request.query.importsource;
        ws.invoke(path("/api/2.0/static/agencies?importsource=" + importsource), 
        (err,data) => {
            if (err) response.status(404).send("Oops!");
            else response.render('page2', data);
        }) ;
    });
    
    // https://bristol.api.urbanthings.io/api/2.0/static/routes/info/Source?agencyID=UK_TNDS_NOC_FBRI
    
    app.get("/page3", function (request, response) {
        var agencyID = request.query.agencyID;
        ws.invoke(path("/api/2.0/static/routes/info/Source?agencyID=" + agencyID), 
        (err,data) => {
            if (err) response.status(404).send("Oops!");
            else response.render('page3', data);
        }) ;
    });
    
    if (process.env.NODE_ENV!="test") {
        app.listen(port);
        console.log('Listening on port '+port);
    }