ClubManager.Api

<back to all web services

ZapierBookingRequest

The following routes are available for this service:
POST/zapier/v1/booking
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class ZapierBookingResponse implements IConvertible
{
    int? MemberId;
    String? MemberKey;
    bool? MemberCreated;
    int? BookingId;
    bool? BookingCreated;
    int? BookingAttendeeId;
    String? Name;
    DateTime? StartDate;
    DateTime? EndDate;
    int? StaffId;
    String? StaffName;
    bool? InstructorMatched;

    ZapierBookingResponse({this.MemberId,this.MemberKey,this.MemberCreated,this.BookingId,this.BookingCreated,this.BookingAttendeeId,this.Name,this.StartDate,this.EndDate,this.StaffId,this.StaffName,this.InstructorMatched});
    ZapierBookingResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        MemberId = json['MemberId'];
        MemberKey = json['MemberKey'];
        MemberCreated = json['MemberCreated'];
        BookingId = json['BookingId'];
        BookingCreated = json['BookingCreated'];
        BookingAttendeeId = json['BookingAttendeeId'];
        Name = json['Name'];
        StartDate = JsonConverters.fromJson(json['StartDate'],'DateTime',context!);
        EndDate = JsonConverters.fromJson(json['EndDate'],'DateTime',context!);
        StaffId = json['StaffId'];
        StaffName = json['StaffName'];
        InstructorMatched = json['InstructorMatched'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'MemberId': MemberId,
        'MemberKey': MemberKey,
        'MemberCreated': MemberCreated,
        'BookingId': BookingId,
        'BookingCreated': BookingCreated,
        'BookingAttendeeId': BookingAttendeeId,
        'Name': Name,
        'StartDate': JsonConverters.toJson(StartDate,'DateTime',context!),
        'EndDate': JsonConverters.toJson(EndDate,'DateTime',context!),
        'StaffId': StaffId,
        'StaffName': StaffName,
        'InstructorMatched': InstructorMatched
    };

    getTypeName() => "ZapierBookingResponse";
    TypeContext? context = _ctx;
}

class ZapierBookingRequest implements IConvertible
{
    String? Title;
    String? Forenames;
    String? Surname;
    String? EmailAddress;
    String? MobilePhone;
    String? HomePhone;
    DateTime? DateOfBirth;
    List<String>? Tags;
    bool? OptInEmail;
    bool? OptInSms;
    int? BookingTemplateId;
    String? Name;
    String? StartDate;
    int? Duration;
    String? EndDate;
    int? StaffId;
    String? StaffName;
    int? FacilityId;
    int? MaxAttendees;
    String? Notes;
    bool? AddToExisting;

    ZapierBookingRequest({this.Title,this.Forenames,this.Surname,this.EmailAddress,this.MobilePhone,this.HomePhone,this.DateOfBirth,this.Tags,this.OptInEmail,this.OptInSms,this.BookingTemplateId,this.Name,this.StartDate,this.Duration,this.EndDate,this.StaffId,this.StaffName,this.FacilityId,this.MaxAttendees,this.Notes,this.AddToExisting});
    ZapierBookingRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Title = json['Title'];
        Forenames = json['Forenames'];
        Surname = json['Surname'];
        EmailAddress = json['EmailAddress'];
        MobilePhone = json['MobilePhone'];
        HomePhone = json['HomePhone'];
        DateOfBirth = JsonConverters.fromJson(json['DateOfBirth'],'DateTime',context!);
        Tags = JsonConverters.fromJson(json['Tags'],'List<String>',context!);
        OptInEmail = json['OptInEmail'];
        OptInSms = json['OptInSms'];
        BookingTemplateId = json['BookingTemplateId'];
        Name = json['Name'];
        StartDate = json['StartDate'];
        Duration = json['Duration'];
        EndDate = json['EndDate'];
        StaffId = json['StaffId'];
        StaffName = json['StaffName'];
        FacilityId = json['FacilityId'];
        MaxAttendees = json['MaxAttendees'];
        Notes = json['Notes'];
        AddToExisting = json['AddToExisting'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Title': Title,
        'Forenames': Forenames,
        'Surname': Surname,
        'EmailAddress': EmailAddress,
        'MobilePhone': MobilePhone,
        'HomePhone': HomePhone,
        'DateOfBirth': JsonConverters.toJson(DateOfBirth,'DateTime',context!),
        'Tags': JsonConverters.toJson(Tags,'List<String>',context!),
        'OptInEmail': OptInEmail,
        'OptInSms': OptInSms,
        'BookingTemplateId': BookingTemplateId,
        'Name': Name,
        'StartDate': StartDate,
        'Duration': Duration,
        'EndDate': EndDate,
        'StaffId': StaffId,
        'StaffName': StaffName,
        'FacilityId': FacilityId,
        'MaxAttendees': MaxAttendees,
        'Notes': Notes,
        'AddToExisting': AddToExisting
    };

    getTypeName() => "ZapierBookingRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.clubmanagercentral.com', types: <String, TypeInfo> {
    'ZapierBookingResponse': TypeInfo(TypeOf.Class, create:() => ZapierBookingResponse()),
    'ZapierBookingRequest': TypeInfo(TypeOf.Class, create:() => ZapierBookingRequest()),
});

Dart ZapierBookingRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /zapier/v1/booking HTTP/1.1 
Host: api.clubmanagercentral.com 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"Title":"String","Forenames":"String","Surname":"String","EmailAddress":"String","MobilePhone":"String","HomePhone":"String","DateOfBirth":"0001-01-01T00:00:00.0000000","Tags":["String"],"OptInEmail":false,"OptInSms":false,"BookingTemplateId":0,"Name":"String","StartDate":"String","Duration":0,"EndDate":"String","StaffId":0,"StaffName":"String","FacilityId":0,"MaxAttendees":0,"Notes":"String","AddToExisting":false}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"MemberId":0,"MemberKey":"00000000000000000000000000000000","MemberCreated":false,"BookingId":0,"BookingCreated":false,"BookingAttendeeId":0,"Name":"String","StartDate":"0001-01-01T00:00:00.0000000","EndDate":"0001-01-01T00:00:00.0000000","StaffId":0,"StaffName":"String","InstructorMatched":false}