Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
POST | /webhook/endpoints | Create webhook endpoint |
---|
import 'package:servicestack/servicestack.dart';
class WebhookEndpoint implements IConvertible
{
String? Description;
String? Url;
String? Id;
bool? Disabled;
List<String>? EventTypes;
WebhookEndpoint({this.Description,this.Url,this.Id,this.Disabled,this.EventTypes});
WebhookEndpoint.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Description = json['Description'];
Url = json['Url'];
Id = json['Id'];
Disabled = json['Disabled'];
EventTypes = JsonConverters.fromJson(json['EventTypes'],'List<String>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Description': Description,
'Url': Url,
'Id': Id,
'Disabled': Disabled,
'EventTypes': JsonConverters.toJson(EventTypes,'List<String>',context!)
};
getTypeName() => "WebhookEndpoint";
TypeContext? context = _ctx;
}
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
// @ValidateRequest(Validator="IsAuthenticated")
class CreateWebhookEndpoint implements ICompany, IConvertible
{
/**
* The company id, if empty will use the company id for the user you are logged in with.
*/
// @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.", IsRequired=true, ParameterType="query")
String? CompanyId;
/**
* The webhook endpoint URL.
*/
// @ApiMember(Description="The webhook endpoint URL.", IsRequired=true)
Uri? Url;
/**
* List of event types. At least one event type is required.
*/
// @ApiMember(Description="List of event types. At least one event type is required.", IsRequired=true)
// @Validate(Validator="NotEmpty", ErrorCode="At least one event type is required.")
List<String>? EventTypes;
String? Description;
// @ApiMember()
bool? Disabled;
CreateWebhookEndpoint({this.CompanyId,this.Url,this.EventTypes,this.Description,this.Disabled});
CreateWebhookEndpoint.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CompanyId = json['CompanyId'];
Url = JsonConverters.fromJson(json['Url'],'Uri',context!);
EventTypes = JsonConverters.fromJson(json['EventTypes'],'List<String>',context!);
Description = json['Description'];
Disabled = json['Disabled'];
return this;
}
Map<String, dynamic> toJson() => {
'CompanyId': CompanyId,
'Url': JsonConverters.toJson(Url,'Uri',context!),
'EventTypes': JsonConverters.toJson(EventTypes,'List<String>',context!),
'Description': Description,
'Disabled': Disabled
};
getTypeName() => "CreateWebhookEndpoint";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: <String, TypeInfo> {
'WebhookEndpoint': TypeInfo(TypeOf.Class, create:() => WebhookEndpoint()),
'CreateWebhookEndpoint': TypeInfo(TypeOf.Class, create:() => CreateWebhookEndpoint()),
'Uri': TypeInfo(TypeOf.Class, create:() => Uri()),
});
Dart CreateWebhookEndpoint DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /webhook/endpoints HTTP/1.1
Host: api.bokamera.se
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"CompanyId":"00000000-0000-0000-0000-000000000000","EventTypes":["String"],"Description":"String","Disabled":false}
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"Description":"String","Url":"String","Id":"String","Disabled":false,"EventTypes":["String"]}