api and backwards compat work
This commit is contained in:
parent
ae1a0e80a2
commit
3601a6ec12
3 changed files with 79 additions and 30 deletions
44
lib/api_response.js
Normal file
44
lib/api_response.js
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
'use strict';
|
||||
|
||||
var ApiResponse = function(config) {
|
||||
this.config = config;
|
||||
this.reponse = 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));
|
||||
this.response.json(statusCode, this._buildResponse(res));
|
||||
};
|
||||
|
||||
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};
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue