diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/filters/SubscriptionFilter.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/filters/SubscriptionFilter.java index e5ea164b5..f0e12d6fa 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/filters/SubscriptionFilter.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/filters/SubscriptionFilter.java @@ -6,6 +6,7 @@ import com.cloudesire.platform.apiclient.dto.model.enums.ProductType; import io.swagger.annotations.ApiModelProperty; +import java.util.Map; import java.util.Set; public final class SubscriptionFilter extends PageRequestDTO @@ -13,6 +14,9 @@ public final class SubscriptionFilter extends PageRequestDTO @ApiModelProperty( "Fuzzy match by buyer, product or company" ) private String filter; + @ApiModelProperty( "Filter by customer metadata" ) + private Map metadata; + @ApiModelProperty( "Filter by deployment status" ) private Set status; @@ -34,6 +38,16 @@ public void setFilter( String filter ) this.filter = filter; } + public Map getMetadata() + { + return metadata; + } + + public void setMetadata( Map metadata ) + { + this.metadata = metadata; + } + public Set getStatus() { return status; diff --git a/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/query/SubscriptionQuery.java b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/query/SubscriptionQuery.java index 635fa0b85..14c6ff5a8 100644 --- a/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/query/SubscriptionQuery.java +++ b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/query/SubscriptionQuery.java @@ -5,9 +5,12 @@ import com.cloudesire.platform.apiclient.dto.model.enums.ProductType; import org.apache.commons.lang3.StringUtils; +import java.util.Map; + public class SubscriptionQuery extends PageRequestQuery { private static final String FILTER = "filter"; + private static final String METADATA = "metadata"; private static final String STATUS = "status"; private static final String TYPE = "type"; private static final String PRODUCT = "product"; @@ -26,6 +29,15 @@ public SubscriptionQuery setFilter( String value ) return this; } + public SubscriptionQuery setMetadata( Map metadata ) + { + metadata.forEach( ( key, value ) -> { + if ( value == null ) value = ""; + put( String.format( "%s[%s]", METADATA, key ), value ); + } ); + return this; + } + public SubscriptionQuery setStatus( DeploymentStatusEnum... values ) { String value = StringUtils.join( values, ',' );