Add GranblueError and move app errors to extend it
This commit is contained in:
parent
6ba5335668
commit
a08421722f
8 changed files with 77 additions and 52 deletions
|
|
@ -16,7 +16,7 @@ module Api::V1
|
|||
rescue_from Api::V1::UnauthorizedError, with: :render_unauthorized_response
|
||||
rescue_from ActionController::ParameterMissing, with: :render_unprocessable_entity_response
|
||||
|
||||
rescue_from StandardError do |e|
|
||||
rescue_from GranblueError do |e|
|
||||
render_error(e)
|
||||
end
|
||||
|
||||
|
|
@ -50,7 +50,11 @@ module Api::V1
|
|||
|
||||
### Error response methods
|
||||
def render_error(error)
|
||||
render action: 'errors', json: error.to_hash, status: error.http_status
|
||||
if error
|
||||
render action: 'errors', json: error.to_hash, status: error.http_status
|
||||
else
|
||||
render action: 'errors'
|
||||
end
|
||||
end
|
||||
|
||||
def render_unprocessable_entity_response(exception)
|
||||
|
|
|
|||
|
|
@ -1,22 +1,22 @@
|
|||
module Api::V1
|
||||
class FavoriteAlreadyExistsError < StandardError
|
||||
def http_status
|
||||
422
|
||||
end
|
||||
|
||||
def code
|
||||
"favorite_already_exists"
|
||||
end
|
||||
|
||||
def message
|
||||
"This user has favorited this party already"
|
||||
end
|
||||
|
||||
def to_hash
|
||||
{
|
||||
message: message,
|
||||
code: code
|
||||
}
|
||||
end
|
||||
class FavoriteAlreadyExistsError < GranblueError
|
||||
def http_status
|
||||
422
|
||||
end
|
||||
|
||||
def code
|
||||
"favorite_already_exists"
|
||||
end
|
||||
|
||||
def message
|
||||
"This user has favorited this party already"
|
||||
end
|
||||
|
||||
def to_hash
|
||||
{
|
||||
message: message,
|
||||
code: code
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
31
app/errors/api/v1/GranblueError.rb
Normal file
31
app/errors/api/v1/GranblueError.rb
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Api
|
||||
module V1
|
||||
# This is the base error that we inherit from for application errors
|
||||
class GranblueError < StandardError
|
||||
def initialize(data)
|
||||
@data = data
|
||||
end
|
||||
|
||||
def http_status
|
||||
422
|
||||
end
|
||||
|
||||
def code
|
||||
'granblue_error'
|
||||
end
|
||||
|
||||
def message
|
||||
'Something went wrong'
|
||||
end
|
||||
|
||||
def to_hash
|
||||
{
|
||||
message: message,
|
||||
code: code
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
module Api::V1
|
||||
class IncompatibleSkillError < StandardError
|
||||
class IncompatibleSkillError < GranblueError
|
||||
def initialize(data)
|
||||
@data = data
|
||||
end
|
||||
|
||||
|
||||
def http_status
|
||||
422
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
module Api::V1
|
||||
class NoJobProvidedError < StandardError
|
||||
class NoJobProvidedError < GranblueError
|
||||
def http_status
|
||||
422
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
module Api::V1
|
||||
class NoJobSkillProvidedError < StandardError
|
||||
class NoJobSkillProvidedError < GranblueError
|
||||
def http_status
|
||||
422
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,22 +1,20 @@
|
|||
module Api::V1
|
||||
class SameFavoriteUserError < StandardError
|
||||
def http_status
|
||||
422
|
||||
end
|
||||
module Api
|
||||
module V1
|
||||
class SameFavoriteUserError < GranblueError
|
||||
def code
|
||||
'same_favorite_user'
|
||||
end
|
||||
|
||||
def code
|
||||
"same_favorite_user"
|
||||
end
|
||||
def message
|
||||
'Users cannot favorite their own parties'
|
||||
end
|
||||
|
||||
def message
|
||||
"Users cannot favorite their own parties"
|
||||
end
|
||||
|
||||
def to_hash
|
||||
{
|
||||
message: message,
|
||||
code: code
|
||||
}
|
||||
end
|
||||
def to_hash
|
||||
{
|
||||
message: message,
|
||||
code: code
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -2,15 +2,7 @@
|
|||
|
||||
module Api
|
||||
module V1
|
||||
class TooManySkillsOfTypeError < StandardError
|
||||
def initialize(data)
|
||||
@data = data
|
||||
end
|
||||
|
||||
def http_status
|
||||
422
|
||||
end
|
||||
|
||||
class TooManySkillsOfTypeError < GranblueError
|
||||
def code
|
||||
'too_many_skills_of_type'
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in a new issue