mirror of
https://github.com/internetee/registry.git
synced 2025-07-22 18:56:05 +02:00
Merge pull request #1608 from internetee/return-json-errors-from-auction-api
Return JSON response from 404 for Auction API
This commit is contained in:
commit
9524910953
3 changed files with 24 additions and 9 deletions
|
@ -1,6 +1,8 @@
|
|||
module Api
|
||||
module V1
|
||||
class BaseController < ActionController::API
|
||||
rescue_from ActiveRecord::RecordNotFound, with: :not_found_error
|
||||
|
||||
private
|
||||
|
||||
def authenticate
|
||||
|
@ -8,6 +10,12 @@ module Api
|
|||
head :unauthorized unless ip_allowed
|
||||
end
|
||||
|
||||
def not_found_error
|
||||
uuid = params['uuid']
|
||||
json = { error: 'Not Found', uuid: uuid, message: 'Record not found' }
|
||||
render json: json, status: :not_found
|
||||
end
|
||||
|
||||
def allowed_ips
|
||||
ENV['auction_api_allowed_ips'].split(',').map(&:strip)
|
||||
end
|
||||
|
|
|
@ -25,8 +25,11 @@ class ApiV1AuctionDetailsTest < ActionDispatch::IntegrationTest
|
|||
end
|
||||
|
||||
def test_auction_not_found
|
||||
assert_raises ActiveRecord::RecordNotFound do
|
||||
get api_v1_auction_path('non-existing-uuid'), as: :json
|
||||
end
|
||||
expected_uuid = 'not-a-real-path'
|
||||
get api_v1_auction_path(expected_uuid), as: :json
|
||||
assert_response :not_found
|
||||
json = JSON.parse(response.body, symbolize_names: true)
|
||||
assert_equal expected_uuid, json[:uuid]
|
||||
assert_equal 'Not Found', json[:error]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -141,10 +141,14 @@ class ApiV1AuctionUpdateTest < ActionDispatch::IntegrationTest
|
|||
end
|
||||
|
||||
def test_auction_not_found
|
||||
assert_raises ActiveRecord::RecordNotFound do
|
||||
patch api_v1_auction_path('non-existing-uuid'),
|
||||
params: { status: Auction.statuses[:no_bids] },
|
||||
as: :json
|
||||
end
|
||||
expected_uuid = 'non-existing-uuid'
|
||||
patch api_v1_auction_path(expected_uuid),
|
||||
params: { status: Auction.statuses[:no_bids] },
|
||||
as: :json
|
||||
|
||||
assert_response :not_found
|
||||
json = JSON.parse(response.body, symbolize_names: true)
|
||||
assert_equal expected_uuid, json[:uuid]
|
||||
assert_equal 'Not Found', json[:error]
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue