Module: Zaikio::Client::Helpers
- Defined in:
- lib/zaikio/client/helpers/version.rb,
lib/zaikio/client/helpers/pagination.rb,
lib/zaikio/client/helpers/json_parser.rb,
lib/zaikio/client/helpers/configuration.rb,
lib/zaikio/client/helpers/locale_middleware.rb,
lib/zaikio/client/helpers/authorization_middleware.rb
Defined Under Namespace
Modules: Pagination Classes: AuthorizationMiddleware, Configuration, LocaleMiddleware
Constant Summary collapse
- VERSION =
"0.6.0"
- JSONParser =
Class.new(superclass) do def on_complete(env) case env.status when 404 then raise Spyke::ResourceNotFound.new(nil, url: env.url) when 429 then raise Zaikio::RateLimitedError.new(nil, url: env.url) when (200..299), 422 then env.body = parse_body(env.body, status: env.status) else connection_error(env) end end def connection_error(env) raise Spyke::ConnectionError.new( "Status: #{env.status}, URL: #{env.url}, body: #{env.body}", status: env.status, url: env.url, body: env.body ) end def parse_body(body, status: 200) json = MultiJson.load(body, symbolize_keys: true) errors = json.is_a?(Hash) ? json.delete(:errors) || {} : {} errors = { base: ['unknown'] } if status == 422 && errors.empty? { data: json, metadata: {}, errors: errors } rescue MultiJson::ParseError { data: {}, metadata: {}, errors: {} } end end