"use strict";
export class QueryBase {
/** @param {{skip?:number,take?:number,orderBy?:string,orderByDesc?:string,include?:string,fields?:string,meta?:{ [index:string]: string; }}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {?number} */
skip;
/** @type {?number} */
take;
/** @type {string} */
orderBy;
/** @type {string} */
orderByDesc;
/** @type {string} */
include;
/** @type {string} */
fields;
/** @type {{ [index:string]: string; }} */
meta;
}
/** @typedef T {any} */
export class QueryDb extends QueryBase {
/** @param {{skip?:number,take?:number,orderBy?:string,orderByDesc?:string,include?:string,fields?:string,meta?:{ [index:string]: string; }}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
}
export class AuditBase {
/** @param {{createdDate?:string,createdBy?:string,modifiedDate?:string,modifiedBy?:string,deletedDate?:string,deletedBy?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
createdDate;
/** @type {string} */
createdBy;
/** @type {string} */
modifiedDate;
/** @type {string} */
modifiedBy;
/** @type {?string} */
deletedDate;
/** @type {string} */
deletedBy;
}
/** @typedef {'Home'|'Mobile'|'Work'} */
export var PhoneKind;
(function (PhoneKind) {
PhoneKind["Home"] = "Home"
PhoneKind["Mobile"] = "Mobile"
PhoneKind["Work"] = "Work"
})(PhoneKind || (PhoneKind = {}));
export class Phone {
/** @param {{kind?:PhoneKind,number?:string,ext?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {PhoneKind} */
kind;
/** @type {string} */
number;
/** @type {string} */
ext;
}
export class PlayerGameItem {
/** @param {{id?:number,playerId?:number,gameItemName?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
id;
/** @type {number} */
playerId;
/** @type {string} */
gameItemName;
}
/** @typedef {'Leader'|'Player'|'NonPlayer'} */
export var PlayerRole;
(function (PlayerRole) {
PlayerRole["Leader"] = "Leader"
PlayerRole["Player"] = "Player"
PlayerRole["NonPlayer"] = "NonPlayer"
})(PlayerRole || (PlayerRole = {}));
/** @typedef {number} */
export var PlayerRegion;
(function (PlayerRegion) {
PlayerRegion[PlayerRegion["Africa"] = 1] = "Africa"
PlayerRegion[PlayerRegion["Americas"] = 2] = "Americas"
PlayerRegion[PlayerRegion["Asia"] = 3] = "Asia"
PlayerRegion[PlayerRegion["Australasia"] = 4] = "Australasia"
PlayerRegion[PlayerRegion["Europe"] = 5] = "Europe"
})(PlayerRegion || (PlayerRegion = {}));
export class Profile extends AuditBase {
/** @param {{id?:number,role?:PlayerRole,region?:PlayerRegion,username?:string,highScore?:number,gamesPlayed?:number,energy?:number,profileUrl?:string,coverUrl?:string,meta?:{ [index:string]: string; },createdDate?:string,createdBy?:string,modifiedDate?:string,modifiedBy?:string,deletedDate?:string,deletedBy?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {number} */
id;
/** @type {PlayerRole} */
role;
/** @type {PlayerRegion} */
region;
/** @type {?string} */
username;
/** @type {number} */
highScore;
/** @type {number} */
gamesPlayed;
/** @type {number} */
energy;
/** @type {?string} */
profileUrl;
/** @type {?string} */
coverUrl;
/** @type {?{ [index:string]: string; }} */
meta;
}
export class Player extends AuditBase {
/** @param {{id?:number,firstName?:string,lastName?:string,email?:string,phoneNumbers?:Phone[],gameItems?:PlayerGameItem[],profile?:Profile,profileId?:number,savedLevelId?:string,rowVersion?:number,createdDate?:string,createdBy?:string,modifiedDate?:string,modifiedBy?:string,deletedDate?:string,deletedBy?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {number} */
id;
/** @type {string} */
firstName;
/** @type {string} */
lastName;
/** @type {string} */
email;
/** @type {Phone[]} */
phoneNumbers = [];
/** @type {PlayerGameItem[]} */
gameItems = [];
/** @type {Profile} */
profile;
/** @type {number} */
profileId;
/** @type {string} */
savedLevelId;
/** @type {number} */
rowVersion;
}
export class QueryPlayer extends QueryDb {
/** @param {{skip?:number,take?:number,orderBy?:string,orderByDesc?:string,include?:string,fields?:string,meta?:{ [index:string]: string; }}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
}
export class Todo {
/** @param {{id?:number,text?:string,isFinished?:boolean}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
id;
/** @type {string} */
text;
/** @type {boolean} */
isFinished;
}
/** @typedef T {any} */
export class QueryResponse {
/** @param {{offset?:number,total?:number,results?:T[],meta?:{ [index:string]: string; },responseStatus?:ResponseStatus}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
offset;
/** @type {number} */
total;
/** @type {T[]} */
results;
/** @type {{ [index:string]: string; }} */
meta;
/** @type {ResponseStatus} */
responseStatus;
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /xml/reply/QueryPlayer HTTP/1.1
Host: blazor-gallery.servicestack.net
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<QueryPlayer xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyApp.ServiceModel">
<Skip xmlns="http://schemas.servicestack.net/types">0</Skip>
<Take xmlns="http://schemas.servicestack.net/types">0</Take>
<OrderBy xmlns="http://schemas.servicestack.net/types">String</OrderBy>
<OrderByDesc xmlns="http://schemas.servicestack.net/types">String</OrderByDesc>
<Include xmlns="http://schemas.servicestack.net/types">String</Include>
<Fields xmlns="http://schemas.servicestack.net/types">String</Fields>
<Meta xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns="http://schemas.servicestack.net/types">
<d2p1:KeyValueOfstringstring>
<d2p1:Key>String</d2p1:Key>
<d2p1:Value>String</d2p1:Value>
</d2p1:KeyValueOfstringstring>
</Meta>
</QueryPlayer>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <QueryResponseOfPlayertlJ4_P31p xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types"> <Offset>0</Offset> <Total>0</Total> <Results xmlns:d2p1="http://schemas.datacontract.org/2004/07/MyApp.ServiceModel"> <d2p1:Player> <CreatedDate>0001-01-01T00:00:00</CreatedDate> <CreatedBy>String</CreatedBy> <ModifiedDate>0001-01-01T00:00:00</ModifiedDate> <ModifiedBy>String</ModifiedBy> <DeletedDate>0001-01-01T00:00:00</DeletedDate> <DeletedBy>String</DeletedBy> <d2p1:Email>String</d2p1:Email> <d2p1:FirstName>String</d2p1:FirstName> <d2p1:GameItems> <d2p1:PlayerGameItem> <d2p1:GameItemName>String</d2p1:GameItemName> <d2p1:Id>0</d2p1:Id> <d2p1:PlayerId>0</d2p1:PlayerId> </d2p1:PlayerGameItem> </d2p1:GameItems> <d2p1:Id>0</d2p1:Id> <d2p1:LastName>String</d2p1:LastName> <d2p1:PhoneNumbers> <d2p1:Phone> <d2p1:Ext>String</d2p1:Ext> <d2p1:Kind>Home</d2p1:Kind> <d2p1:Number>String</d2p1:Number> </d2p1:Phone> </d2p1:PhoneNumbers> <d2p1:Profile> <CreatedDate>0001-01-01T00:00:00</CreatedDate> <CreatedBy>String</CreatedBy> <ModifiedDate>0001-01-01T00:00:00</ModifiedDate> <ModifiedBy>String</ModifiedBy> <DeletedDate>0001-01-01T00:00:00</DeletedDate> <DeletedBy>String</DeletedBy> <d2p1:CoverUrl>String</d2p1:CoverUrl> <d2p1:Energy>0</d2p1:Energy> <d2p1:GamesPlayed>0</d2p1:GamesPlayed> <d2p1:HighScore>0</d2p1:HighScore> <d2p1:Id>0</d2p1:Id> <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:KeyValueOfstringstring> <d5p1:Key>String</d5p1:Key> <d5p1:Value>String</d5p1:Value> </d5p1:KeyValueOfstringstring> </d2p1:Meta> <d2p1:ProfileUrl>String</d2p1:ProfileUrl> <d2p1:Region>Africa</d2p1:Region> <d2p1:Role>Leader</d2p1:Role> <d2p1:Username>String</d2p1:Username> </d2p1:Profile> <d2p1:ProfileId>0</d2p1:ProfileId> <d2p1:RowVersion>0</d2p1:RowVersion> <d2p1:SavedLevelId>00000000-0000-0000-0000-000000000000</d2p1:SavedLevelId> </d2p1:Player> </Results> <Meta xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d2p1:KeyValueOfstringstring> <d2p1:Key>String</d2p1:Key> <d2p1:Value>String</d2p1:Value> </d2p1:KeyValueOfstringstring> </Meta> <ResponseStatus> <ErrorCode>String</ErrorCode> <Message>String</Message> <StackTrace>String</StackTrace> <Errors> <ResponseError> <ErrorCode>String</ErrorCode> <FieldName>String</FieldName> <Message>String</Message> <Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:KeyValueOfstringstring> <d5p1:Key>String</d5p1:Key> <d5p1:Value>String</d5p1:Value> </d5p1:KeyValueOfstringstring> </Meta> </ResponseError> </Errors> <Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d3p1:KeyValueOfstringstring> <d3p1:Key>String</d3p1:Key> <d3p1:Value>String</d3p1:Value> </d3p1:KeyValueOfstringstring> </Meta> </ResponseStatus> </QueryResponseOfPlayertlJ4_P31p>