Class: BrazeAPI::Response::RaiseError

Inherits:
Faraday::Response::RaiseError
  • Object
show all
Defined in:
lib/braze_api/response/raise_error.rb

Overview

Extends the Faraday RaiseError middleware to handle errors

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ Object

rubocop:disable Metrics/AbcSize, Metrics/MethodLength



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/braze_api/response/raise_error.rb', line 7

def on_complete(env) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
  case env[:status]
  when 400
    raise BrazeAPI::Errors::BadRequest, JSON.parse(response_values(env)[:body])['message']
  when 401
    raise BrazeAPI::Errors::Unauthorized
  when 404
    raise BrazeAPI::Errors::NotFound, JSON.parse(response_values(env)[:body])['message']
  when 429
    raise BrazeAPI::Errors::RateLimited, JSON.parse(response_values(env)[:body])['message']
  when ClientErrorStatuses
    raise BrazeAPI::Errors::InternalServerError,
          JSON.parse(response_values(env)[:body])['message']
  else
    super
  end
end