Class: HelloSign::Middleware::RaiseError

Inherits:
Faraday::Response::Middleware
  • Object
show all
Defined in:
lib/hello_sign/middleware/raise_error.rb

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/hello_sign/middleware/raise_error.rb', line 9

def on_complete(env)
  body = env[:body] or return

  error = body[:error] and begin
    exception = begin
      case error[:error_name]
      when 'bad_request'
        HelloSign::Error::BadRequest
      when 'unauthorized'
        HelloSign::Error::Unauthorized
      when 'forbidden'
        HelloSign::Error::Forbidden
      when 'not_found'
        HelloSign::Error::NotFound
      when 'unknown'
        HelloSign::Error::Unknown
      when 'team_invite_failed'
        HelloSign::Error::TeamInviteFailed
      when 'invalid_recipient'
        HelloSign::Error::InvalidRecipient
      when 'convert_failed'
        HelloSign::Error::ConvertFailed
      when 'signature_request_cancel_failed'
        HelloSign::Error::SignatureRequestCancelFailed
      else
        HelloSign::Error
      end
    end

    message     = error[:error_msg]
    status_code = env[:response][:status]

    raise exception.new(message, status_code)
  end
end