diff --git a/lib/api.js b/lib/api.js index 93311349..1c35f76f 100644 --- a/lib/api.js +++ b/lib/api.js @@ -546,7 +546,7 @@ exports.update_resources_access_mode_by_ids = function update_resources_access_m * @return {Object} */ exports.add_metadata_field = function add_metadata_field(field, callback, options = {}) { - const params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource", "restrictions"); + const params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource", "restrictions", "allow_dynamic_list_values"); options.content_type = "json"; return call_api("post", ["metadata_fields"], params, callback, options); }; @@ -613,7 +613,7 @@ exports.metadata_field_by_field_id = function metadata_field_by_field_id(externa * @return {Object} */ exports.update_metadata_field = function update_metadata_field(external_id, field, callback, options = {}) { - const params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource", "restrictions", "default_disabled"); + const params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource", "restrictions", "default_disabled", "allow_dynamic_list_values"); options.content_type = "json"; return call_api("put", ["metadata_fields", external_id], params, callback, options); }; diff --git a/test/integration/api/admin/structured_metadata_spec.js b/test/integration/api/admin/structured_metadata_spec.js index 587d5cc6..a1533936 100644 --- a/test/integration/api/admin/structured_metadata_spec.js +++ b/test/integration/api/admin/structured_metadata_spec.js @@ -211,7 +211,8 @@ describe("structured metadata api", function () { }, external_id: EXTERNAL_ID_SET, label: EXTERNAL_ID_SET, - type: 'set' + type: 'set', + allow_dynamic_list_values: true }; return api.add_metadata_field(metadata).then((result) => { expect(result).to.beAMetadataField(); @@ -221,7 +222,8 @@ describe("structured metadata api", function () { external_id: EXTERNAL_ID_SET, label: EXTERNAL_ID_SET, type: 'set', - mandatory: false + mandatory: false, + allow_dynamic_list_values: true }]).to.beAMetadataField(); }); }); @@ -229,28 +231,30 @@ describe("structured metadata api", function () { describe("update_metadata_field", function () { it("should update metadata field by external id", function () { - const newLabel = 'update_metadata_test_new_label' + EXTERNAL_ID_GENERAL; - const newDefaultValue = 'update_metadata_test_new_default_value' + EXTERNAL_ID_GENERAL; + const newLabel = 'update_metadata_test_new_label' + EXTERNAL_ID_SET; const updatedMetadata = { external_id: EXTERNAL_ID_SET, label: newLabel, - type: 'integer', - mandatory: true, - default_value: newDefaultValue + type: "set", + mandatory: false, + allow_dynamic_list_values: true }; - return api.update_metadata_field(EXTERNAL_ID_GENERAL, updatedMetadata) + return api.update_metadata_field(EXTERNAL_ID_SET, updatedMetadata) .then((result) => { expect(result).to.beAMetadataField(); - return api.metadata_field_by_field_id(EXTERNAL_ID_GENERAL); + return api.metadata_field_by_field_id(EXTERNAL_ID_SET); }) .then((result) => { - expect([result, { - external_id: EXTERNAL_ID_GENERAL, - label: newLabel, - type: 'string', - mandatory: true, - default_value: newDefaultValue - }]).to.beAMetadataField(); + expect([ + result, + { + external_id: EXTERNAL_ID_SET, + label: newLabel, + type: "set", + mandatory: false, + allow_dynamic_list_values: true + } + ]).to.beAMetadataField(); }); }); }); diff --git a/types/index.d.ts b/types/index.d.ts index 601be7cd..de0c672f 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -706,6 +706,7 @@ declare module 'cloudinary' { export interface MetadataFieldApiOptions { external_id?: string; + allow_dynamic_list_values?: boolean; type?: string; label?: string; mandatory?: boolean;