(function(window) { var Gitana = window.Gitana; Gitana.Response = Base.extend( /** @lends Gitana.Response.prototype */ { /** * @constructs * * @class Gitana Response that wraps a response document from the Gitana server. * * @param {Object} object json response object */ constructor: function(object) { Gitana.copyInto(this, object); }, /** * Gets the id ("_doc") field of the response (if one is available). * * @public * * @returns {String} id */ getId: function() { return this["_doc"]; }, /** * Indicates whether this response is a Status Document. * * @public * * @returns {Boolean} whether this is a status document */ isStatusDocument: function() { return (this["ok"] || this["error"]); }, /** * Indicates whether this response is a List Document. * * @public * * @returns {Boolean} whether this is a list document */ isListDocument: function() { return this["total_rows"] && this["rows"] && this["offset"]; }, /** * Indicates whether this response is a Data Document. * * @public * * @returns {Boolean} whether this is a data document */ isDataDocument: function() { return (!this.isStatusDocument() && !this.isListDocument()); }, /** * Indicates whether the response is "ok". * * @public * * @returns {Boolean} whether the response is "ok" */ isOk: function() { // assume things are ok var ok = true; if (this.isStatusDocument()) { if (this["ok"] != null) { ok = this["ok"]; } } // any document type can specify an error if (this["error"]) { ok = false; } return ok; }, /** * Indicates whetehr the response is in an error state. * * @public * * @returns {Boolean} whether the response is in an error state */ isError: function() { return !this.isOk(); } }); })(window);