| // Generated by CoffeeScript 1.8.0 |
| var dumpResponse, dumpingHandler, enhance, utils, _; |
| |
| _ = require('underscore'); |
| |
| utils = require('./utils'); |
| |
| dumpingHandler = function(request, response, uri) { |
| var element, originalSend, _i, _len, _ref, _results; |
| originalSend = response.send; |
| response.send = function(body) { |
| return dumpResponse(originalSend, body, request, response, uri); |
| }; |
| if (request.method !== 'POST') { |
| return; |
| } |
| utils.logVerbose('--------------------------------------------------'); |
| utils.logVerbose("" + request.method + " " + uri + " [request]"); |
| if (_.isArray(request.body)) { |
| _ref = request.body; |
| _results = []; |
| for (_i = 0, _len = _ref.length; _i < _len; _i++) { |
| element = _ref[_i]; |
| _results.push(utils.logVerbose(" " + (enhance(JSON.parse(element))))); |
| } |
| return _results; |
| } else { |
| return utils.logVerbose(" " + (enhance(request.body))); |
| } |
| }; |
| |
| dumpResponse = function(originalSend, body, request, response, uri) { |
| var e, element, _i, _len, _ref, _results; |
| originalSend.call(response, body); |
| if ((_ref = request.method) !== 'GET' && _ref !== 'POST') { |
| return; |
| } |
| try { |
| body = JSON.parse(body); |
| } catch (_error) { |
| e = _error; |
| return; |
| } |
| if (_.isArray(body) && (body.length === 0)) { |
| return; |
| } |
| utils.logVerbose('--------------------------------------------------'); |
| utils.logVerbose("" + request.method + " " + uri + " " + response.statusCode + " [response]"); |
| if (_.isArray(body)) { |
| _results = []; |
| for (_i = 0, _len = body.length; _i < _len; _i++) { |
| element = body[_i]; |
| _results.push(utils.logVerbose(" " + (enhance(JSON.parse(element))))); |
| } |
| return _results; |
| } else { |
| return utils.logVerbose(" " + (enhance(body))); |
| } |
| }; |
| |
| enhance = function(object) { |
| var args, signature; |
| if (!object["interface"] || !object.method || !object.args) { |
| return JSON.stringify(object); |
| } |
| signature = "" + object["interface"] + "." + object.method; |
| args = JSON.stringify(object.args); |
| if (args.length > 500) { |
| args = "" + (args.substr(0, 50)) + "..."; |
| } |
| return "" + signature + "(" + args + ")"; |
| }; |
| |
| module.exports = dumpingHandler; |