Sha256: 95c7a4556ac9664f380940bfdd0942c2bfe1d0efce28126582e65879b1309ff0
Contents?: true
Size: 1.4 KB
Versions: 1
Compression:
Stored size: 1.4 KB
Contents
# frozen_string_literal: true module LedgerSync module Adaptors module QuickBooksOnline module Util class ErrorMatcher attr_reader :error, :message def initialize(error:) @error = error @message = error.message.to_s end def body error.response.body rescue NoMethodError nil end def error_class raise NotImplementedError end def error_message (body && JSON.parse(body).dig('fault', 'error')&.first&.fetch('message')) || (body && JSON.parse(body).dig('Fault', 'Error')&.first&.fetch('Message')) || (body && JSON.parse(body).dig('error')) || error.message end def detail (body && JSON.parse(body).dig('fault', 'error')&.first&.fetch('detail')) || (body && JSON.parse(body).dig('Fault', 'Error')&.first&.fetch('Detail')) end def code ((body && JSON.parse(body).dig('fault', 'error')&.first&.fetch('code')) || (body && JSON.parse(body).dig('Fault', 'Error')&.first&.fetch('code'))).to_i end def match? raise NotImplementedError end def output_message raise NotImplementedError end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ledger_sync-1.3.5 | lib/ledger_sync/adaptors/quickbooks_online/util/error_matcher.rb |