| GET | /v2/transaction/{Query}/{CendynPropertyId} | ||
|---|---|---|---|
| GET | /v2/transaction/{Query} |
import 'package:servicestack/servicestack.dart';
enum RequestStatus
{
Success,
Warning,
Error,
NotAuthorized,
Failure,
}
class CenResResponse implements IConvertible
{
RequestStatus? status;
String? statusMessage;
int? recordsReturned;
int? recordsAvailable;
int? pageNumber;
int? pageSize;
CenResResponse({this.status,this.statusMessage,this.recordsReturned,this.recordsAvailable,this.pageNumber,this.pageSize});
CenResResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
status = JsonConverters.fromJson(json['status'],'RequestStatus',context!);
statusMessage = json['statusMessage'];
recordsReturned = json['recordsReturned'];
recordsAvailable = json['recordsAvailable'];
pageNumber = json['pageNumber'];
pageSize = json['pageSize'];
return this;
}
Map<String, dynamic> toJson() => {
'status': JsonConverters.toJson(status,'RequestStatus',context!),
'statusMessage': statusMessage,
'recordsReturned': recordsReturned,
'recordsAvailable': recordsAvailable,
'pageNumber': pageNumber,
'pageSize': pageSize
};
getTypeName() => "CenResResponse";
TypeContext? context = _ctx;
}
class Transaction implements IConvertible
{
String? cendynPropertyID;
String? sourcePropertyID;
String? externalResID1;
String? externalProfileID;
String? externalRefType;
String? externalRefID;
String? transactionSource;
String? transactionID;
String? transactionGroup;
DateTime? transactionDate;
String? folioID;
String? folioGroupingID;
String? transactionCode;
String? description;
double? creditAmount;
double? debitAmount;
double? netAmount;
bool? displayOnInvoice;
String? ledgerAccountNum;
String? ccTransactionType;
String? roomNumber;
String? transferType;
String? transferredResID;
String? referenceNum;
int? postedNights;
int? itemQty;
String? userID;
String? currencyCode;
int? decimals;
double? customValue1;
double? customValue2;
Transaction({this.cendynPropertyID,this.sourcePropertyID,this.externalResID1,this.externalProfileID,this.externalRefType,this.externalRefID,this.transactionSource,this.transactionID,this.transactionGroup,this.transactionDate,this.folioID,this.folioGroupingID,this.transactionCode,this.description,this.creditAmount,this.debitAmount,this.netAmount,this.displayOnInvoice,this.ledgerAccountNum,this.ccTransactionType,this.roomNumber,this.transferType,this.transferredResID,this.referenceNum,this.postedNights,this.itemQty,this.userID,this.currencyCode,this.decimals,this.customValue1,this.customValue2});
Transaction.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
cendynPropertyID = json['cendynPropertyID'];
sourcePropertyID = json['sourcePropertyID'];
externalResID1 = json['externalResID1'];
externalProfileID = json['externalProfileID'];
externalRefType = json['externalRefType'];
externalRefID = json['externalRefID'];
transactionSource = json['transactionSource'];
transactionID = json['transactionID'];
transactionGroup = json['transactionGroup'];
transactionDate = JsonConverters.fromJson(json['transactionDate'],'DateTime',context!);
folioID = json['folioID'];
folioGroupingID = json['folioGroupingID'];
transactionCode = json['transactionCode'];
description = json['description'];
creditAmount = JsonConverters.toDouble(json['creditAmount']);
debitAmount = JsonConverters.toDouble(json['debitAmount']);
netAmount = JsonConverters.toDouble(json['netAmount']);
displayOnInvoice = json['displayOnInvoice'];
ledgerAccountNum = json['ledgerAccountNum'];
ccTransactionType = json['ccTransactionType'];
roomNumber = json['roomNumber'];
transferType = json['transferType'];
transferredResID = json['transferredResID'];
referenceNum = json['referenceNum'];
postedNights = json['postedNights'];
itemQty = json['itemQty'];
userID = json['userID'];
currencyCode = json['currencyCode'];
decimals = json['decimals'];
customValue1 = JsonConverters.toDouble(json['customValue1']);
customValue2 = JsonConverters.toDouble(json['customValue2']);
return this;
}
Map<String, dynamic> toJson() => {
'cendynPropertyID': cendynPropertyID,
'sourcePropertyID': sourcePropertyID,
'externalResID1': externalResID1,
'externalProfileID': externalProfileID,
'externalRefType': externalRefType,
'externalRefID': externalRefID,
'transactionSource': transactionSource,
'transactionID': transactionID,
'transactionGroup': transactionGroup,
'transactionDate': JsonConverters.toJson(transactionDate,'DateTime',context!),
'folioID': folioID,
'folioGroupingID': folioGroupingID,
'transactionCode': transactionCode,
'description': description,
'creditAmount': creditAmount,
'debitAmount': debitAmount,
'netAmount': netAmount,
'displayOnInvoice': displayOnInvoice,
'ledgerAccountNum': ledgerAccountNum,
'ccTransactionType': ccTransactionType,
'roomNumber': roomNumber,
'transferType': transferType,
'transferredResID': transferredResID,
'referenceNum': referenceNum,
'postedNights': postedNights,
'itemQty': itemQty,
'userID': userID,
'currencyCode': currencyCode,
'decimals': decimals,
'customValue1': customValue1,
'customValue2': customValue2
};
getTypeName() => "Transaction";
TypeContext? context = _ctx;
}
class TransactionResponse extends CenResResponse implements IConvertible
{
List<Transaction>? records;
TransactionResponse({this.records});
TransactionResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
records = JsonConverters.fromJson(json['records'],'List<Transaction>',context!);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'records': JsonConverters.toJson(records,'List<Transaction>',context!)
});
getTypeName() => "TransactionResponse";
TypeContext? context = _ctx;
}
enum TransactionQueryType
{
TransactionId,
LastUpdated,
TransactionDate,
}
class TransactionRequest implements IConvertible
{
String? cendynPropertyId;
String? transactionSource;
TransactionQueryType? query;
String? id;
DateTime? startDate;
DateTime? endDate;
// @DataMember(Name="Limit")
int? pageSize;
// @DataMember(Name="Page")
int? pageNumber;
TransactionRequest({this.cendynPropertyId,this.transactionSource,this.query,this.id,this.startDate,this.endDate,this.pageSize,this.pageNumber});
TransactionRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
cendynPropertyId = json['cendynPropertyId'];
transactionSource = json['transactionSource'];
query = JsonConverters.fromJson(json['query'],'TransactionQueryType',context!);
id = json['id'];
startDate = JsonConverters.fromJson(json['startDate'],'DateTime',context!);
endDate = JsonConverters.fromJson(json['endDate'],'DateTime',context!);
pageSize = json['pageSize'];
pageNumber = json['pageNumber'];
return this;
}
Map<String, dynamic> toJson() => {
'cendynPropertyId': cendynPropertyId,
'transactionSource': transactionSource,
'query': JsonConverters.toJson(query,'TransactionQueryType',context!),
'id': id,
'startDate': JsonConverters.toJson(startDate,'DateTime',context!),
'endDate': JsonConverters.toJson(endDate,'DateTime',context!),
'pageSize': pageSize,
'pageNumber': pageNumber
};
getTypeName() => "TransactionRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'cert.cendyn.com', types: <String, TypeInfo> {
'RequestStatus': TypeInfo(TypeOf.Enum, enumValues:RequestStatus.values),
'CenResResponse': TypeInfo(TypeOf.Class, create:() => CenResResponse()),
'Transaction': TypeInfo(TypeOf.Class, create:() => Transaction()),
'TransactionResponse': TypeInfo(TypeOf.Class, create:() => TransactionResponse()),
'List<Transaction>': TypeInfo(TypeOf.Class, create:() => <Transaction>[]),
'TransactionQueryType': TypeInfo(TypeOf.Enum, enumValues:TransactionQueryType.values),
'TransactionRequest': TypeInfo(TypeOf.Class, create:() => TransactionRequest()),
});
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.
GET /v2/transaction/{Query}/{CendynPropertyId} HTTP/1.1
Host: cert.cendyn.com
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<TransactionResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CenResSS.ServiceModel">
<PageNumber>0</PageNumber>
<PageSize>0</PageSize>
<RecordsAvailable>0</RecordsAvailable>
<RecordsReturned>0</RecordsReturned>
<Status>Success</Status>
<StatusMessage>String</StatusMessage>
<Records>
<Transaction>
<CCTransactionType>String</CCTransactionType>
<CendynPropertyID>String</CendynPropertyID>
<CreditAmount>0</CreditAmount>
<CurrencyCode>String</CurrencyCode>
<CustomValue1>0</CustomValue1>
<CustomValue2>0</CustomValue2>
<DebitAmount>0</DebitAmount>
<Decimals>0</Decimals>
<Description>String</Description>
<DisplayOnInvoice>false</DisplayOnInvoice>
<ExternalProfileID>String</ExternalProfileID>
<ExternalRefID>String</ExternalRefID>
<ExternalRefType>String</ExternalRefType>
<ExternalResID1>String</ExternalResID1>
<FolioGroupingID>String</FolioGroupingID>
<FolioID>String</FolioID>
<ItemQty>0</ItemQty>
<LedgerAccountNum>String</LedgerAccountNum>
<NetAmount>0</NetAmount>
<PostedNights>0</PostedNights>
<ReferenceNum>String</ReferenceNum>
<RoomNumber>String</RoomNumber>
<SourcePropertyID>String</SourcePropertyID>
<TransactionCode>String</TransactionCode>
<TransactionDate>0001-01-01T00:00:00</TransactionDate>
<TransactionGroup>String</TransactionGroup>
<TransactionID>String</TransactionID>
<TransactionSource>String</TransactionSource>
<TransferType>String</TransferType>
<TransferredResID>String</TransferredResID>
<UserID>String</UserID>
</Transaction>
</Records>
</TransactionResponse>