module Binance::Utils::Faraday::CustomParamsEncoder

def self.decode(query)

rubocop:disable Metrics/AbcSize
def self.decode(query)
  return nil if query.nil?
  param_pairs = split_query query
  param_pairs.each_with_object({}) do |pair, accu|
    key = unescape(pair[0])
    value = pair[1] || true
    value = unescape(value.to_str.gsub(/\+/, ' ')) if value.respond_to?(:to_str)
    if accu[key].is_a?(Array)
      accu[key] << value
    elsif accu[key] # already a value for this key
      accu[key] = [accu[key], value]
    else
      accu[key] = value
    end
  end
end