Class: HelpScoutDocs::Response::ParseJson

Inherits:
FaradayMiddleware::ParseJson
  • Object
show all
Defined in:
lib/help_scout_docs/response/parse_json.rb

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



19
20
21
22
23
24
# File 'lib/help_scout_docs/response/parse_json.rb', line 19

def call(env)
  @app.call(env).on_complete do |environment|
    environment[:body] = parse(environment[:body])
    on_complete(environment)
  end
end

#on_complete(env) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/help_scout_docs/response/parse_json.rb', line 7

def on_complete(env)
  status = env[:status]
  if status == 403 || status == 401
    error = env[:body].fetch(:error, "Unknown Help Scout Docs API error")
    raise Error::AuthenticationError.new(error)
  elsif status == 404
    raise Error::ResourceNotFoundError.new("Help Scout Docs Not found")
  elsif status =~ /^5/
    raise Error::ApiException.new("Help Scout Docs call unsuccessful. Try again later.")
  end
end