lamassu-server/lib/api_response.js
Josh Harvey 0db7fbcde0 WIP
2014-07-04 19:39:52 -04:00

45 lines
No EOL
1.2 KiB
JavaScript

'use strict';
var ApiResponse = function(config) {
this.config = config;
this.response = config.response;
this.targetVersion = config.targetVersion;
this.version = config.version;
};
ApiResponse.factory = function factory(config) {
return new ApiResponse(config);
};
module.exports = ApiResponse;
ApiResponse.prototype.respond = function respond(err, res, statusCodeOpt) {
var statusCode = statusCodeOpt || 200;
if (err) return this.response.json(statusCode, this._buildErr(err));
var jsonResponse = this._buildResponse(res);
this.response.json(statusCode, jsonResponse);
};
ApiResponse.prototype._buildErr = function _buildErr(err) {
// Handle err as either string or error type
var message = err.message || err;
var name = err.name || null;
if (this.targetVersion < 1) return {err: message, errType: name};
return {err: {
name: name,
message: message,
version: this.version
}
};
};
ApiResponse.prototype._buildResponse = function _buildResponse(res) {
if (this.targetVersion < 1) {
var fullRes = res;
fullRes = fullRes || {};
fullRes.err = null;
return fullRes;
}
return {err: null, result: res || null, version: this.version};
};