| POST | /qbowebhook |
|---|
import 'package:servicestack/servicestack.dart';
enum QBOEntityName
{
Customer,
Department,
Vendor,
Deposit,
Invoice,
Bill,
Item,
JournalCode,
PurchaseOrder,
JournalEntry,
Estimate,
RefundReceipt,
Employee,
SalesReceipt,
TaxAgency,
Term,
TimeActivity,
Account,
Transfer,
VendorCredit,
CreditMemo,
Purchase,
Currency,
Payment,
PaymentMethod,
BillPayment,
Preferences,
Budget,
Class,
}
enum QBOOperation
{
Update,
Create,
Merge,
Delete,
Emailed,
Void,
}
class QBOEntity implements IConvertible
{
// @DataMember(Name="name")
QBOEntityName? name;
// @DataMember(Name="id")
String? id;
// @DataMember(Name="operation")
QBOOperation? operation;
// @DataMember(Name="lastUpdated")
DateTime? lastUpdated;
// @DataMember(Name="deletedId")
String? deletedId;
QBOEntity({this.name,this.id,this.operation,this.lastUpdated,this.deletedId});
QBOEntity.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
name = JsonConverters.fromJson(json['Name'],'QBOEntityName',context!);
id = json['Id'];
operation = JsonConverters.fromJson(json['Operation'],'QBOOperation',context!);
lastUpdated = JsonConverters.fromJson(json['LastUpdated'],'DateTime',context!);
deletedId = json['DeletedId'];
return this;
}
Map<String, dynamic> toJson() => {
'name': JsonConverters.toJson(name,'QBOEntityName',context!),
'id': id,
'operation': JsonConverters.toJson(operation,'QBOOperation',context!),
'lastUpdated': JsonConverters.toJson(lastUpdated,'DateTime',context!),
'deletedId': deletedId
};
getTypeName() => "QBOEntity";
TypeContext? context = _ctx;
}
class QBODataChangeEvent implements IConvertible
{
// @DataMember(Name="entities")
List<QBOEntity>? entities;
QBODataChangeEvent({this.entities});
QBODataChangeEvent.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
entities = JsonConverters.fromJson(json['Entities'],'List<QBOEntity>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'entities': JsonConverters.toJson(entities,'List<QBOEntity>',context!)
};
getTypeName() => "QBODataChangeEvent";
TypeContext? context = _ctx;
}
class QBOEventNotification implements IConvertible
{
// @DataMember(Name="realmId")
String? realmId;
// @DataMember(Name="dataChangeEvent")
QBODataChangeEvent? dataChangeEvent;
QBOEventNotification({this.realmId,this.dataChangeEvent});
QBOEventNotification.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
realmId = json['RealmId'];
dataChangeEvent = JsonConverters.fromJson(json['DataChangeEvent'],'QBODataChangeEvent',context!);
return this;
}
Map<String, dynamic> toJson() => {
'realmId': realmId,
'dataChangeEvent': JsonConverters.toJson(dataChangeEvent,'QBODataChangeEvent',context!)
};
getTypeName() => "QBOEventNotification";
TypeContext? context = _ctx;
}
// @DataContract
class QboWebhooksRequest implements IConvertible
{
// @DataMember(Name="eventNotifications")
List<QBOEventNotification>? eventNotifications;
QboWebhooksRequest({this.eventNotifications});
QboWebhooksRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
eventNotifications = JsonConverters.fromJson(json['EventNotifications'],'List<QBOEventNotification>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'eventNotifications': JsonConverters.toJson(eventNotifications,'List<QBOEventNotification>',context!)
};
getTypeName() => "QboWebhooksRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'wh.entersecurity.com', types: <String, TypeInfo> {
'QBOEntityName': TypeInfo(TypeOf.Enum, enumValues:QBOEntityName.values),
'QBOOperation': TypeInfo(TypeOf.Enum, enumValues:QBOOperation.values),
'QBOEntity': TypeInfo(TypeOf.Class, create:() => QBOEntity()),
'QBODataChangeEvent': TypeInfo(TypeOf.Class, create:() => QBODataChangeEvent()),
'List<QBOEntity>': TypeInfo(TypeOf.Class, create:() => <QBOEntity>[]),
'QBOEventNotification': TypeInfo(TypeOf.Class, create:() => QBOEventNotification()),
'QboWebhooksRequest': TypeInfo(TypeOf.Class, create:() => QboWebhooksRequest()),
'List<QBOEventNotification>': TypeInfo(TypeOf.Class, create:() => <QBOEventNotification>[]),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /qbowebhook HTTP/1.1
Host: wh.entersecurity.com
Accept: application/json
Content-Type: application/json
Content-Length: length
{"eventNotifications":[{"realmId":"String","dataChangeEvent":{"entities":[{"name":"Customer","id":"String","operation":"Update","lastUpdated":"\/Date(-62135596800000-0000)\/","deletedId":"String"}]}}]}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length (string)