Tax Filing Service

<back to all web services

RetrieveAllProductsAsync

RetrieveProductsAsync

Represents a service request to retrieve all products in an asynchronous operation.

Requires Authentication
Required role:AdminRequired permission:CanAccess
The following routes are available for this service:
GET/async/products
import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    /**
    * Represents a service request to retrieve all products in an asynchronous operation.
    */
    @Api(Description="Represents a service request to retrieve all products in an asynchronous operation.")
    public static class RetrieveAllProductsAsync extends RetrieveAllProductsBase
    {
        /**
        * Should the related orders of the account be included in the retrieved products?
        */
        @ApiMember(Description="Should the related orders of the account be included in the retrieved products?")
        public Boolean includeOrders = null;

        /**
        * Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. 
        */
        @ApiMember(Description="Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. ")
        public Integer skipOrders = null;

        /**
        * Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. 
        */
        @ApiMember(Description="Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. ")
        public Integer takeOrders = null;

        /**
        * The number of query results to skip.
        */
        @ApiMember(Description="The number of query results to skip.")
        public Integer skip = null;

        /**
        * The number of query results to include.
        */
        @ApiMember(Description="The number of query results to include.")
        public Integer take = null;
        
        public Boolean isIncludeOrders() { return includeOrders; }
        public RetrieveAllProductsAsync setIncludeOrders(Boolean value) { this.includeOrders = value; return this; }
        public Integer getSkipOrders() { return skipOrders; }
        public RetrieveAllProductsAsync setSkipOrders(Integer value) { this.skipOrders = value; return this; }
        public Integer getTakeOrders() { return takeOrders; }
        public RetrieveAllProductsAsync setTakeOrders(Integer value) { this.takeOrders = value; return this; }
        public Integer getSkip() { return skip; }
        public RetrieveAllProductsAsync setSkip(Integer value) { this.skip = value; return this; }
        public Integer getTake() { return take; }
        public RetrieveAllProductsAsync setTake(Integer value) { this.take = value; return this; }
    }

    /**
    * Specifies a service to retrieve all products.
    */
    @Api(Description="Specifies a service to retrieve all products.")
    public static class RetrieveAllProductsBase extends PaginationBase implements IGet
    {
        /**
        * Should the related orders of the account be included in the retrieved products?
        */
        @ApiMember(Description="Should the related orders of the account be included in the retrieved products?")
        public Boolean includeOrders = null;

        /**
        * Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. 
        */
        @ApiMember(Description="Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. ")
        public Integer skipOrders = null;

        /**
        * Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. 
        */
        @ApiMember(Description="Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. ")
        public Integer takeOrders = null;

        /**
        * The number of query results to skip.
        */
        @ApiMember(Description="The number of query results to skip.")
        public Integer skip = null;

        /**
        * The number of query results to include.
        */
        @ApiMember(Description="The number of query results to include.")
        public Integer take = null;
        
        public Boolean isIncludeOrders() { return includeOrders; }
        public RetrieveAllProductsBase setIncludeOrders(Boolean value) { this.includeOrders = value; return this; }
        public Integer getSkipOrders() { return skipOrders; }
        public RetrieveAllProductsBase setSkipOrders(Integer value) { this.skipOrders = value; return this; }
        public Integer getTakeOrders() { return takeOrders; }
        public RetrieveAllProductsBase setTakeOrders(Integer value) { this.takeOrders = value; return this; }
        public Integer getSkip() { return skip; }
        public RetrieveAllProductsBase setSkip(Integer value) { this.skip = value; return this; }
        public Integer getTake() { return take; }
        public RetrieveAllProductsBase setTake(Integer value) { this.take = value; return this; }
    }

    /**
    * The number of query results to skip.
    */
    @Api(Description="The number of query results to skip.")
    public static class PaginationBase implements IPaginate
    {
        /**
        * The number of query results to skip.
        */
        @ApiMember(Description="The number of query results to skip.")
        public Integer skip = null;

        /**
        * The number of query results to include.
        */
        @ApiMember(Description="The number of query results to include.")
        public Integer take = null;
        
        public Integer getSkip() { return skip; }
        public PaginationBase setSkip(Integer value) { this.skip = value; return this; }
        public Integer getTake() { return take; }
        public PaginationBase setTake(Integer value) { this.take = value; return this; }
    }

    /**
    * Represents a query response that contains a structured error information and encapsulates products.
    */
    @Api(Description="Represents a query response that contains a structured error information and encapsulates products.")
    public static class ProductQueryResponse extends QueryResponse<Product>
    {
        /**
        * The dictionary of orders associated with each found product.
        */
        @ApiMember(Description="The dictionary of orders associated with each found product.")
        public HashMap<Integer,ArrayList<Order>> ordersMap = null;

        @DataMember(Order=1)
        public Integer offset = null;

        @DataMember(Order=2)
        public Integer total = null;

        @DataMember(Order=3)
        public ArrayList<Product> results = null;

        @DataMember(Order=4)
        public HashMap<String,String> meta = null;

        @DataMember(Order=5)
        public ResponseStatus responseStatus = null;
        
        public HashMap<Integer,ArrayList<Order>> getOrdersMap() { return ordersMap; }
        public ProductQueryResponse setOrdersMap(HashMap<Integer,ArrayList<Order>> value) { this.ordersMap = value; return this; }
        public Integer getOffset() { return offset; }
        public ProductQueryResponse setOffset(Integer value) { this.offset = value; return this; }
        public Integer getTotal() { return total; }
        public ProductQueryResponse setTotal(Integer value) { this.total = value; return this; }
        public ArrayList<Product> getResults() { return results; }
        public ProductQueryResponse setResults(ArrayList<Product> value) { this.results = value; return this; }
        public HashMap<String,String> getMeta() { return meta; }
        public ProductQueryResponse setMeta(HashMap<String,String> value) { this.meta = value; return this; }
        public ResponseStatus getResponseStatus() { return responseStatus; }
        public ProductQueryResponse setResponseStatus(ResponseStatus value) { this.responseStatus = value; return this; }
    }

    @DataContract
    public static class QueryResponse<T>
    {
        @DataMember(Order=1)
        public Integer offset = null;

        @DataMember(Order=2)
        public Integer total = null;

        @DataMember(Order=3)
        public ArrayList<T> results = null;

        @DataMember(Order=4)
        public HashMap<String,String> meta = null;

        @DataMember(Order=5)
        public ResponseStatus responseStatus = null;
        
        public Integer getOffset() { return offset; }
        public QueryResponse<T> setOffset(Integer value) { this.offset = value; return this; }
        public Integer getTotal() { return total; }
        public QueryResponse<T> setTotal(Integer value) { this.total = value; return this; }
        public ArrayList<T> getResults() { return results; }
        public QueryResponse<T> setResults(ArrayList<T> value) { this.results = value; return this; }
        public HashMap<String,String> getMeta() { return meta; }
        public QueryResponse<T> setMeta(HashMap<String,String> value) { this.meta = value; return this; }
        public ResponseStatus getResponseStatus() { return responseStatus; }
        public QueryResponse<T> setResponseStatus(ResponseStatus value) { this.responseStatus = value; return this; }
    }

    /**
    * Represents a product.
    */
    @Api(Description="Represents a product.")
    public static class Product implements IHasName
    {
        /**
        * The unique identifier of the product.
        */
        @ApiMember(Description="The unique identifier of the product.", IsRequired=true)
        public Integer id = null;

        /**
        * The position of this instance in a collection of 'Product' instances
        */
        @ApiMember(Description="The position of this instance in a collection of 'Product' instances", IsRequired=true)
        public Integer index = null;

        /**
        * The name of the product.
        */
        @ApiMember(Description="The name of the product.", IsRequired=true)
        @Validate(Validator="NotEmpty")
        public String name = null;

        /**
        * The version of the product.
        */
        @ApiMember(Description="The version of the product.", IsRequired=true)
        @Validate(Validator="NotEmpty")
        public String version = null;

        /**
        * The version of the product.
        */
        @ApiMember(Description="The version of the product.")
        public String description = null;

        /**
        * Tags associated with the product.
        */
        @ApiMember(Description="Tags associated with the product.")
        public ArrayList<String> tags = null;
        
        public Integer getId() { return id; }
        public Product setId(Integer value) { this.id = value; return this; }
        public Integer getIndex() { return index; }
        public Product setIndex(Integer value) { this.index = value; return this; }
        public String getName() { return name; }
        public Product setName(String value) { this.name = value; return this; }
        public String getVersion() { return version; }
        public Product setVersion(String value) { this.version = value; return this; }
        public String getDescription() { return description; }
        public Product setDescription(String value) { this.description = value; return this; }
        public ArrayList<String> getTags() { return tags; }
        public Product setTags(ArrayList<String> value) { this.tags = value; return this; }
    }

}

Java RetrieveAllProductsAsync DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /async/products HTTP/1.1 
Host: taxfiling.pwc.de 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ordersMap: 
	{
		0: 
		[
			{
				id: 0,
				productId: 0,
				accountId: 0,
				name: String,
				serviceName: String,
				requestTimestamp: 0001-01-01,
				responseTimestamp: 0001-01-01,
				requestUri: String,
				requestHttpMethod: String,
				requestDuration: PT0S,
				responseStatusCode: Continue,
				clientIPAddress: String,
				unitOfMeasurement: String,
				processType: String,
				dataType: String,
				dataName: String,
				creationDate: 0001-01-01,
				expiryDate: 0001-01-01,
				isTest: False
			}
		]
	},
	offset: 0,
	total: 0,
	results: 
	[
		{
			id: 0,
			index: 0,
			name: String,
			version: String,
			description: String,
			tags: 
			[
				String
			]
		}
	],
	meta: 
	{
		String: String
	},
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}