unified error handling system

This commit is contained in:
albert
2013-02-22 14:45:39 -05:00
parent a1737b3019
commit ae6e8fce30
10 changed files with 19 additions and 10 deletions

View File

@@ -14,12 +14,12 @@ class ApplicationController < ActionController::Base
protected
def rescue_exception(exception)
@exception = exception
render :action => "static/error", :status => 500
render :template => "static/error", :status => 500
end
def render_pagination_limit
@error_message = "You can view up to 1,000 pages. Please narrow your search terms."
render :action => "static/error", :status => 410
@error_message = "You can only view up to #{Danbooru.config.max_numbered_pages} pages. Please narrow your search terms."
render :template => "static/error", :status => 410
end
def access_denied

View File

@@ -1,6 +1,6 @@
class LegacyController < ApplicationController
before_filter :member_only, :only => [:create_post]
rescue_from PostSets::SearchError, :with => :error
rescue_from PostSets::SearchError, :with => :rescue_exception
def posts
@post_set = PostSets::Post.new(tag_query, params[:page], params[:limit])
@@ -31,9 +31,6 @@ class LegacyController < ApplicationController
def unavailable
render :text => "this resource is no longer available", :status => 410
end
def error
end
private
def tag_query

View File

@@ -2,4 +2,7 @@ class StaticController < ApplicationController
def terms_of_service
render :layout => "blank"
end
def error
end
end

View File

@@ -0,0 +1 @@
[<%= @tags.map {|x| x.to_legacy_json}.join(", ").html_safe %>]

View File

@@ -1 +0,0 @@
{success: false, message: "<%= @exception.to_s %>"}

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<result success="false"><%= @exception.to_s %></result>

View File

View File

@@ -0,0 +1,5 @@
<% if @error_message %>
{success: false, message: <%= raw @error_message.to_json %>}
<% else %>
{success: false, message: <%= raw @exception.to_s.to_json %>}
<% end %>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<% if @error_message %>
<result success="false"><%= @error_message %></result>
<% else %>
<result success="false"><%= @exception.to_s %></result>
<% end %>