Skip to content

Commit a792bc4

Browse files
Add support for allow_dynamic_list_values parameter in MetadataField
1 parent c137fd9 commit a792bc4

2 files changed

Lines changed: 19 additions & 9 deletions

File tree

lib/cloudinary/api.rb

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1037,9 +1037,7 @@ def self.metadata_field_by_field_id(field_external_id, options = {})
10371037
#
10381038
# @see https://cloudinary.com/documentation/admin_api#create_a_metadata_field
10391039
def self.add_metadata_field(field, options = {})
1040-
params = only(field, :type, :external_id, :label, :mandatory, :default_value, :validation, :datasource)
1041-
1042-
call_metadata_api(:post, [], params, options)
1040+
call_metadata_api(:post, [], prepare_metadata_field_params(field), options)
10431041
end
10441042

10451043
# Updates a metadata field by external ID.
@@ -1056,10 +1054,19 @@ def self.add_metadata_field(field, options = {})
10561054
#
10571055
# @see https://cloudinary.com/documentation/admin_api#update_a_metadata_field_by_external_id
10581056
def self.update_metadata_field(field_external_id, field, options = {})
1059-
uri = [field_external_id]
1060-
params = only(field, :label, :mandatory, :default_value, :validation)
1057+
uri = [field_external_id]
10611058

1062-
call_metadata_api(:put, uri, params, options)
1059+
call_metadata_api(:put, uri, prepare_metadata_field_params(field), options)
1060+
end
1061+
1062+
# Prepares optional parameters for add/update_metadata_field API calls.
1063+
# @param [Hash] options Additional options
1064+
# @return [Object] Optional parameters
1065+
def self.prepare_metadata_field_params(field)
1066+
only(field,
1067+
:type, :external_id, :label, :mandatory, :restrictions, :default_value, :default_disabled,
1068+
:validation, :datasource, :allow_dynamic_list_values
1069+
)
10631070
end
10641071

10651072
# Deletes a metadata field definition by external ID.

spec/metadata_spec.rb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,8 @@ def create_metadata_field_for_test(field)
183183
'label' => @external_id_enum,
184184
'datasource' => {
185185
'values' => @datasource_single
186-
}
186+
},
187+
'allow_dynamic_list_values' => true
187188
}
188189
expected = {
189190
:url => /.*\/metadata_fields$/,
@@ -203,10 +204,12 @@ def create_metadata_field_for_test(field)
203204
},
204205
'external_id' => @external_id_set,
205206
'label' => @external_id_set,
206-
'type' => 'set'
207+
'type' => 'set',
208+
'allow_dynamic_list_values' => true
207209
)
208210

209-
expect(result).to be_a_metadata_field('set', 'label' => @external_id_set, 'external_id' => @external_id_set, 'mandatory' => false)
211+
expect(result).to be_a_metadata_field('set', 'label' => @external_id_set, 'external_id' => @external_id_set,
212+
'mandatory' => false, 'allow_dynamic_list_values' => true)
210213
end
211214

212215
it 'should validate default value of a date field' do

0 commit comments

Comments
 (0)