Removing initialize methods from the main/manager class also allows for different iniitalizers in specific task services
37 lines
811 B
Ruby
37 lines
811 B
Ruby
#
|
|
# API Docs: https://docs.btcpayserver.org/API/Greenfield/v1/
|
|
#
|
|
class BtcpayManagerService < ApplicationService
|
|
private
|
|
|
|
def base_url
|
|
@base_url ||= "#{Setting.btcpay_api_url}/stores/#{Setting.btcpay_store_id}"
|
|
end
|
|
|
|
def auth_token
|
|
@auth_token ||= Setting.btcpay_auth_token
|
|
end
|
|
|
|
def headers
|
|
{
|
|
"Content-Type" => "application/json",
|
|
"Accept" => "application/json",
|
|
"Authorization" => "token #{auth_token}"
|
|
}
|
|
end
|
|
|
|
def endpoint_url(path)
|
|
"#{base_url}/#{path.gsub(/^\//, '')}"
|
|
end
|
|
|
|
def get(path)
|
|
res = Faraday.get endpoint_url(path), {}, headers
|
|
JSON.parse(res.body)
|
|
end
|
|
|
|
def post(path, payload)
|
|
res = Faraday.post endpoint_url(path), payload.to_json, headers
|
|
JSON.parse(res.body)
|
|
end
|
|
end
|