Tax Filing Service

<back to all web services

RetrieveOrderAsync

RetrieveOrdersAsync

Represents a service request to retrieve an order in an asynchronous operation.

Requires Authentication
Required role:AdminRequired permission:CanAccess
The following routes are available for this service:
GET/async/orders/{Id}
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

/**
* Specifies a service request to retrieve an order.
*/
// @Api(Description="Specifies a service request to retrieve an order.")
abstract class RetrieveOrderBase implements IGet
{
    /**
    * The unique identifier of the order.
    */
    // @ApiMember(Description="The unique identifier of the order.")
    int? id;

    RetrieveOrderBase({this.id});
    RetrieveOrderBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id
    };

    getTypeName() => "RetrieveOrderBase";
    TypeContext? context = _ctx;
}

/**
* Specifies a base service response class that contains a structured error information.
*/
// @Api(Description="Specifies a base service response class that contains a structured error information.")
abstract class ServiceResponseBase
{
    /**
    * Data structure that holds error information from a service operation.
    */
    // @ApiMember(Description="Data structure that holds error information from a service operation.")
    ResponseStatus? responseStatus;

    ServiceResponseBase({this.responseStatus});
    ServiceResponseBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
    };

    getTypeName() => "ServiceResponseBase";
    TypeContext? context = _ctx;
}

/**
* Represents a commission to consume services.
*/
// @Api(Description="Represents a commission to consume services.")
class Order implements IHasName, IConvertible
{
    /**
    * The unique identifier of the order.
    */
    // @ApiMember(Description="The unique identifier of the order.", IsRequired=true)
    int? id;

    /**
    * The unique identifier of the product, for which the order is made.
    */
    // @ApiMember(Description="The unique identifier of the product, for which the order is made.", IsRequired=true)
    int? productId;

    /**
    * The unique identifier of the user account, who placed the order.
    */
    // @ApiMember(Description="The unique identifier of the user account, who placed the order.", IsRequired=true)
    int? accountId;

    /**
    * A name to identify the order.
    */
    // @ApiMember(Description="A name to identify the order.", IsRequired=true)
    // @Validate(Validator="NotEmpty")
    String? name;

    /**
    * The name of the service, for which the order was made.
    */
    // @ApiMember(Description="The name of the service, for which the order was made.")
    String? serviceName;

    /**
    * The time stamp at which the order was initiated.
    */
    // @ApiMember(Description="The time stamp at which the order was initiated.")
    DateTime? requestTimestamp;

    /**
    * The time stamp at which the order was completed.
    */
    // @ApiMember(Description="The time stamp at which the order was completed.")
    DateTime? responseTimestamp;

    /**
    * The URI from which the order was initiated.
    */
    // @ApiMember(Description="The URI from which the order was initiated.")
    String? requestUri;

    /**
    * The HTTP method of the order request.
    */
    // @ApiMember(Description="The HTTP method of the order request.")
    String? requestHttpMethod;

    /**
    * The duration of the order request.
    */
    // @ApiMember(Description="The duration of the order request.")
    Duration? requestDuration;

    /**
    * The HTTP status code of the order request.
    */
    // @ApiMember(Description="The HTTP status code of the order request.")
    HttpStatusCode? responseStatusCode;

    /**
    * The IP address of client, who placed the order.
    */
    // @ApiMember(Description="The IP address of client, who placed the order.")
    String? clientIPAddress;

    /**
    * The unit of measurement for the order.
    */
    // @ApiMember(Description="The unit of measurement for the order.")
    String? unitOfMeasurement;

    /**
    * The type of process, for which the order is charged.
    */
    // @ApiMember(Description="The type of process, for which the order is charged.")
    String? processType;

    /**
    * The type of data, for which the order is charged.
    */
    // @ApiMember(Description="The type of data, for which the order is charged.")
    String? dataType;

    /**
    * The name of the data, for which the order is charged.
    */
    // @ApiMember(Description="The name of the data, for which the order is charged.")
    String? dataName;

    /**
    * The date of creation of the order.
    */
    // @ApiMember(Description="The date of creation of the order.")
    DateTime? creationDate;

    /**
    * The final date to retain the order in the records. After this date, the order is expunged from the records.
    */
    // @ApiMember(Description="The final date to retain the order in the records. After this date, the order is expunged from the records.")
    DateTime? expiryDate;

    /**
    * Indicates whether the order is simulated for test purposes. True if the order is simulated for test purposes; otherwise it is a false order for production purposes.
    */
    // @ApiMember(Description="Indicates whether the order is simulated for test purposes. True if the order is simulated for test purposes; otherwise it is a false order for production purposes.")
    bool? isTest;

