lib/parser.js

Summary

Maintainability
B
5 hrs
Test Coverage
var Quorum = require('./quorum');
var textPattern = /^text\/.*/;

exports.parse = function (response, parse) {

    response = Quorum.convert(response);

    for (var key in response) {
        if (Buffer.isBuffer(response[key])) {
            if (key === 'value' && parse) {
                if (response.content_type && response[key].length !== 0) {
                    var contentType = getContentType(response);

                    if (contentType === 'application/json') {
                        response[key] = JSON.parse(response[key]);
                    }
                    else if (textPattern.test(contentType)) {
                        response[key] = response[key].toString();
                    }
                }
                else if (response.key) {
                    response[key] = response[key].toString();
                }
            }
            else if (key !== 'vclock' && key !== 'context' && key !== 'value') {
                response[key] = response[key].toString();
            }
        }
        else if (typeof response[key] === 'object') {
            response[key] = exports.parse(response[key], parse);
        }
    }

    return response;
};

var getContentType = function (response) {

    return response.content_type.toString().toLowerCase();
};