From c9a1f067ac58eb8aa13a9aec9708cf8f50d9c20b Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Sun, 28 Jan 2024 13:47:07 +0200 Subject: [PATCH] make API fields match case insensitive --- lib/submitters/normalize_values.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/submitters/normalize_values.rb b/lib/submitters/normalize_values.rb index 4e26a44f..6ab5b5d3 100644 --- a/lib/submitters/normalize_values.rb +++ b/lib/submitters/normalize_values.rb @@ -19,9 +19,11 @@ module Submitters normalized_values = values.to_h.filter_map do |key, value| if fields_uuid_index[key].blank? - key = fields_name_index[key]&.dig('uuid') + original_key = key - raise(UnknownFieldName, "Unknown field: #{key}") if key.blank? && throw_errors + key = fields_name_index[key]&.dig('uuid') || fields_name_index[key.to_s.downcase]&.dig('uuid') + + raise(UnknownFieldName, "Unknown field: #{original_key}") if key.blank? && throw_errors end next if key.blank? @@ -59,7 +61,9 @@ module Submitters end def build_fields_index(fields) - fields.index_by { |e| e['name'] }.merge(fields.index_by { |e| e['name'].to_s.parameterize.underscore }) + fields.index_by { |e| e['name'] } + .merge(fields.index_by { |e| e['name'].to_s.parameterize.underscore }) + .merge(fields.index_by { |e| e['name'].to_s.downcase }) end def normalize_attachment_value(value, account, for_submitter = nil)