Sha256: 34f43c29ca6847dfe04b0501e0c363ddc794d8dbc847dc10d52e332744bbf237

Contents?: true

Size: 742 Bytes

Versions: 3

Compression:

Stored size: 742 Bytes

Contents

# frozen_string_literal: true

require 'faraday'

module ANAF
  module WebServices
    class BalanceSheet # :nodoc:
      BASE_URL = 'https://webservicesp.anaf.ro'
      PATH = '/bilant'

      def initialize(cui, year)
        @cui = cui
        @year = year
      end

      def call
        response = conn.get(PATH, { cui: @cui, an: @year })

        return unless response.success?

        body = JSON.parse(response.body)

        return if body['deni'].nil? || body['deni'].strip.empty?

        body
      rescue Faraday::TimeoutError, Faraday::ConnectionFailed, JSON::ParserError
        nil
      end

      private

        def conn
          @conn ||= Faraday.new(BASE_URL, request: { timeout: 5 })
        end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
anaf-web_services-0.3.1 lib/anaf/web_services/balance_sheet.rb
anaf-web_services-0.3.0 lib/anaf/web_services/balance_sheet.rb
anaf-web_services-0.2.0 lib/anaf/web_services/balance_sheet.rb