Source: jive-sdk-service/routes/dev.js

/*
 * Copyright 2013 Jive Software
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

/**
 * @module devRoutes
 */

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var url = require('url');
var http = require('http');
var q = require('q');
var jive = require("../api");
var mustache = require('mustache');

/**
 * <b>GET /tiles</b>
 * <br>
 * Endpoint for development only.
 * Calling GET on this endpoint returns JSON describing all the tile definitions available on this service.
 *
 * Takes no URL parameters.
 *
 * @param req
 * @param res
 */
exports.tiles = function(req, res){
    var finalizeRequest = function(allDefinitions) {
        var toReturn = [];
        allDefinitions.forEach( function(batch) {
            toReturn = toReturn.concat( batch );
        });

        var conf = jive.service.options;
        var processed = jive.service.getExpandedTileDefinitions(toReturn);
        var body = JSON.stringify(processed, null, 4);

        res.writeHead(200, { 'Content-Type': 'application/json' });
        res.end(body);
    };

    q.all( [ jive.tiles.definitions.findAll(), jive.extstreams.definitions.findAll() ] )
        .then( finalizeRequest );
};

/**
 * Endpoint for development only.
 *
 * Given a target jive host, calling GET on this endpoint will install any
 * tile definitions available on this service onto that jive host.
 *
 * If the jive host rejects the install POST, and returns a location header for a prexisting tile, this utility
 * attempts to update that tile with a PUT.
 *
 * Takes the following URL parameters:
 * - jiveHost: required target Jive host
 * - jivePort: optional target Jive Port, defaults to 80 if not specified
 * - context: optional non-root context path (eg. /sbs)
 * @deprecated
 * @private
 * @param req
 * @param res
 */
exports.installTiles = function( req, res ) {
    req.writeHead( 400 );
    req.end('Deprecated');
};