module SmstoolsApi # @private module Middleware # @private module Response class HashieJson < Faraday::Middleware CONTENT_TYPE = "Content-Type".freeze def initialize(app, client) super(app) @client = client end def on_complete(env) type = env[:response_headers][CONTENT_TYPE].to_s type = type.split(";", 2).first if type.index(";") return unless type == "application/json" unless env[:body].strip.empty? env[:body] = Hashie::Mash.new(JSON.parse(env[:body])) end end end end end end