Required role: | Admin |
All Verbs | /query/customers |
---|
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")
@AutoQueryViewer(DefaultFields="Id,Name,Email,DisplayName,FirstName,LastName,Company,CreatedDate,Plan,IsReferrer", DefaultSearchField="Email", DefaultSearchType="Contains", IconUrl="material-icons:person", Title="Customers")
open class QueryCustomers : QueryDb<Customer>()
{
}
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 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 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,
}
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
}
@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
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /query/customers HTTP/1.1
Host: account.servicestack.net
Accept: text/jsonl
Content-Type: text/jsonl
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/jsonl Content-Length: length {"offset":0,"total":0,"results":[{"id":0,"email":"String","displayName":"String","firstName":"String","lastName":"String","company":"String","phoneNumber":"String","addressLine1":"String","addressLine2":"String","addressCity":"String","addressZip":"String","addressState":"String","addressCountry":"String","stripeCustomerId":"String","stripeCouponId":"String","plan":"String","createdDate":"\/Date(-62135596800000-0000)\/","isReferrer":false,"orders":[{"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":"\/Date(-62135596800000-0000)\/","modifiedDate":"\/Date(-62135596800000-0000)\/","modifiedBy":"String","cancelledDate":"\/Date(-62135596800000-0000)\/","cancelledReason":"String","ipAddress":"String","orderDetails":[{"id":0,"orderId":0,"skuId":0,"skuType":"Product","price":0,"description":"String","quantity":0,"total":0}]}],"subscriptions":[{"id":0,"customerId":0,"email":"String","skuId":0,"skuName":"String","skuType":"Product","code":"String","quantity":0,"supportQuantity":0,"total":0,"isPlan":false,"isRenewal":false,"subscriptionDurationDays":0,"renewalDate":"\/Date(-62135596800000-0000)\/","licenseRef":"String","licenseName":"String","licenseAddress":"String","licenseType":"Free","expiryDate":"\/Date(-62135596800000-0000)\/","licenseKey":{"ref":"String","name":"String","type":"Free","meta":0,"hash":"String","halg":"String","expiry":"\/Date(-62135596800000-0000)\/"},"licenseKeyText":"String","createdDate":"\/Date(-62135596800000-0000)\/","modifiedDate":"\/Date(-62135596800000-0000)\/","cancelledDate":"\/Date(-62135596800000-0000)\/","stripeSubscriptionId":"String","emailId":0,"emailRenewalId":0,"emailExpiredId":0,"renewalSubscriptionId":0,"externalRef":"String","notes":"String","error":"String"}]}],"meta":{"String":"String"},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}