Sha256: 39da5427ab4e657bedb6c0f05c8d7d57744eec3a5f041b8dfe924a7dd2252ef8
Contents?: true
Size: 1019 Bytes
Versions: 41
Compression:
Stored size: 1019 Bytes
Contents
module Her module Middleware # This middleware treat the received first-level JSON structure as the resource data. class FirstLevelParseJSON < ParseJSON # Parse the response body # # @param [String] body The response body # @return [Mixed] the parsed response # @private def parse(body) json = parse_json(body) errors = json.delete(:errors) || {} metadata = json.delete(:metadata) || {} { :data => json, :errors => errors, :metadata => metadata } end # This method is triggered when the response has been received. It modifies # the value of `env[:body]`. # # @param [Hash] env The response environment # @private def on_complete(env) env[:body] = case env[:status] when 204 parse('{}') else parse(env[:body]) end end end end end
Version data entries
41 entries across 41 versions & 2 rubygems