404 on bad page type name

This commit is contained in:
Matchu 2015-07-27 19:36:13 -04:00
parent b9e3d7bff5
commit dfb3aeb9de
2 changed files with 8 additions and 2 deletions

View file

@ -6,6 +6,7 @@ class NeopetsPageImportTasksController < ApplicationController
before_filter :require_source, only: [:create] before_filter :require_source, only: [:create]
rescue_from NeopetsPage::ParseError, with: :on_parse_error rescue_from NeopetsPage::ParseError, with: :on_parse_error
rescue_from NeopetsPage::TypeNotFound, with: :not_found
def create def create
neopets_page = NeopetsPage.new(params[:page_type], params[:expected_index].to_i, params[:neopets_page][:source]) neopets_page = NeopetsPage.new(params[:page_type], params[:expected_index].to_i, params[:neopets_page][:source])

View file

@ -10,7 +10,11 @@ class NeopetsPage
def initialize(type_key, expected_index, source) def initialize(type_key, expected_index, source)
begin
@type = TYPES.fetch(type_key) @type = TYPES.fetch(type_key)
rescue KeyError
raise TypeNotFound, type_key
end
@expected_index = expected_index @expected_index = expected_index
@source = source @source = source
end end
@ -354,5 +358,6 @@ class NeopetsPage
end end
class ParseError < RuntimeError;end class ParseError < RuntimeError; end
class TypeNotFound < RuntimeError; end
end end