diff --git a/.codegen.json b/.codegen.json index 96dc81896..d5071b09e 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "c370934", "specHash": "a4bdc72", "version": "10.3.0" } +{ "engineHash": "41c28e1", "specHash": "1617aaf", "version": "10.3.0" } diff --git a/.github/workflows/build-and-test-daily.yml b/.github/workflows/build-and-test-daily.yml index 189771e63..7cd5a2dc9 100644 --- a/.github/workflows/build-and-test-daily.yml +++ b/.github/workflows/build-and-test-daily.yml @@ -2,6 +2,10 @@ name: Build and Test daily on: schedule: - cron: '20 1 * * 1-5' + +permissions: + contents: read + jobs: build-and-test: runs-on: ubuntu-latest diff --git a/docs/metadatataxonomies.md b/docs/metadatataxonomies.md index 0fd8d56eb..d5c54adf9 100644 --- a/docs/metadatataxonomies.md +++ b/docs/metadatataxonomies.md @@ -212,12 +212,15 @@ Returns an array of all taxonomy levels. Updates an existing metadata taxonomy level. -This operation is performed by calling function `patchMetadataTaxonomiesIdIdLevelsId`. +This operation is performed by calling function `updateMetadataTaxonomyLevelById`. See the endpoint docs at [API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id-levels-id/). -*Currently we don't have an example for calling `patchMetadataTaxonomiesIdIdLevelsId` in integration tests* + +``` +client.getMetadataTaxonomies().updateMetadataTaxonomyLevelById(namespace, taxonomyKey, 1L, new UpdateMetadataTaxonomyLevelByIdRequestBody.Builder("Continent UPDATED").description("Continent Level UPDATED").build()) +``` ### Arguments @@ -227,10 +230,10 @@ See the endpoint docs at - The key of the metadata taxonomy. Example: "geography" - levelIndex `long` - The index of the metadata taxonomy level. Example: 1 -- requestBody `PatchMetadataTaxonomiesIdIdLevelsIdRequestBody` - - Request body of patchMetadataTaxonomiesIdIdLevelsId method -- headers `PatchMetadataTaxonomiesIdIdLevelsIdHeaders` - - Headers of patchMetadataTaxonomiesIdIdLevelsId method +- requestBody `UpdateMetadataTaxonomyLevelByIdRequestBody` + - Request body of updateMetadataTaxonomyLevelById method +- headers `UpdateMetadataTaxonomyLevelByIdHeaders` + - Headers of updateMetadataTaxonomyLevelById method ### Returns @@ -488,12 +491,15 @@ This operation is performed by calling function `getMetadataTemplateFieldOptions See the endpoint docs at [API Reference](https://developer.box.com/reference/get-metadata-templates-id-id-fields-id-options/). -*Currently we don't have an example for calling `getMetadataTemplateFieldOptions` in integration tests* + +``` +client.getMetadataTaxonomies().getMetadataTemplateFieldOptions(namespace, metadataTemplateKey, "taxonomy") +``` ### Arguments -- scope `GetMetadataTemplateFieldOptionsScope` - - The scope of the metadata template. Example: "global" +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" - templateKey `String` - The name of the metadata template. Example: "properties" - fieldKey `String` diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java deleted file mode 100644 index 1e6b3e0f8..000000000 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.box.sdkgen.managers.metadatataxonomies; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum GetMetadataTemplateFieldOptionsScope implements Valuable { - GLOBAL("global"), - ENTERPRISE("enterprise"); - - private final String value; - - GetMetadataTemplateFieldOptionsScope(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class GetMetadataTemplateFieldOptionsScopeDeserializer - extends JsonDeserializer> { - - public GetMetadataTemplateFieldOptionsScopeDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(GetMetadataTemplateFieldOptionsScope.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class GetMetadataTemplateFieldOptionsScopeSerializer - extends JsonSerializer> { - - public GetMetadataTemplateFieldOptionsScopeSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java index c4bb657b4..a28786810 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java @@ -331,19 +331,19 @@ public MetadataTaxonomyLevels createMetadataTaxonomyLevel( * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" * @param levelIndex The index of the metadata taxonomy level. Example: 1 - * @param requestBody Request body of patchMetadataTaxonomiesIdIdLevelsId method + * @param requestBody Request body of updateMetadataTaxonomyLevelById method */ - public MetadataTaxonomyLevel patchMetadataTaxonomiesIdIdLevelsId( + public MetadataTaxonomyLevel updateMetadataTaxonomyLevelById( String namespace, String taxonomyKey, long levelIndex, - PatchMetadataTaxonomiesIdIdLevelsIdRequestBody requestBody) { - return patchMetadataTaxonomiesIdIdLevelsId( + UpdateMetadataTaxonomyLevelByIdRequestBody requestBody) { + return updateMetadataTaxonomyLevelById( namespace, taxonomyKey, levelIndex, requestBody, - new PatchMetadataTaxonomiesIdIdLevelsIdHeaders()); + new UpdateMetadataTaxonomyLevelByIdHeaders()); } /** @@ -352,15 +352,15 @@ public MetadataTaxonomyLevel patchMetadataTaxonomiesIdIdLevelsId( * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" * @param levelIndex The index of the metadata taxonomy level. Example: 1 - * @param requestBody Request body of patchMetadataTaxonomiesIdIdLevelsId method - * @param headers Headers of patchMetadataTaxonomiesIdIdLevelsId method + * @param requestBody Request body of updateMetadataTaxonomyLevelById method + * @param headers Headers of updateMetadataTaxonomyLevelById method */ - public MetadataTaxonomyLevel patchMetadataTaxonomiesIdIdLevelsId( + public MetadataTaxonomyLevel updateMetadataTaxonomyLevelById( String namespace, String taxonomyKey, long levelIndex, - PatchMetadataTaxonomiesIdIdLevelsIdRequestBody requestBody, - PatchMetadataTaxonomiesIdIdLevelsIdHeaders headers) { + UpdateMetadataTaxonomyLevelByIdRequestBody requestBody, + UpdateMetadataTaxonomyLevelByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = this.networkSession @@ -837,14 +837,14 @@ public void deleteMetadataTaxonomyNode( * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in * order of relevance. * - * @param scope The scope of the metadata template. Example: "global" + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param templateKey The name of the metadata template. Example: "properties" * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" */ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( - GetMetadataTemplateFieldOptionsScope scope, String templateKey, String fieldKey) { + String namespace, String templateKey, String fieldKey) { return getMetadataTemplateFieldOptions( - scope, + namespace, templateKey, fieldKey, new GetMetadataTemplateFieldOptionsQueryParams(), @@ -857,18 +857,22 @@ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in * order of relevance. * - * @param scope The scope of the metadata template. Example: "global" + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param templateKey The name of the metadata template. Example: "properties" * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" * @param queryParams Query parameters of getMetadataTemplateFieldOptions method */ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( - GetMetadataTemplateFieldOptionsScope scope, + String namespace, String templateKey, String fieldKey, GetMetadataTemplateFieldOptionsQueryParams queryParams) { return getMetadataTemplateFieldOptions( - scope, templateKey, fieldKey, queryParams, new GetMetadataTemplateFieldOptionsHeaders()); + namespace, + templateKey, + fieldKey, + queryParams, + new GetMetadataTemplateFieldOptionsHeaders()); } /** @@ -877,18 +881,22 @@ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in * order of relevance. * - * @param scope The scope of the metadata template. Example: "global" + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param templateKey The name of the metadata template. Example: "properties" * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" * @param headers Headers of getMetadataTemplateFieldOptions method */ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( - GetMetadataTemplateFieldOptionsScope scope, + String namespace, String templateKey, String fieldKey, GetMetadataTemplateFieldOptionsHeaders headers) { return getMetadataTemplateFieldOptions( - scope, templateKey, fieldKey, new GetMetadataTemplateFieldOptionsQueryParams(), headers); + namespace, + templateKey, + fieldKey, + new GetMetadataTemplateFieldOptionsQueryParams(), + headers); } /** @@ -897,14 +905,14 @@ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in * order of relevance. * - * @param scope The scope of the metadata template. Example: "global" + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param templateKey The name of the metadata template. Example: "properties" * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" * @param queryParams Query parameters of getMetadataTemplateFieldOptions method * @param headers Headers of getMetadataTemplateFieldOptions method */ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( - GetMetadataTemplateFieldOptionsScope scope, + String namespace, String templateKey, String fieldKey, GetMetadataTemplateFieldOptionsQueryParams queryParams, @@ -934,7 +942,7 @@ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/metadata_templates/", - convertToString(scope), + convertToString(namespace), "/", convertToString(templateKey), "/fields/", diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdHeaders.java similarity index 69% rename from src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java rename to src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdHeaders.java index ec8f7eba3..eb0e70806 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdHeaders.java @@ -4,16 +4,16 @@ import java.util.Map; -public class PatchMetadataTaxonomiesIdIdLevelsIdHeaders { +public class UpdateMetadataTaxonomyLevelByIdHeaders { /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; - public PatchMetadataTaxonomiesIdIdLevelsIdHeaders() { + public UpdateMetadataTaxonomyLevelByIdHeaders() { this.extraHeaders = mapOf(); } - protected PatchMetadataTaxonomiesIdIdLevelsIdHeaders(Builder builder) { + protected UpdateMetadataTaxonomyLevelByIdHeaders(Builder builder) { this.extraHeaders = builder.extraHeaders; } @@ -34,8 +34,8 @@ public Builder extraHeaders(Map extraHeaders) { return this; } - public PatchMetadataTaxonomiesIdIdLevelsIdHeaders build() { - return new PatchMetadataTaxonomiesIdIdLevelsIdHeaders(this); + public UpdateMetadataTaxonomyLevelByIdHeaders build() { + return new UpdateMetadataTaxonomyLevelByIdHeaders(this); } } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdRequestBody.java similarity index 77% rename from src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java rename to src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdRequestBody.java index abea43114..b76134d59 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdRequestBody.java @@ -7,7 +7,7 @@ import java.util.Objects; @JsonFilter("nullablePropertyFilter") -public class PatchMetadataTaxonomiesIdIdLevelsIdRequestBody extends SerializableObject { +public class UpdateMetadataTaxonomyLevelByIdRequestBody extends SerializableObject { /** The display name of the taxonomy level. */ protected final String displayName; @@ -15,13 +15,13 @@ public class PatchMetadataTaxonomiesIdIdLevelsIdRequestBody extends Serializable /** The description of the taxonomy level. */ protected String description; - public PatchMetadataTaxonomiesIdIdLevelsIdRequestBody( + public UpdateMetadataTaxonomyLevelByIdRequestBody( @JsonProperty("displayName") String displayName) { super(); this.displayName = displayName; } - protected PatchMetadataTaxonomiesIdIdLevelsIdRequestBody(Builder builder) { + protected UpdateMetadataTaxonomyLevelByIdRequestBody(Builder builder) { super(); this.displayName = builder.displayName; this.description = builder.description; @@ -44,8 +44,8 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - PatchMetadataTaxonomiesIdIdLevelsIdRequestBody casted = - (PatchMetadataTaxonomiesIdIdLevelsIdRequestBody) o; + UpdateMetadataTaxonomyLevelByIdRequestBody casted = + (UpdateMetadataTaxonomyLevelByIdRequestBody) o; return Objects.equals(displayName, casted.displayName) && Objects.equals(description, casted.description); } @@ -57,7 +57,7 @@ public int hashCode() { @Override public String toString() { - return "PatchMetadataTaxonomiesIdIdLevelsIdRequestBody{" + return "UpdateMetadataTaxonomyLevelByIdRequestBody{" + "displayName='" + displayName + '\'' @@ -84,8 +84,8 @@ public Builder description(String description) { return this; } - public PatchMetadataTaxonomiesIdIdLevelsIdRequestBody build() { - return new PatchMetadataTaxonomiesIdIdLevelsIdRequestBody(this); + public UpdateMetadataTaxonomyLevelByIdRequestBody build() { + return new UpdateMetadataTaxonomyLevelByIdRequestBody(this); } } } diff --git a/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java b/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java index c44e157a4..acf57215c 100644 --- a/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java +++ b/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java @@ -1,6 +1,7 @@ package com.box.sdkgen.metadatataxonomies; import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.delayInSeconds; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; @@ -10,14 +11,21 @@ import com.box.sdkgen.managers.metadatataxonomies.AddMetadataTaxonomyLevelRequestBody; import com.box.sdkgen.managers.metadatataxonomies.CreateMetadataTaxonomyNodeRequestBody; import com.box.sdkgen.managers.metadatataxonomies.CreateMetadataTaxonomyRequestBody; +import com.box.sdkgen.managers.metadatataxonomies.UpdateMetadataTaxonomyLevelByIdRequestBody; import com.box.sdkgen.managers.metadatataxonomies.UpdateMetadataTaxonomyNodeRequestBody; import com.box.sdkgen.managers.metadatataxonomies.UpdateMetadataTaxonomyRequestBody; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBody; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsOptionsRulesField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsTypeField; +import com.box.sdkgen.managers.metadatatemplates.DeleteMetadataTemplateScope; import com.box.sdkgen.schemas.metadatataxonomies.MetadataTaxonomies; import com.box.sdkgen.schemas.metadatataxonomy.MetadataTaxonomy; import com.box.sdkgen.schemas.metadatataxonomylevel.MetadataTaxonomyLevel; import com.box.sdkgen.schemas.metadatataxonomylevels.MetadataTaxonomyLevels; import com.box.sdkgen.schemas.metadatataxonomynode.MetadataTaxonomyNode; import com.box.sdkgen.schemas.metadatataxonomynodes.MetadataTaxonomyNodes; +import com.box.sdkgen.schemas.metadatatemplate.MetadataTemplate; import java.util.Arrays; import org.junit.jupiter.api.Test; @@ -96,6 +104,19 @@ public void testMetadataTaxonomiesNodes() { assert taxonomyLevels.getEntries().size() == 2; assert taxonomyLevels.getEntries().get(0).getDisplayName().equals("Continent"); assert taxonomyLevels.getEntries().get(1).getDisplayName().equals("Country"); + MetadataTaxonomyLevel updatedTaxonomyLevels = + client + .getMetadataTaxonomies() + .updateMetadataTaxonomyLevelById( + namespace, + taxonomyKey, + 1L, + new UpdateMetadataTaxonomyLevelByIdRequestBody.Builder("Continent UPDATED") + .description("Continent Level UPDATED") + .build()); + assert updatedTaxonomyLevels.getDisplayName().equals("Continent UPDATED"); + assert updatedTaxonomyLevels.getDescription().equals("Continent Level UPDATED"); + assert updatedTaxonomyLevels.getLevel() == taxonomyLevels.getEntries().get(0).getLevel(); MetadataTaxonomyLevels taxonomyLevelsAfterAddition = client .getMetadataTaxonomies() @@ -110,7 +131,11 @@ public void testMetadataTaxonomiesNodes() { MetadataTaxonomyLevels taxonomyLevelsAfterDeletion = client.getMetadataTaxonomies().deleteMetadataTaxonomyLevel(namespace, taxonomyKey); assert taxonomyLevelsAfterDeletion.getEntries().size() == 2; - assert taxonomyLevelsAfterDeletion.getEntries().get(0).getDisplayName().equals("Continent"); + assert taxonomyLevelsAfterDeletion + .getEntries() + .get(0) + .getDisplayName() + .equals("Continent UPDATED"); assert taxonomyLevelsAfterDeletion.getEntries().get(1).getDisplayName().equals("Country"); MetadataTaxonomyNode continentNode = client @@ -155,6 +180,41 @@ public void testMetadataTaxonomiesNodes() { .getMetadataTaxonomyNodeById(namespace, taxonomyKey, countryNode.getId()); assert getCountryNode.getDisplayName().equals("Poland UPDATED"); assert getCountryNode.getId().equals(countryNode.getId()); + String metadataTemplateKey = String.join("", "templateKey", getUuid()); + MetadataTemplate metadataTemplate = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", metadataTemplateKey) + .templateKey(metadataTemplateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.TAXONOMY, + "taxonomy", + "taxonomy") + .taxonomyKey(taxonomyKey) + .namespace(namespace) + .optionsRules( + new CreateMetadataTemplateRequestBodyFieldsOptionsRulesField + .Builder() + .multiSelect(true) + .selectableLevels(Arrays.asList(1L)) + .build()) + .build())) + .build()); + assert metadataTemplate.getTemplateKey().equals(metadataTemplateKey); + assert metadataTemplate.getDisplayName().equals(metadataTemplateKey); + assert metadataTemplate.getFields().size() == 1; + assert convertToString(metadataTemplate.getFields().get(0).getType()).equals("taxonomy"); + MetadataTaxonomyNodes options = + client + .getMetadataTaxonomies() + .getMetadataTemplateFieldOptions(namespace, metadataTemplateKey, "taxonomy"); + assert options.getEntries().size() == 1; + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, metadataTemplateKey); client .getMetadataTaxonomies() .deleteMetadataTaxonomyNode(namespace, taxonomyKey, countryNode.getId());