    Order({this.id,this.productId,this.accountId,this.name,this.serviceName,this.requestTimestamp,this.responseTimestamp,this.requestUri,this.requestHttpMethod,this.requestDuration,this.responseStatusCode,this.clientIPAddress,this.unitOfMeasurement,this.processType,this.dataType,this.dataName,this.creationDate,this.expiryDate,this.isTest});
    Order.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        productId = json['productId'];
        accountId = json['accountId'];
        name = json['name'];
        serviceName = json['serviceName'];
        requestTimestamp = JsonConverters.fromJson(json['requestTimestamp'],'DateTime',context!);
        responseTimestamp = JsonConverters.fromJson(json['responseTimestamp'],'DateTime',context!);
        requestUri = json['requestUri'];
        requestHttpMethod = json['requestHttpMethod'];
        requestDuration = JsonConverters.fromJson(json['requestDuration'],'Duration',context!);
        responseStatusCode = JsonConverters.fromJson(json['responseStatusCode'],'HttpStatusCode',context!);
        clientIPAddress = json['clientIPAddress'];
        unitOfMeasurement = json['unitOfMeasurement'];
        processType = json['processType'];
        dataType = json['dataType'];
        dataName = json['dataName'];
        creationDate = JsonConverters.fromJson(json['creationDate'],'DateTime',context!);
        expiryDate = JsonConverters.fromJson(json['expiryDate'],'DateTime',context!);
        isTest = json['isTest'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'productId': productId,
        'accountId': accountId,
        'name': name,
        'serviceName': serviceName,
        'requestTimestamp': JsonConverters.toJson(requestTimestamp,'DateTime',context!),
        'responseTimestamp': JsonConverters.toJson(responseTimestamp,'DateTime',context!),
        'requestUri': requestUri,
        'requestHttpMethod': requestHttpMethod,
        'requestDuration': JsonConverters.toJson(requestDuration,'Duration',context!),
        'responseStatusCode': JsonConverters.toJson(responseStatusCode,'HttpStatusCode',context!),
        'clientIPAddress': clientIPAddress,
        'unitOfMeasurement': unitOfMeasurement,
        'processType': processType,
        'dataType': dataType,
        'dataName': dataName,
        'creationDate': JsonConverters.toJson(creationDate,'DateTime',context!),
        'expiryDate': JsonConverters.toJson(expiryDate,'DateTime',context!),
        'isTest': isTest
    };

    getTypeName() => "Order";
    TypeContext? context = _ctx;
}

/**
* Represents a service response that encapsulates an order data.
*/
// @Api(Description="Represents a service response that encapsulates an order data.")
class OrderResponse extends ServiceResponseBase implements IConvertible
{
    /**
    * The order data of the response.
    */
    // @ApiMember(Description="The order data of the response.")
    Order? order;

    /**
    * Data structure that holds error information from a service operation.
    */
    // @ApiMember(Description="Data structure that holds error information from a service operation.")
    ResponseStatus? responseStatus;

    OrderResponse({this.order,this.responseStatus});
    OrderResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        order = JsonConverters.fromJson(json['order'],'Order',context!);
        responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'order': JsonConverters.toJson(order,'Order',context!),
        'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
    });

    getTypeName() => "OrderResponse";
    TypeContext? context = _ctx;
}

/**
* Represents a service request to retrieve an order in an asynchronous operation.
*/
// @Api(Description="Represents a service request to retrieve an order in an asynchronous operation.")
class RetrieveOrderAsync extends RetrieveOrderBase implements IConvertible
{
    /**
    * The unique identifier of the order.
    */
    // @ApiMember(Description="The unique identifier of the order.")
    int? id;

    RetrieveOrderAsync({this.id});
    RetrieveOrderAsync.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        id = json['id'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'id': id
    });

    getTypeName() => "RetrieveOrderAsync";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'taxfiling.staging.pwc.de', types: <String, TypeInfo> {
    'RetrieveOrderBase': TypeInfo(TypeOf.AbstractClass),
    'ServiceResponseBase': TypeInfo(TypeOf.AbstractClass),
    'Order': TypeInfo(TypeOf.Class, create:() => Order()),
    'HttpStatusCode': TypeInfo(TypeOf.Class, create:() => HttpStatusCode()),
    'OrderResponse': TypeInfo(TypeOf.Class, create:() => OrderResponse()),
    'RetrieveOrderAsync': TypeInfo(TypeOf.Class, create:() => RetrieveOrderAsync()),
});

Dart RetrieveOrderAsync 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/orders/{Id} HTTP/1.1 
Host: taxfiling.staging.pwc.de 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	order: 
	{
		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
	},
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}