POST | /api/StationReservation |
---|
import 'package:servicestack/servicestack.dart';
// @DataContract
class BaseRequest implements IConvertible
{
/**
* This is your AIM API Key provided by Tri-Tech
*/
// @DataMember
// @ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="header")
String? ApiKey;
// @DataMember
// @ApiMember(DataType="string", Name="OAuthToken", ParameterType="header")
String? OAuthToken;
BaseRequest({this.ApiKey,this.OAuthToken});
BaseRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ApiKey = json['ApiKey'];
OAuthToken = json['OAuthToken'];
return this;
}
Map<String, dynamic> toJson() => {
'ApiKey': ApiKey,
'OAuthToken': OAuthToken
};
getTypeName() => "BaseRequest";
TypeContext? context = _ctx;
}
// @DataContract
class BaseSecureRequest extends BaseRequest implements IConvertible
{
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header")
String? Token;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="DeviceId", ParameterType="Header")
String? DeviceId;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", IsRequired=true, Name="AppId", ParameterType="Header")
String? AppId;
BaseSecureRequest({this.Token,this.DeviceId,this.AppId});
BaseSecureRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Token = json['Token'];
DeviceId = json['DeviceId'];
AppId = json['AppId'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Token': Token,
'DeviceId': DeviceId,
'AppId': AppId
});
getTypeName() => "BaseSecureRequest";
TypeContext? context = _ctx;
}
// @DataContract
class BaseResponseResult implements IConvertible
{
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="StatusCode", ParameterType="body")
String? StatusCode;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="Login", ParameterType="body")
String? Login;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="ErrorCode", ParameterType="body")
String? ErrorCode;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="ErrorDisplayText", ParameterType="body")
String? ErrorDisplayText;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="ErrorMessage", ParameterType="body")
String? ErrorMessage;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="DomainName", ParameterType="body")
String? DomainName;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="IPAddress", ParameterType="body")
String? IpAddress;
BaseResponseResult({this.StatusCode,this.Login,this.ErrorCode,this.ErrorDisplayText,this.ErrorMessage,this.DomainName,this.IpAddress});
BaseResponseResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
StatusCode = json['StatusCode'];
Login = json['Login'];
ErrorCode = json['ErrorCode'];
ErrorDisplayText = json['ErrorDisplayText'];
ErrorMessage = json['ErrorMessage'];
DomainName = json['DomainName'];
IpAddress = json['IpAddress'];
return this;
}
Map<String, dynamic> toJson() => {
'StatusCode': StatusCode,
'Login': Login,
'ErrorCode': ErrorCode,
'ErrorDisplayText': ErrorDisplayText,
'ErrorMessage': ErrorMessage,
'DomainName': DomainName,
'IpAddress': IpAddress
};
getTypeName() => "BaseResponseResult";
TypeContext? context = _ctx;
}
// @DataContract
class BaseResponse implements IConvertible
{
/**
*
*/
// @DataMember
// @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")
BaseResponseResult? Status;
BaseResponse({this.Status});
BaseResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Status = JsonConverters.fromJson(json['Status'],'BaseResponseResult',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Status': JsonConverters.toJson(Status,'BaseResponseResult',context!)
};
getTypeName() => "BaseResponse";
TypeContext? context = _ctx;
}
// @DataContract
class StationReservationResponse extends BaseResponse implements IConvertible
{
StationReservationResponse();
StationReservationResponse.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "StationReservationResponse";
TypeContext? context = _ctx;
}
// @DataContract(Name="CustomerInfo")
class CustomerInfo implements IConvertible
{
/**
* The WebId of the customer. Optional.
*/
// @DataMember
// @ApiMember(DataType="integer", Description="The WebId of the customer. Optional.", Format="int32", IsRequired=true, Name="WebId", ParameterType="query")
int? WebId;
/**
* Name of the customer.
*/
// @DataMember
// @ApiMember(DataType="string", Description="Name of the customer.", IsRequired=true, Name="Name", ParameterType="query")
String? Name;
/**
* Address line 1 of the customer
*/
// @DataMember
// @ApiMember(DataType="string", Description="Address line 1 of the customer", Name="Addr1", ParameterType="query")
String? Addr1;
/**
* Address line 2 of the customer
*/
// @DataMember
// @ApiMember(DataType="string", Description="Address line 2 of the customer", Name="Addr2", ParameterType="query")
String? Addr2;
/**
* City of the customer
*/
// @DataMember
// @ApiMember(DataType="string", Description="City of the customer", Name="City", ParameterType="query")
String? City;
/**
* State/Province of the customer
*/
// @DataMember
// @ApiMember(DataType="string", Description="State/Province of the customer", Name="St", ParameterType="query")
String? St;
/**
* Zip code of the customer
*/
// @DataMember
// @ApiMember(DataType="string", Description="Zip code of the customer", Name="Zip", ParameterType="query")
String? Zip;
/**
* Country of the customer
*/
// @DataMember
// @ApiMember(DataType="string", Description="Country of the customer", Name="Country", ParameterType="query")
String? Country;
/**
* Phone number of the customer
*/
// @DataMember
// @ApiMember(DataType="string", Description="Phone number of the customer", Name="Phone", ParameterType="query")
String? Phone;
/**
* Email address of the customer. Required.
*/
// @DataMember
// @ApiMember(DataType="string", Description="Email address of the customer. Required.", IsRequired=true, Name="Email", ParameterType="query")
String? Email;
CustomerInfo({this.WebId,this.Name,this.Addr1,this.Addr2,this.City,this.St,this.Zip,this.Country,this.Phone,this.Email});
CustomerInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
WebId = json['WebId'];
Name = json['Name'];
Addr1 = json['Addr1'];
Addr2 = json['Addr2'];
City = json['City'];
St = json['St'];
Zip = json['Zip'];
Country = json['Country'];
Phone = json['Phone'];
Email = json['Email'];
return this;
}
Map<String, dynamic> toJson() => {
'WebId': WebId,
'Name': Name,
'Addr1': Addr1,
'Addr2': Addr2,
'City': City,
'St': St,
'Zip': Zip,
'Country': Country,
'Phone': Phone,
'Email': Email
};
getTypeName() => "CustomerInfo";
TypeContext? context = _ctx;
}
// @DataContract(Name="CCInfo")
class CcInfo implements IConvertible
{
/**
* Token returned from processor
*/
// @DataMember
// @ApiMember(DataType="string", Description="Token returned from processor", IsRequired=true, Name="TokenStr", ParameterType="query")
String? TokenStr;
/**
* Card Type (VISA, MCARD, AMEX, DSCVR)
*/
// @DataMember
// @ApiMember(DataType="string", Description="Card Type (VISA, MCARD, AMEX, DSCVR)", IsRequired=true, Name="CardType", ParameterType="query")
String? CardType;
/**
* Last four of the card
*/
// @DataMember
// @ApiMember(DataType="string", Description="Last four of the card", IsRequired=true, Name="LastFour", ParameterType="query")
String? LastFour;
/**
* Expiration Date of the Card. (MM/YY)
*/
// @DataMember
// @ApiMember(DataType="string", Description="Expiration Date of the Card. (MM/YY)", Name="Expiration", ParameterType="query")
String? Expiration;
/**
* Reason the card is on file.
*/
// @DataMember
// @ApiMember(DataType="string", Description="Reason the card is on file.", Name="ReasonOnFile", ParameterType="query")
String? ReasonOnFile;
/**
* ID of the existing Token Record in AIM, if applicable
*/
// @DataMember
// @ApiMember(DataType="integer", Description="ID of the existing Token Record in AIM, if applicable", Format="int64", Name="TokenPk", ParameterType="query")
int? TokenPk;
/**
* Is this the customer's primary card? Defaults to false.
*/
// @DataMember
// @ApiMember(DataType="boolean", Description="Is this the customer's primary card? Defaults to false.", Name="Primary", ParameterType="query")
bool? Primary;
CcInfo({this.TokenStr,this.CardType,this.LastFour,this.Expiration,this.ReasonOnFile,this.TokenPk,this.Primary});
CcInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
TokenStr = json['TokenStr'];
CardType = json['CardType'];
LastFour = json['LastFour'];
Expiration = json['Expiration'];
ReasonOnFile = json['ReasonOnFile'];
TokenPk = json['TokenPk'];
Primary = json['Primary'];
return this;
}
Map<String, dynamic> toJson() => {
'TokenStr': TokenStr,
'CardType': CardType,
'LastFour': LastFour,
'Expiration': Expiration,
'ReasonOnFile': ReasonOnFile,
'TokenPk': TokenPk,
'Primary': Primary
};
getTypeName() => "CcInfo";
TypeContext? context = _ctx;
}
/**
* StationReservationRequires active-e Station Reservations Service
*/
// @DataContract
class StationReservationRequest extends BaseSecureRequest implements IConvertible
{
/**
* The ID of the station being reserved
*/
// @DataMember
// @ApiMember(DataType="integer", Description="The ID of the station being reserved", Format="int64", IsRequired=true, Name="StationId", ParameterType="query")
int? StationId;
/**
* The Customer Acct assosicated with the reservation. Either this or CustomerInfo is required.
*/
// @DataMember
// @ApiMember(DataType="integer", Description="The Customer Acct assosicated with the reservation. Either this or CustomerInfo is required.", Format="int32", Name="Acct", ParameterType="query")
int? Acct;
/**
*
*/
// @DataMember
// @ApiMember(DataType="object", Description="", Name="CustomerInfo", ParameterType="query")
CustomerInfo? CustomerInfo;
/**
*
*/
// @DataMember
// @ApiMember(DataType="object", Description="", Name="CcInfo ", ParameterType="query")
CcInfo? CcInfo;
/**
* The start date/time of the reservation.
*/
// @DataMember
// @ApiMember(DataType="string", Description="The start date/time of the reservation.", Format="date-time", IsRequired=true, Name="Start", ParameterType="query")
DateTime? Start;
/**
* The length (in minutes) of the reservation.
*/
// @DataMember
// @ApiMember(DataType="integer", Description="The length (in minutes) of the reservation.", Format="int32", IsRequired=true, Name="Length", ParameterType="query")
int? Length;
/**
* Number of guests (in addition to the customer) included in this reservation. Defaults to 0.
*/
// @DataMember
// @ApiMember(DataType="integer", Description="Number of guests (in addition to the customer) included in this reservation. Defaults to 0.", Format="int32", Name="Guests", ParameterType="query")
int? Guests;
/**
* Notes
*/
// @DataMember
// @ApiMember(DataType="string", Description="Notes", Name="Notes", ParameterType="query")
String? Notes;
StationReservationRequest({this.StationId,this.Acct,this.CustomerInfo,this.CcInfo,this.Start,this.Length,this.Guests,this.Notes});
StationReservationRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
StationId = json['StationId'];
Acct = json['Acct'];
CustomerInfo = JsonConverters.fromJson(json['CustomerInfo'],'CustomerInfo',context!);
CcInfo = JsonConverters.fromJson(json['CcInfo'],'CcInfo',context!);
Start = JsonConverters.fromJson(json['Start'],'DateTime',context!);
Length = json['Length'];
Guests = json['Guests'];
Notes = json['Notes'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'StationId': StationId,
'Acct': Acct,
'CustomerInfo': JsonConverters.toJson(CustomerInfo,'CustomerInfo',context!),
'CcInfo': JsonConverters.toJson(CcInfo,'CcInfo',context!),
'Start': JsonConverters.toJson(Start,'DateTime',context!),
'Length': Length,
'Guests': Guests,
'Notes': Notes
});
getTypeName() => "StationReservationRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'active_ewebservice.biz', types: <String, TypeInfo> {
'BaseRequest': TypeInfo(TypeOf.Class, create:() => BaseRequest()),
'BaseSecureRequest': TypeInfo(TypeOf.Class, create:() => BaseSecureRequest()),
'BaseResponseResult': TypeInfo(TypeOf.Class, create:() => BaseResponseResult()),
'BaseResponse': TypeInfo(TypeOf.Class, create:() => BaseResponse()),
'StationReservationResponse': TypeInfo(TypeOf.Class, create:() => StationReservationResponse()),
'CustomerInfo': TypeInfo(TypeOf.Class, create:() => CustomerInfo()),
'CcInfo': TypeInfo(TypeOf.Class, create:() => CcInfo()),
'StationReservationRequest': TypeInfo(TypeOf.Class, create:() => StationReservationRequest()),
});
Dart StationReservationRequest DTOs
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 /api/StationReservation HTTP/1.1
Host: active-ewebservice.biz
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<StationReservationRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AIM.WebService">
<ApiKey>String</ApiKey>
<OAuthToken>String</OAuthToken>
<AppId>String</AppId>
<DeviceId>String</DeviceId>
<Token>String</Token>
<Acct>0</Acct>
<CcInfo>
<CardType>String</CardType>
<Expiration>String</Expiration>
<LastFour>String</LastFour>
<Primary>false</Primary>
<ReasonOnFile>String</ReasonOnFile>
<TokenPk>0</TokenPk>
<TokenStr>String</TokenStr>
</CcInfo>
<CustomerInfo>
<Addr1>String</Addr1>
<Addr2>String</Addr2>
<City>String</City>
<Country>String</Country>
<Email>String</Email>
<Name>String</Name>
<Phone>String</Phone>
<St>String</St>
<WebId>0</WebId>
<Zip>String</Zip>
</CustomerInfo>
<Guests>0</Guests>
<Length>0</Length>
<Notes>String</Notes>
<Start>0001-01-01T00:00:00</Start>
<StationId>0</StationId>
</StationReservationRequest>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <StationReservationResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AIM.WebService"> <Status> <DomainName>String</DomainName> <ErrorCode>String</ErrorCode> <ErrorDisplayText>String</ErrorDisplayText> <ErrorMessage>String</ErrorMessage> <IpAddress>String</IpAddress> <Login>String</Login> <StatusCode>String</StatusCode> </Status> </StationReservationResponse>