ServiceStack Home (Live)

<back to all web services

QueryOrders

Admin
Requires Authentication
Required role:Admin
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


@ValidateRequest(Validator="IsAdmin")
open class QueryOrders : QueryDb<Order>()
{
}

open class QueryDb<T> : QueryBase()
{
}

@DataContract
open class QueryBase
{
    @DataMember(Order=1)
    open var skip:Int? = null

    @DataMember(Order=2)
    open var take:Int? = null

    @DataMember(Order=3)
    open var orderBy:String? = null

    @DataMember(Order=4)
    open var orderByDesc:String? = null

    @DataMember(Order=5)
    open var include:String? = null

    @DataMember(Order=6)
    open var fields:String? = null

    @DataMember(Order=7)
    open var meta:HashMap<String,String>? = null
}

open class Order : IAddress
{
    open var id:Int? = null
    open var customerId:Int? = null
    open var productName:String? = null
    open var firstName:String? = null
    open var lastName:String? = null
    open var email:String? = null
    open var company:String? = null
    open var phoneNumber:String? = null
    override var addressLine1:String? = null
    override var addressLine2:String? = null
    override var addressCity:String? = null
    override var addressZip:String? = null
    override var addressState:String? = null
    override var addressCountry:String? = null
    open var agreeTerms:Boolean? = null
    open var notes:String? = null
    open var last4:String? = null
    open var subTotal:Int? = null
    open var couponId:String? = null
    open var discount:Int? = null
    open var tax:Int? = null
    open var total:Int? = null
    open var itemQuantity:Int? = null
    open var authorizedQuantity:Int? = null
    open var subscriptionId:Int? = null
    open var licenseRef:String? = null
    open var paymentId:Int? = null
    open var emailId:Int? = null
    open var paid:Boolean? = null
    open var createdDate:Date? = null
    open var modifiedDate:Date? = null
    open var modifiedBy:String? = null
    open var cancelledDate:Date? = null
    open var cancelledReason:String? = null
    open var ipAddress:String? = null
    open var orderDetails:ArrayList<OrderDetail>? = null
}

open class OrderDetail
{
    open var id:Int? = null
    open var orderId:Int? = null
    open var skuId:Int? = null
    open var skuType:SkuType? = null
    open var price:Int? = null
    open var description:String? = null
    open var quantity:Int? = null
    open var total:Int? = null
}

enum class SkuType
{
    Product,
    PerDev,
    PerCore,
    Site,
    Support,
    Training,
    Register,
    Payment,
}

@DataContract
open class QueryResponse<T>
{
    @DataMember(Order=1)
    open var offset:Int? = null

    @DataMember(Order=2)
    open var total:Int? = null

    @DataMember(Order=3)
    open var results:ArrayList<Customer> = ArrayList<Customer>()

    @DataMember(Order=4)
    open var meta:HashMap<String,String>? = null

    @DataMember(Order=5)
    open var responseStatus:ResponseStatus? = null
}

open class Customer : IAddress
{
    open var id:Int? = null
    open var email:String? = null
    open var displayName:String? = null
    open var firstName:String? = null
    open var lastName:String? = null
    open var company:String? = null
    open var phoneNumber:String? = null
    override var addressLine1:String? = null
    override var addressLine2:String? = null
    override var addressCity:String? = null
    override var addressZip:String? = null
    override var addressState:String? = null
    override var addressCountry:String? = null
    open var stripeCustomerId:String? = null
    open var stripeCouponId:String? = null
    open var plan:String? = null
    open var createdDate:Date? = null
    open var isReferrer:Boolean? = null
    open var orders:ArrayList<Order>? = null
    open var subscriptions:ArrayList<Subscription>? = null
}

open class Subscription
{
    open var id:Int? = null
    open var customerId:Int? = null
    open var email:String? = null
    open var skuId:Int? = null
    open var skuName:String? = null
    open var skuType:SkuType? = null
    open var code:String? = null
    open var quantity:Int? = null
    open var supportQuantity:Int? = null
    open var total:Int? = null
    open var isPlan:Boolean? = null
    open var isRenewal:Boolean? = null
    open var subscriptionDurationDays:Int? = null
    open var renewalDate:Date? = null
    open var licenseRef:String? = null
    open var licenseName:String? = null
    open var licenseAddress:String? = null
    open var licenseType:LicenseType? = null
    open var expiryDate:Date? = null
    open var licenseKey:LicenseKey? = null
    open var licenseKeyText:String? = null
    open var createdDate:Date? = null
    open var modifiedDate:Date? = null
    open var cancelledDate:Date? = null
    open var stripeSubscriptionId:String? = null
    open var emailId:Int? = null
    open var emailRenewalId:Int? = null
    open var emailExpiredId:Int? = null
    open var renewalSubscriptionId:Int? = null
    open var externalRef:String? = null
    open var notes:String? = null
    open var error:String? = null
}

enum class LicenseType
{
    Free,
    FreeIndividual,
    FreeOpenSource,
    Indie,
    Business,
    Enterprise,
    TextIndie,
    TextBusiness,
    OrmLiteIndie,
    OrmLiteBusiness,
    RedisIndie,
    RedisBusiness,
    AwsIndie,
    AwsBusiness,
    Trial,
    Site,
    TextSite,
    RedisSite,
    OrmLiteSite,
}

open class LicenseKey
{
    open var ref:String? = null
    open var name:String? = null
    @SerializedName("type") open var Type:LicenseType? = null
    open var meta:Long? = null
    open var hash:String? = null
    open var halg:String? = null
    open var expiry:Date? = null
}

Kotlin QueryOrders 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.

POST /jsv/reply/QueryOrders HTTP/1.1 
Host: account.servicestack.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	skip: 0,
	take: 0,
	orderBy: String,
	orderByDesc: String,
	include: String,
	fields: String,
	meta: 
	{
		String: String
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	offset: 0,
	total: 0,
	results: 
	[
		{
			id: 0,
			customerId: 0,
			productName: String,
			firstName: String,
			lastName: String,
			email: String,
			company: String,
			phoneNumber: String,
			addressLine1: String,
			addressLine2: String,
			addressCity: String,
			addressZip: String,
			addressState: String,
			addressCountry: String,
			agreeTerms: False,
			notes: String,
			last4: String,
			subTotal: 0,
			couponId: String,
			discount: 0,
			tax: 0,
			total: 0,
			itemQuantity: 0,
			authorizedQuantity: 0,
			subscriptionId: 0,
			licenseRef: String,
			paymentId: 0,
			emailId: 0,
			paid: False,
			createdDate: 0001-01-01,
			modifiedDate: 0001-01-01,
			modifiedBy: String,
			cancelledDate: 0001-01-01,
			cancelledReason: String,
			ipAddress: String,
			orderDetails: 
			[
				{
					id: 0,
					orderId: 0,
					skuId: 0,
					skuType: Product,
					price: 0,
					description: String,
					quantity: 0,
					total: 0
				}
			]
		}
	],
	meta: 
	{
		String: String
	},
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}