#
# 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, params = {})
      res = Faraday.get endpoint_url(path), params, 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
