このコミットが含まれているのは:
@@ -64,10 +64,10 @@ class PostImportRowNormaliser
|
||||
return keys unless allow_warning_fields
|
||||
|
||||
keys + [
|
||||
{ fetch_warnings: [] },
|
||||
{ fetchWarnings: [] },
|
||||
{ validation_warnings: [] },
|
||||
{ validationWarnings: [] },
|
||||
{ field_warnings: {} },
|
||||
{ fieldWarnings: {} },
|
||||
{ base_warnings: [] },
|
||||
{ baseWarnings: [] },
|
||||
]
|
||||
end
|
||||
private_class_method :permitted_keys
|
||||
@@ -141,10 +141,12 @@ class PostImportRowNormaliser
|
||||
def self.normalise_warning_values! normalised, allow_warning_fields:
|
||||
return unless allow_warning_fields
|
||||
|
||||
%w[fetch_warnings validation_warnings].each do |field|
|
||||
values = normalised[field]
|
||||
next if values.nil?
|
||||
|
||||
field_warnings = normalised['field_warnings']
|
||||
unless field_warnings.nil? || field_warnings.is_a?(Hash)
|
||||
raise ArgumentError, '警告の形式が不正です.'
|
||||
end
|
||||
field_warnings&.each do |key, values|
|
||||
raise ArgumentError, '警告の形式が不正です.' unless ATTRIBUTE_FIELDS.include?(key) || key == 'url'
|
||||
unless values.is_a?(Array) && values.all? { _1.is_a?(String) }
|
||||
raise ArgumentError, '警告の形式が不正です.'
|
||||
end
|
||||
@@ -152,6 +154,14 @@ class PostImportRowNormaliser
|
||||
raise ArgumentError, '警告が大きすぎます.'
|
||||
end
|
||||
end
|
||||
|
||||
base_warnings = normalised['base_warnings']
|
||||
return if base_warnings.nil?
|
||||
|
||||
unless base_warnings.is_a?(Array) && base_warnings.all? { _1.is_a?(String) }
|
||||
raise ArgumentError, '警告の形式が不正です.'
|
||||
end
|
||||
raise ArgumentError, '警告が大きすぎます.' if base_warnings.any? { _1.bytesize > PostImportUrlListParser::MAX_URL_BYTES }
|
||||
end
|
||||
private_class_method :normalise_warning_values!
|
||||
|
||||
|
||||
新しい課題から参照
ユーザをブロックする