class Fakturan::Response::ParseJSON

Public Instance Methods

on_complete(env) click to toggle source
# File lib/fakturan_nu/middleware/parse_json.rb, line 15
def on_complete(env)
  begin # https://github.com/lostisland/faraday/blob/master/lib/faraday/response.rb
    if env.parse_body? # If we get a result
      env.body = parse(env.body)
    else # If we get 204 = request fine, but no content returned
      env.body = { data: {}, metadata: {}, errors: {} }
    end
  rescue MultiJson::ParseError
    raise Fakturan::Error::ParseError, {:status => env.status, :headers => env.response_headers, :body => env.body}
  end
end
parse(body) click to toggle source
# File lib/fakturan_nu/middleware/parse_json.rb, line 4
def parse(body)
  json = MultiJson.load(body, symbolize_keys: true)

  res = {
    data: json[:data],
    metadata: json[:paging],
    errors: json[:errors]
  }
  return res
end