mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 09:42:07 +08:00
FIX: Make error in Discourse Hub more descriptive. (#6438)
This commit is contained in:
parent
47f19adac8
commit
1fb1f4c790
|
@ -52,14 +52,25 @@ module DiscourseHub
|
|||
|
||||
def self.collection_action(action, rel_url, params = {})
|
||||
connect_opts = connect_opts(params)
|
||||
JSON.parse(Excon.send(action,
|
||||
|
||||
response = Excon.send(action,
|
||||
"#{hub_base_url}#{rel_url}",
|
||||
{
|
||||
body: JSON[params],
|
||||
headers: { 'Referer' => referer, 'Accept' => accepts.join(', '), "Content-Type" => "application/json" },
|
||||
omit_default_port: true
|
||||
}.merge(connect_opts)
|
||||
).body)
|
||||
)
|
||||
|
||||
if response.status != 200
|
||||
Rails.logger.warn("Discourse Hub (#{hub_base_url}#{rel_url}) returned a bad status #{response.status}.")
|
||||
end
|
||||
|
||||
begin
|
||||
JSON.parse(response.body)
|
||||
rescue JSON::ParserError
|
||||
Rails.logger.error("Discourse Hub returned a bad response body: " + response.body)
|
||||
end
|
||||
end
|
||||
|
||||
def self.connect_opts(params = {})
|
||||
|
|
|
@ -75,4 +75,25 @@ describe DiscourseHub do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '.collection_action' do
|
||||
|
||||
it 'should log a warning if status is not 200' do
|
||||
stub_request(:get, (ENV['HUB_BASE_URL'] || "http://local.hub:3000/api")).
|
||||
to_return(status: 500, body: "", headers: {})
|
||||
|
||||
Rails.logger.expects(:warn)
|
||||
|
||||
DiscourseHub.collection_action(:get, "")
|
||||
end
|
||||
|
||||
it 'should log an error if response is invalid JSON' do
|
||||
stub_request(:get, (ENV['HUB_BASE_URL'] || "http://local.hub:3000/api")).
|
||||
to_return(status: 200, body: "this is not valid JSON", headers: {})
|
||||
|
||||
Rails.logger.expects(:error)
|
||||
|
||||
DiscourseHub.collection_action(:get, "")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user