Source: lib/response.js

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

/**
 * Library functions for Responses
 */
var response = (function () {
    return {

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

}());

exports = module.exports = response;