blob: 5cc5807737eec1d32cd169d7a094e1655e081c60 [file] [log] [blame]
/*
*Licensed to the Apache Software Foundation (ASF) under one
*or more contributor license agreements. See the NOTICE file
*distributed with this work for additional information
*regarding copyright ownership. The ASF licenses this file
*to you under the Apache License, Version 2.0 (the
*"License"); you may not use this file except in compliance
*with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*Unless required by applicable law or agreed to in writing,
*software distributed under the License is distributed on an
*"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
*KIND, either express or implied. See the License for the
*specific language governing permissions and limitations
*under the License.
*/
//noinspection ThisExpressionReferencesGlobalObjectJS
/**
* Created by ryan bridges on 2014-02-05.
*/
(function(global) {
//noinspection JSUnusedAssignment
var name = 'UsergridError',
short,
_name = global[name],
_short = (short && short !== undefined) ? global[short] : undefined;
/*
* Instantiates a new UsergridError
*
* @method UsergridError
* @public
* @params {<string>} message
* @params {<string>} id - the error code, id, or name
* @params {<int>} timestamp
* @params {<int>} duration
* @params {<string>} exception - the Java exception from Usergrid
* @return Returns - a new UsergridError object
*
* Example:
*
* UsergridError(message);
*/
function UsergridError(message, name, timestamp, duration, exception) {
this.message = message;
this.name = name;
this.timestamp = timestamp || Date.now();
this.duration = duration || 0;
this.exception = exception;
}
UsergridError.prototype = new Error();
UsergridError.prototype.constructor = UsergridError;
/*
* Creates a UsergridError from the JSON response returned from the backend
*
* @method fromResponse
* @public
* @params {object} response - the deserialized HTTP response from the Usergrid API
* @return Returns a new UsergridError object.
*
* Example:
* {
* "error":"organization_application_not_found",
* "timestamp":1391618508079,
* "duration":0,
* "exception":"org.usergrid.rest.exceptions.OrganizationApplicationNotFoundException",
* "error_description":"Could not find application for yourorgname/sandboxxxxx from URI: yourorgname/sandboxxxxx"
* }
*/
UsergridError.fromResponse = function(response) {
if (response && "undefined" !== typeof response) {
return new UsergridError(response.error_description, response.error, response.timestamp, response.duration, response.exception);
} else {
return new UsergridError();
}
};
UsergridError.createSubClass = function(name) {
if (name in global && global[name]) return global[name];
global[name] = function() {};
global[name].name = name;
global[name].prototype = new UsergridError();
return global[name];
};
function UsergridHTTPResponseError(message, name, timestamp, duration, exception) {
this.message = message;
this.name = name;
this.timestamp = timestamp || Date.now();
this.duration = duration || 0;
this.exception = exception;
}
UsergridHTTPResponseError.prototype = new UsergridError();
function UsergridInvalidHTTPMethodError(message, name, timestamp, duration, exception) {
this.message = message;
this.name = name || 'invalid_http_method';
this.timestamp = timestamp || Date.now();
this.duration = duration || 0;
this.exception = exception;
}
UsergridInvalidHTTPMethodError.prototype = new UsergridError();
function UsergridInvalidURIError(message, name, timestamp, duration, exception) {
this.message = message;
this.name = name || 'invalid_uri';
this.timestamp = timestamp || Date.now();
this.duration = duration || 0;
this.exception = exception;
}
UsergridInvalidURIError.prototype = new UsergridError();
function UsergridInvalidArgumentError(message, name, timestamp, duration, exception) {
this.message = message;
this.name = name || 'invalid_argument';
this.timestamp = timestamp || Date.now();
this.duration = duration || 0;
this.exception = exception;
}
UsergridInvalidArgumentError.prototype = new UsergridError();
function UsergridKeystoreDatabaseUpgradeNeededError(message, name, timestamp, duration, exception) {
this.message = message;
this.name = name;
this.timestamp = timestamp || Date.now();
this.duration = duration || 0;
this.exception = exception;
}
UsergridKeystoreDatabaseUpgradeNeededError.prototype = new UsergridError();
global.UsergridHTTPResponseError = UsergridHTTPResponseError;
global.UsergridInvalidHTTPMethodError = UsergridInvalidHTTPMethodError;
global.UsergridInvalidURIError = UsergridInvalidURIError;
global.UsergridInvalidArgumentError = UsergridInvalidArgumentError;
global.UsergridKeystoreDatabaseUpgradeNeededError = UsergridKeystoreDatabaseUpgradeNeededError;
global[name] = UsergridError;
if (short !== undefined) {
//noinspection JSUnusedAssignment
global[short] = UsergridError;
}
global[name].noConflict = function() {
if (_name) {
global[name] = _name;
}
if (short !== undefined) {
global[short] = _short;
}
return UsergridError;
};
return global[name];
}(this));