All Verbs | /account/orders/{Id} | ||
---|---|---|---|
GET | /ViewOrder | ||
GET | /ViewOrder/{Id} |
<?php namespace dtos;
use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};
class ViewOrder implements JsonSerializable
{
public function __construct(
/** @var int */
public int $id=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['id'])) $this->id = $o['id'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->id)) $o['id'] = $this->id;
return empty($o) ? new class(){} : $o;
}
}
enum SkuType : string
{
case Product = 'Product';
case PerDev = 'PerDev';
case PerCore = 'PerCore';
case Site = 'Site';
case Support = 'Support';
case Training = 'Training';
case Register = 'Register';
case Payment = 'Payment';
}
class OrderDetail implements JsonSerializable
{
public function __construct(
/** @var int */
public int $id=0,
/** @var int */
public int $orderId=0,
/** @var int */
public int $skuId=0,
/** @var SkuType|null */
public ?SkuType $skuType=null,
/** @var int */
public int $price=0,
/** @var string|null */
public ?string $description=null,
/** @var int */
public int $quantity=0,
/** @var int */
public int $total=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['id'])) $this->id = $o['id'];
if (isset($o['orderId'])) $this->orderId = $o['orderId'];
if (isset($o['skuId'])) $this->skuId = $o['skuId'];
if (isset($o['skuType'])) $this->skuType = JsonConverters::from('SkuType', $o['skuType']);
if (isset($o['price'])) $this->price = $o['price'];
if (isset($o['description'])) $this->description = $o['description'];
if (isset($o['quantity'])) $this->quantity = $o['quantity'];
if (isset($o['total'])) $this->total = $o['total'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->id)) $o['id'] = $this->id;
if (isset($this->orderId)) $o['orderId'] = $this->orderId;
if (isset($this->skuId)) $o['skuId'] = $this->skuId;
if (isset($this->skuType)) $o['skuType'] = JsonConverters::to('SkuType', $this->skuType);
if (isset($this->price)) $o['price'] = $this->price;
if (isset($this->description)) $o['description'] = $this->description;
if (isset($this->quantity)) $o['quantity'] = $this->quantity;
if (isset($this->total)) $o['total'] = $this->total;
return empty($o) ? new class(){} : $o;
}
}
class Order implements IAddress, JsonSerializable
{
public function __construct(
/** @var int */
public int $id=0,
/** @var int */
public int $customerId=0,
/** @var string|null */
public ?string $productName=null,
/** @var string|null */
public ?string $firstName=null,
/** @var string|null */
public ?string $lastName=null,
/** @var string|null */
public ?string $email=null,
/** @var string|null */
public ?string $company=null,
/** @var string|null */
public ?string $phoneNumber=null,
/** @var string|null */
public ?string $addressLine1=null,
/** @var string|null */
public ?string $addressLine2=null,
/** @var string|null */
public ?string $addressCity=null,
/** @var string|null */
public ?string $addressZip=null,
/** @var string|null */
public ?string $addressState=null,
/** @var string|null */
public ?string $addressCountry=null,
/** @var bool|null */
public ?bool $agreeTerms=null,
/** @var string|null */
public ?string $notes=null,
/** @var string|null */
public ?string $last4=null,
/** @var int */
public int $subTotal=0,
/** @var string|null */
public ?string $couponId=null,
/** @var int */
public int $discount=0,
/** @var int */
public int $tax=0,
/** @var int */
public int $total=0,
/** @var int */
public int $itemQuantity=0,
/** @var int|null */
public ?int $authorizedQuantity=null,
/** @var int|null */
public ?int $subscriptionId=null,
/** @var string|null */
public ?string $licenseRef=null,
/** @var int|null */
public ?int $paymentId=null,
/** @var int|null */
public ?int $emailId=null,
/** @var bool|null */
public ?bool $paid=null,
/** @var DateTime */
public DateTime $createdDate=new DateTime(),
/** @var DateTime */
public DateTime $modifiedDate=new DateTime(),
/** @var string|null */
public ?string $modifiedBy=null,
/** @var DateTime|null */
public ?DateTime $cancelledDate=null,
/** @var string|null */
public ?string $cancelledReason=null,
/** @var string|null */
public ?string $ipAddress=null,
/** @var array<OrderDetail>|null */
public ?array $orderDetails=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['id'])) $this->id = $o['id'];
if (isset($o['customerId'])) $this->customerId = $o['customerId'];
if (isset($o['productName'])) $this->productName = $o['productName'];
if (isset($o['firstName'])) $this->firstName = $o['firstName'];
if (isset($o['lastName'])) $this->lastName = $o['lastName'];
if (isset($o['email'])) $this->email = $o['email'];
if (isset($o['company'])) $this->company = $o['company'];
if (isset($o['phoneNumber'])) $this->phoneNumber = $o['phoneNumber'];
if (isset($o['addressLine1'])) $this->addressLine1 = $o['addressLine1'];
if (isset($o['addressLine2'])) $this->addressLine2 = $o['addressLine2'];
if (isset($o['addressCity'])) $this->addressCity = $o['addressCity'];
if (isset($o['addressZip'])) $this->addressZip = $o['addressZip'];
if (isset($o['addressState'])) $this->addressState = $o['addressState'];
if (isset($o['addressCountry'])) $this->addressCountry = $o['addressCountry'];
if (isset($o['agreeTerms'])) $this->agreeTerms = $o['agreeTerms'];
if (isset($o['notes'])) $this->notes = $o['notes'];
if (isset($o['last4'])) $this->last4 = $o['last4'];
if (isset($o['subTotal'])) $this->subTotal = $o['subTotal'];
if (isset($o['couponId'])) $this->couponId = $o['couponId'];
if (isset($o['discount'])) $this->discount = $o['discount'];
if (isset($o['tax'])) $this->tax = $o['tax'];
if (isset($o['total'])) $this->total = $o['total'];
if (isset($o['itemQuantity'])) $this->itemQuantity = $o['itemQuantity'];
if (isset($o['authorizedQuantity'])) $this->authorizedQuantity = $o['authorizedQuantity'];
if (isset($o['subscriptionId'])) $this->subscriptionId = $o['subscriptionId'];
if (isset($o['licenseRef'])) $this->licenseRef = $o['licenseRef'];
if (isset($o['paymentId'])) $this->paymentId = $o['paymentId'];
if (isset($o['emailId'])) $this->emailId = $o['emailId'];
if (isset($o['paid'])) $this->paid = $o['paid'];
if (isset($o['createdDate'])) $this->createdDate = JsonConverters::from('DateTime', $o['createdDate']);
if (isset($o['modifiedDate'])) $this->modifiedDate = JsonConverters::from('DateTime', $o['modifiedDate']);
if (isset($o['modifiedBy'])) $this->modifiedBy = $o['modifiedBy'];
if (isset($o['cancelledDate'])) $this->cancelledDate = JsonConverters::from('DateTime', $o['cancelledDate']);
if (isset($o['cancelledReason'])) $this->cancelledReason = $o['cancelledReason'];
if (isset($o['ipAddress'])) $this->ipAddress = $o['ipAddress'];
if (isset($o['orderDetails'])) $this->orderDetails = JsonConverters::fromArray('OrderDetail', $o['orderDetails']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->id)) $o['id'] = $this->id;
if (isset($this->customerId)) $o['customerId'] = $this->customerId;
if (isset($this->productName)) $o['productName'] = $this->productName;
if (isset($this->firstName)) $o['firstName'] = $this->firstName;
if (isset($this->lastName)) $o['lastName'] = $this->lastName;
if (isset($this->email)) $o['email'] = $this->email;
if (isset($this->company)) $o['company'] = $this->company;
if (isset($this->phoneNumber)) $o['phoneNumber'] = $this->phoneNumber;
if (isset($this->addressLine1)) $o['addressLine1'] = $this->addressLine1;
if (isset($this->addressLine2)) $o['addressLine2'] = $this->addressLine2;
if (isset($this->addressCity)) $o['addressCity'] = $this->addressCity;
if (isset($this->addressZip)) $o['addressZip'] = $this->addressZip;
if (isset($this->addressState)) $o['addressState'] = $this->addressState;
if (isset($this->addressCountry)) $o['addressCountry'] = $this->addressCountry;
if (isset($this->agreeTerms)) $o['agreeTerms'] = $this->agreeTerms;
if (isset($this->notes)) $o['notes'] = $this->notes;
if (isset($this->last4)) $o['last4'] = $this->last4;
if (isset($this->subTotal)) $o['subTotal'] = $this->subTotal;
if (isset($this->couponId)) $o['couponId'] = $this->couponId;
if (isset($this->discount)) $o['discount'] = $this->discount;
if (isset($this->tax)) $o['tax'] = $this->tax;
if (isset($this->total)) $o['total'] = $this->total;
if (isset($this->itemQuantity)) $o['itemQuantity'] = $this->itemQuantity;
if (isset($this->authorizedQuantity)) $o['authorizedQuantity'] = $this->authorizedQuantity;
if (isset($this->subscriptionId)) $o['subscriptionId'] = $this->subscriptionId;
if (isset($this->licenseRef)) $o['licenseRef'] = $this->licenseRef;
if (isset($this->paymentId)) $o['paymentId'] = $this->paymentId;
if (isset($this->emailId)) $o['emailId'] = $this->emailId;
if (isset($this->paid)) $o['paid'] = $this->paid;
if (isset($this->createdDate)) $o['createdDate'] = JsonConverters::to('DateTime', $this->createdDate);
if (isset($this->modifiedDate)) $o['modifiedDate'] = JsonConverters::to('DateTime', $this->modifiedDate);
if (isset($this->modifiedBy)) $o['modifiedBy'] = $this->modifiedBy;
if (isset($this->cancelledDate)) $o['cancelledDate'] = JsonConverters::to('DateTime', $this->cancelledDate);
if (isset($this->cancelledReason)) $o['cancelledReason'] = $this->cancelledReason;
if (isset($this->ipAddress)) $o['ipAddress'] = $this->ipAddress;
if (isset($this->orderDetails)) $o['orderDetails'] = JsonConverters::toArray('OrderDetail', $this->orderDetails);
return empty($o) ? new class(){} : $o;
}
}
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 /account/orders/{Id} HTTP/1.1
Host: account.servicestack.net
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"id":0}
HTTP/1.1 200 OK Content-Type: text/jsonl Content-Length: length {"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}]}