diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ResellerPricingDTO.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ResellerPricingDTO.java index f7d50fc7c..a83d3e959 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ResellerPricingDTO.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ResellerPricingDTO.java @@ -2,6 +2,7 @@ import com.cloudesire.platform.apiclient.dto.ApiVersion; import com.cloudesire.platform.apiclient.dto.annotations.UnsupportedAPI; +import com.cloudesire.platform.apiclient.dto.model.enums.ResellerPricingVisibility; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -65,6 +66,8 @@ public class ResellerPricingDTO extends BaseEntityDTO @Valid private List customResellingPrices; + private ResellerPricingVisibility visibility; + public ResellerPricingDTO( UrlEntityDTO resellerCatalog, UrlEntityDTO distributorPricing ) { this.resellerCatalog = resellerCatalog; @@ -222,6 +225,16 @@ public void setCustomResellingPrices( List customResell this.customResellingPrices = customResellingPrices; } + public ResellerPricingVisibility getVisibility() + { + return visibility; + } + + public void setVisibility( ResellerPricingVisibility visibility ) + { + this.visibility = visibility; + } + @Override public boolean equals( Object o ) { diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/ResellerPricingVisibility.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/ResellerPricingVisibility.java new file mode 100644 index 000000000..bce9e66f5 --- /dev/null +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/ResellerPricingVisibility.java @@ -0,0 +1,15 @@ +package com.cloudesire.platform.apiclient.dto.model.enums; + +import io.swagger.annotations.ApiModelProperty; + +public enum ResellerPricingVisibility +{ + @ApiModelProperty( "Product Version is not visible to customer" ) + EXCLUDED, + + @ApiModelProperty( "Product Version is visible to customer, but not available for buy" ) + INCLUDED, + + @ApiModelProperty( "Product Version is available for buy" ) + PRICED +} diff --git a/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/ProductVersionApi.java b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/ProductVersionApi.java index d3cd6684b..9d7329d31 100644 --- a/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/ProductVersionApi.java +++ b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/ProductVersionApi.java @@ -2,6 +2,7 @@ import com.cloudesire.platform.apiclient.dto.model.dto.ProductVersionDTO; import com.cloudesire.platform.apiclient.dto.model.dto.ProductVersionDraftDTO; +import com.cloudesire.platform.apiclient.query.ProductVersionQuery; import retrofit2.Call; import retrofit2.http.Body; import retrofit2.http.DELETE; @@ -36,13 +37,28 @@ public interface ProductVersionApi Call partialUpdate( @Path( "id" ) int id, @Body Map input, @Query( "language" ) String language ); + @GET( "productVersion" ) + Call> getAll( @QueryMap ProductVersionQuery query ); + + /** + * @deprecated by {@link #getAll(ProductVersionQuery)} + */ + @Deprecated @GET( "productVersion" ) Call> getAll( @Query( "product" ) Integer product ); + /** + * @deprecated by {@link #getAll(ProductVersionQuery)} + */ + @Deprecated @GET( "productVersion" ) Call> getAll( @Query( "product" ) Integer product, @QueryMap Map pageRequest ); + /** + * @deprecated by {@link #getAll(ProductVersionQuery)} + */ + @Deprecated @GET( "productVersion" ) Call> getAll( @Query( "product" ) Integer product, @@ -50,10 +66,18 @@ Call> getAll( @QueryMap Map pageRequest ); + /** + * @deprecated by {@link #getAll(ProductVersionQuery)} + */ + @Deprecated @GET( "productVersion" ) Call> getAll( @Query( "product" ) Integer product, @Query( "reseller" ) String reseller, @QueryMap Map pageRequest ); + /** + * @deprecated by {@link #getAll(ProductVersionQuery)} + */ + @Deprecated @GET( "productVersion" ) Call> getAll( @Query( "product" ) int product, diff --git a/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/query/ProductQuery.java b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/query/ProductQuery.java index 3c0f494a4..9e7aaf80c 100644 --- a/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/query/ProductQuery.java +++ b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/query/ProductQuery.java @@ -2,6 +2,8 @@ import com.cloudesire.platform.apiclient.dto.model.enums.OrderingType; import com.cloudesire.platform.apiclient.dto.model.enums.ProductType; +import com.cloudesire.platform.apiclient.dto.model.enums.ResellerPricingVisibility; +import org.apache.commons.lang3.StringUtils; public class ProductQuery extends PageRequestQuery { @@ -16,6 +18,7 @@ public class ProductQuery extends PageRequestQuery private static final String ORDERING_TYPE = "orderingType"; private static final String CATEGORY_ID = "categoryId"; private static final String TAG = "tag"; + private static final String VISIBILITY = "visibility"; public ProductQuery setPageRequest( PageRequestQuery pageRequestQuery ) { @@ -98,4 +101,10 @@ public ProductQuery setOnlyActiveConfigurations( boolean flag ) put( ONLY_ACTIVE_CONFIGURATIONS, flag ); return this; } + + public ProductQuery setVisibility( ResellerPricingVisibility... visibility ) + { + put( VISIBILITY, StringUtils.join( visibility, ',' ) ); + return this; + } } diff --git a/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/query/ProductVersionQuery.java b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/query/ProductVersionQuery.java new file mode 100644 index 000000000..acac03ea5 --- /dev/null +++ b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/query/ProductVersionQuery.java @@ -0,0 +1,41 @@ +package com.cloudesire.platform.apiclient.query; + +import com.cloudesire.platform.apiclient.dto.model.enums.ResellerPricingVisibility; +import org.apache.commons.lang3.StringUtils; + +public class ProductVersionQuery extends BaseQuery +{ + private static final String PRODUCT = "product"; + private static final String VISIBILITY = "visibility"; + private static final String WITH_UNPUBLISHED = "withUnpublished"; + + public ProductVersionQuery setPageRequest( PageRequestQuery pageRequestQuery ) + { + putAll( pageRequestQuery ); + return this; + } + + public ProductVersionQuery setResellerCatalog( ResellerCatalogQuery resellerCatalogQuery ) + { + putAll( resellerCatalogQuery ); + return this; + } + + public ProductVersionQuery setProduct( int productId ) + { + put( PRODUCT, productId ); + return this; + } + + public ProductVersionQuery includeUnpublished( boolean includeUnpublished ) + { + put( WITH_UNPUBLISHED, includeUnpublished ); + return this; + } + + public ProductVersionQuery setVisibility( ResellerPricingVisibility... visibility ) + { + put( VISIBILITY, StringUtils.join( visibility, ',' ) ); + return this; + } +}