var AppConfig, _, actions, flux, makeSimpleStore, ref, store;
flux = require('flux-react');
_ = require('underscore');
makeSimpleStore = require('./helpers').makeSimpleStore;
AppConfig = {
setServerError: function(statusCode, message, requestDetails) {
var opts, request, sparseOpts, url;
url = requestDetails.url, opts = requestDetails.opts;
if (!opts.displayError) {
return;
}
sparseOpts = _.pick(opts, 'method', 'data');
request = {
url: url,
opts: sparseOpts
};
this._currentServerError = {
statusCode: statusCode,
message: message,
request: request
};
return this.emit('server-error', statusCode, message);
},
exports: {
getError: function() {
return this._currentServerError;
},
errorNavigation: function() {
var isGET404, isInRange, ref, request, statusCode;
if (!this._currentServerError) {
return {};
}
ref = this._currentServerError, statusCode = ref.statusCode, request = ref.request;
if (statusCode === 403) {
return {
href: '/'
};
} else {
isGET404 = statusCode === 404 && request.method === 'GET';
isInRange = (400 <= statusCode && statusCode < 600);
return {
shouldReload: isInRange && !isGET404
};
}
}
}
};
ref = makeSimpleStore(AppConfig), actions = ref.actions, store = ref.store;
module.exports = {
AppActions: actions,
AppStore: store
};
|