Class: Arcp::Job::JobError

Inherits:
Data
  • Object
show all
Defined in:
lib/arcp/job/job_error.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code

Returns:

  • (Object)

    the current value of code



5
6
7
# File 'lib/arcp/job/job_error.rb', line 5

def code
  @code
end

#detailsObject (readonly)

Returns the value of attribute details

Returns:

  • (Object)

    the current value of details



5
6
7
# File 'lib/arcp/job/job_error.rb', line 5

def details
  @details
end

#final_statusObject (readonly)

Returns the value of attribute final_status

Returns:

  • (Object)

    the current value of final_status



5
6
7
# File 'lib/arcp/job/job_error.rb', line 5

def final_status
  @final_status
end

#job_idObject (readonly)

Returns the value of attribute job_id

Returns:

  • (Object)

    the current value of job_id



5
6
7
# File 'lib/arcp/job/job_error.rb', line 5

def job_id
  @job_id
end

#messageObject (readonly)

Returns the value of attribute message

Returns:

  • (Object)

    the current value of message



5
6
7
# File 'lib/arcp/job/job_error.rb', line 5

def message
  @message
end

#retryableObject (readonly)

Returns the value of attribute retryable

Returns:

  • (Object)

    the current value of retryable



5
6
7
# File 'lib/arcp/job/job_error.rb', line 5

def retryable
  @retryable
end

Class Method Details

.from_h(h) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/arcp/job/job_error.rb', line 6

def self.from_h(h)
  h = h.transform_keys(&:to_s)
  new(
    job_id: h.fetch('job_id'),
    final_status: h.fetch('final_status'),
    code: h.fetch('code'),
    message: h['message'],
    retryable: h.fetch('retryable', false),
    details: h['details'] || {}
  )
end

Instance Method Details

#to_exceptionObject



26
27
28
# File 'lib/arcp/job/job_error.rb', line 26

def to_exception
  Arcp::Errors.for(code, message: message, details: details)
end

#to_hObject



18
19
20
21
22
23
24
# File 'lib/arcp/job/job_error.rb', line 18

def to_h
  out = { 'job_id' => job_id, 'final_status' => final_status,
          'code' => code, 'retryable' => retryable }
  out['message'] = message if message
  out['details'] = details unless details.empty?
  out
end