Class: Eco::API::Session::Batch::Errors
- Inherits:
-
Object
- Object
- Eco::API::Session::Batch::Errors
- Defined in:
- lib/eco/api/session/batch/errors.rb
Overview
Helper object linked to a Batch::Status
. Its aim is to manage the errors of the batch status.
Defined Under Namespace
Classes: ErrorCache
Instance Attribute Summary collapse
- #status ⇒ Object readonly
Status object shortcuts collapse
- #logger ⇒ Object
- #method ⇒ Object
- #queue ⇒ Object
-
#session ⇒ Eco::API::Session
Currently active
session
. - #to_index(*args) ⇒ Object
Pure errors helper methods collapse
-
#any? ⇒ Boolean
Was there any Sever (reply) error as a result of this batch?.
-
#by_type ⇒ Hash
Groups
entries
with errortype
. -
#count ⇒ Integer
The number of
entries
that got error. -
#errors ⇒ Array<Hash>
For all the
entries
with errors generates aHash
object.
Messaging methods collapse
Instance Method Summary collapse
-
#initialize(status:) ⇒ Errors
constructor
A new instance of Errors.
- #person_ref(entry) ⇒ Object
Constructor Details
Instance Attribute Details
#status ⇒ Object (readonly)
9 10 11 |
# File 'lib/eco/api/session/batch/errors.rb', line 9 def status @status end |
Instance Method Details
#any? ⇒ Boolean
Was there any Sever (reply) error as a result of this batch?
51 52 53 |
# File 'lib/eco/api/session/batch/errors.rb', line 51 def any? queue.any? {|query| !status[query].success?} end |
#by_type ⇒ Hash
Groups entries
with error type
84 85 86 87 88 89 90 |
# File 'lib/eco/api/session/batch/errors.rb', line 84 def by_type errors.group_by do |e| e.type end.transform_values do |arr| arr.map {|e| e.entry} end end |
#count ⇒ Integer
Returns the number of entries
that got error.
56 57 58 |
# File 'lib/eco/api/session/batch/errors.rb', line 56 def count entries.length end |
#errors ⇒ Array<Hash>
For all the entries
with errors generates a Hash
object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/eco/api/session/batch/errors.rb', line 65 def errors entries.each_with_object([]) do |entry, arr| if body = status[entry].body if errs = body["errors"] errs.each do |msg| arr.push(ErrorCache.new( klass = Eco::API::Error.get_type(msg), klass.new(err_msg: msg, entry: entry, session: session), entry )) end end end end end |
#logger ⇒ Object
42 43 44 |
# File 'lib/eco/api/session/batch/errors.rb', line 42 def logger status.logger end |
#message ⇒ Object
95 96 97 98 99 100 101 102 |
# File 'lib/eco/api/session/batch/errors.rb', line 95 def msgs = strs if msgs.length > 0 "There were #{msgs.length} errors:\n" + msgs.join("\n") else "There were no errors for the current batch '#{method}'!! ;)" end end |
#method ⇒ Object
27 28 29 |
# File 'lib/eco/api/session/batch/errors.rb', line 27 def method status.method end |
#person_ref(entry) ⇒ Object
114 115 116 117 |
# File 'lib/eco/api/session/batch/errors.rb', line 114 def person_ref(entry) row_str = (row = get_row(entry)) ? "(row: #{row}) " : nil "#{row_str}(id: '#{get_attr(entry, :id)}') '#{get_attr(entry, :name)}' ('#{get_attr(entry, :external_id)}': '#{get_attr(entry, :email)}')" end |
#print ⇒ Object
104 105 106 107 108 109 110 111 |
# File 'lib/eco/api/session/batch/errors.rb', line 104 def print msgs = strs if msgs.length > 0 logger.error("There were #{msgs.length} errors:\n" + msgs.join("\n")) else logger.info("There were no errors for the current batch '#{method}'!! ;)") end end |
#queue ⇒ Object
22 23 24 |
# File 'lib/eco/api/session/batch/errors.rb', line 22 def queue status.queue end |
#session ⇒ Eco::API::Session
Returns currently active session
.
38 39 40 |
# File 'lib/eco/api/session/batch/errors.rb', line 38 def session status.session end |
#to_index(*args) ⇒ Object
33 34 35 |
# File 'lib/eco/api/session/batch/errors.rb', line 33 def to_index(*args) status.to_index(*args) end |