add support for Excon connection options in hub requests
This commit is contained in:
parent
415201e1b4
commit
4b6381367e
|
@ -39,23 +39,33 @@ module DiscourseHub
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.singular_action(action, rel_url, params = {})
|
def self.singular_action(action, rel_url, params = {})
|
||||||
|
connect_opts = connect_opts(params)
|
||||||
JSON.parse(Excon.send(action,
|
JSON.parse(Excon.send(action,
|
||||||
"#{hub_base_url}#{rel_url}",
|
"#{hub_base_url}#{rel_url}",
|
||||||
|
{
|
||||||
headers: { 'Referer' => referer, 'Accept' => accepts.join(', ') },
|
headers: { 'Referer' => referer, 'Accept' => accepts.join(', ') },
|
||||||
query: params,
|
query: params,
|
||||||
omit_default_port: true
|
omit_default_port: true
|
||||||
|
}.merge(connect_opts)
|
||||||
).body)
|
).body)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.collection_action(action, rel_url, params = {})
|
def self.collection_action(action, rel_url, params = {})
|
||||||
|
connect_opts = connect_opts(params)
|
||||||
JSON.parse(Excon.send(action,
|
JSON.parse(Excon.send(action,
|
||||||
"#{hub_base_url}#{rel_url}",
|
"#{hub_base_url}#{rel_url}",
|
||||||
|
{
|
||||||
body: JSON[params],
|
body: JSON[params],
|
||||||
headers: { 'Referer' => referer, 'Accept' => accepts.join(', '), "Content-Type" => "application/json" },
|
headers: { 'Referer' => referer, 'Accept' => accepts.join(', '), "Content-Type" => "application/json" },
|
||||||
omit_default_port: true
|
omit_default_port: true
|
||||||
|
}.merge(connect_opts)
|
||||||
).body)
|
).body)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.connect_opts(params = {})
|
||||||
|
params.delete(:connect_opts)&.except(:body, :headers, :query) || {}
|
||||||
|
end
|
||||||
|
|
||||||
def self.hub_base_url
|
def self.hub_base_url
|
||||||
if Rails.env.production?
|
if Rails.env.production?
|
||||||
ENV['HUB_BASE_URL'] || 'https://api.discourse.org/api'
|
ENV['HUB_BASE_URL'] || 'https://api.discourse.org/api'
|
||||||
|
|
Loading…
Reference in New Issue