Skip to content

Commit 2c2533b

Browse files
authored
feat: add allow_dynamic_list_values parameter support to add_metadata… (#724)
* feat: add allow_dynamic_list_values parameter support to add_metadata_field and update_metadata_field methods * test: add test for updating metadata field with allow_dynamic_list_values
1 parent b89115f commit 2c2533b

File tree

3 files changed

+23
-18
lines changed

3 files changed

+23
-18
lines changed

lib/api.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ exports.update_resources_access_mode_by_ids = function update_resources_access_m
546546
* @return {Object}
547547
*/
548548
exports.add_metadata_field = function add_metadata_field(field, callback, options = {}) {
549-
const params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource", "restrictions");
549+
const params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource", "restrictions", "allow_dynamic_list_values");
550550
options.content_type = "json";
551551
return call_api("post", ["metadata_fields"], params, callback, options);
552552
};
@@ -613,7 +613,7 @@ exports.metadata_field_by_field_id = function metadata_field_by_field_id(externa
613613
* @return {Object}
614614
*/
615615
exports.update_metadata_field = function update_metadata_field(external_id, field, callback, options = {}) {
616-
const params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource", "restrictions", "default_disabled");
616+
const params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource", "restrictions", "default_disabled", "allow_dynamic_list_values");
617617
options.content_type = "json";
618618
return call_api("put", ["metadata_fields", external_id], params, callback, options);
619619
};

test/integration/api/admin/structured_metadata_spec.js

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,8 @@ describe("structured metadata api", function () {
211211
},
212212
external_id: EXTERNAL_ID_SET,
213213
label: EXTERNAL_ID_SET,
214-
type: 'set'
214+
type: 'set',
215+
allow_dynamic_list_values: true
215216
};
216217
return api.add_metadata_field(metadata).then((result) => {
217218
expect(result).to.beAMetadataField();
@@ -221,36 +222,39 @@ describe("structured metadata api", function () {
221222
external_id: EXTERNAL_ID_SET,
222223
label: EXTERNAL_ID_SET,
223224
type: 'set',
224-
mandatory: false
225+
mandatory: false,
226+
allow_dynamic_list_values: true
225227
}]).to.beAMetadataField();
226228
});
227229
});
228230
});
229231

230232
describe("update_metadata_field", function () {
231233
it("should update metadata field by external id", function () {
232-
const newLabel = 'update_metadata_test_new_label' + EXTERNAL_ID_GENERAL;
233-
const newDefaultValue = 'update_metadata_test_new_default_value' + EXTERNAL_ID_GENERAL;
234+
const newLabel = 'update_metadata_test_new_label' + EXTERNAL_ID_SET;
234235
const updatedMetadata = {
235236
external_id: EXTERNAL_ID_SET,
236237
label: newLabel,
237-
type: 'integer',
238-
mandatory: true,
239-
default_value: newDefaultValue
238+
type: "set",
239+
mandatory: false,
240+
allow_dynamic_list_values: true
240241
};
241-
return api.update_metadata_field(EXTERNAL_ID_GENERAL, updatedMetadata)
242+
return api.update_metadata_field(EXTERNAL_ID_SET, updatedMetadata)
242243
.then((result) => {
243244
expect(result).to.beAMetadataField();
244-
return api.metadata_field_by_field_id(EXTERNAL_ID_GENERAL);
245+
return api.metadata_field_by_field_id(EXTERNAL_ID_SET);
245246
})
246247
.then((result) => {
247-
expect([result, {
248-
external_id: EXTERNAL_ID_GENERAL,
249-
label: newLabel,
250-
type: 'string',
251-
mandatory: true,
252-
default_value: newDefaultValue
253-
}]).to.beAMetadataField();
248+
expect([
249+
result,
250+
{
251+
external_id: EXTERNAL_ID_SET,
252+
label: newLabel,
253+
type: "set",
254+
mandatory: false,
255+
allow_dynamic_list_values: true
256+
}
257+
]).to.beAMetadataField();
254258
});
255259
});
256260
});

types/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,7 @@ declare module 'cloudinary' {
706706

707707
export interface MetadataFieldApiOptions {
708708
external_id?: string;
709+
allow_dynamic_list_values?: boolean;
709710
type?: string;
710711
label?: string;
711712
mandatory?: boolean;

0 commit comments

Comments
 (0)