Source: lib/request.js

/*jslint node: true */
'use strict';
var logger = require('../utils/logger');
var validUrl = require('valid-url');

/**
 * Library functions for Requests
 */
var request = (function () {
    return {

        /**
         * Validates the request schema
         * @param jsonString
         * @returns {boolean}
         */
        isValid: function (jsonString) {
            logger.info('Validating JSON Request: ' + jsonString);
            var valid = true;
            try {
                var json = JSON.parse(jsonString);
                if (!json.hasOwnProperty("payload")) {
                    logger.warn('Missing Payload');
                    valid = false;
                } else if (json.payload.length <= 0) {
                    logger.warn('Empty Payload');
                    valid = false;
                } else {
                    json.payload.forEach(function (url) {
                        if (typeof url !== "string") {
                            logger.warn('Not a String: ' + url);
                            valid = false;
                        } else {
                            if (!validUrl.isUri(url)) {
                                logger.warn('Not a URI: ' + url);
                                valid = false;
                            }
                        }
                    });
                }
            } catch (err) {
                logger.error('Error in request.isValid: ' + err.message);
                valid = false;
            }
            return valid;
        }
    };

}());

exports = module.exports = request;