Sha256: fcb5c00c6c1a78f98b4ad1672650dc54e98b02d0be01b3c3456231ac1800f1b5
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
# frozen_string_literal: true module LedgerSync module TemplateLedger class Client include Ledgers::Client::Mixin ROOT_URI = 'https://api.template_ledger.com' DEFAULT_HEADERS = { 'Accept' => 'application/json', 'Content-Type' => 'application/json' }.freeze attr_reader :api_key def initialize(args = {}) @api_key = args.fetch(:api_key) end def find(path:) url = File.join(ROOT_URI, path) request( headers: DEFAULT_HEADERS, method: :get, url: url ) end def post(path:, payload:) url = File.join(ROOT_URI, path) request( headers: DEFAULT_HEADERS, method: :post, body: payload, url: url ) end def request(method:, url:, body: nil, headers: {}) LedgerSync::Ledgers::Request.new( client: self, body: body, headers: headers, method: method, url: url ).perform end def self.new_from_env(**override) new( { api_key: ENV.fetch('TEMPLATE_LEDGER_API_KEY') }.merge(override) ) end def self.ledger_attributes_to_save %i[api_key] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ledger_sync-template_ledger-0.1.0 | lib/ledger_sync/template_ledger/client.rb |