Sha256: 0b0729d757863924a2b87b79a4fa83029405fce4e9b36f38695075fb6d21baf5
Contents?: true
Size: 683 Bytes
Versions: 5
Compression:
Stored size: 683 Bytes
Contents
# frozen_string_literal: true module Authsignal module Middleware class JsonRequest < Faraday::Middleware def on_request(env) return if env.body.nil? parsed_body = JSON.parse(env.body) if parsed_body.is_a?(Hash) env.body = camelcase_keys(parsed_body).to_json end rescue JSON::ParserError # noop end private def camelcase_keys(hash) hash.transform_keys { |key| snake_to_camel(key.to_s).to_sym } end def snake_to_camel(str) str.split('_').inject([]) do |buffer, e| buffer.push(buffer.empty? ? e : e.capitalize) end.join end end end end
Version data entries
5 entries across 5 versions & 1 rubygems