TicketUserServices

<back to all web services

CampaignConversionRunRequest

The following routes are available for this service:
POST/CampaignConversions/Run
import 'package:servicestack/servicestack.dart';

class CampaignConversionSurfaceCount implements IConvertible
{
    String? key;
    int? people;
    int? count;
    double? amount;

    CampaignConversionSurfaceCount({this.key,this.people,this.count,this.amount});
    CampaignConversionSurfaceCount.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        key = json['key'];
        people = json['people'];
        count = json['count'];
        amount = JsonConverters.toDouble(json['amount']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'key': key,
        'people': people,
        'count': count,
        'amount': amount
    };

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

class CampaignConversionResult implements IConvertible
{
    String? runId;
    int? peopleMeasured;
    int? peopleConverted;
    double? totalAmount;
    List<CampaignConversionSurfaceCount>? bySurface;
    List<CampaignConversionSurfaceCount>? byChannel;
    int? headlineConversions;
    double? headlineAmount;
    int? medianHoursToConvert;
    List<String>? notes;
    int? statusCode;
    String? message;

    CampaignConversionResult({this.runId,this.peopleMeasured,this.peopleConverted,this.totalAmount,this.bySurface,this.byChannel,this.headlineConversions,this.headlineAmount,this.medianHoursToConvert,this.notes,this.statusCode,this.message});
    CampaignConversionResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        runId = json['runId'];
        peopleMeasured = json['peopleMeasured'];
        peopleConverted = json['peopleConverted'];
        totalAmount = JsonConverters.toDouble(json['totalAmount']);
        bySurface = JsonConverters.fromJson(json['bySurface'],'List<CampaignConversionSurfaceCount>',context!);
        byChannel = JsonConverters.fromJson(json['byChannel'],'List<CampaignConversionSurfaceCount>',context!);
        headlineConversions = json['headlineConversions'];
        headlineAmount = JsonConverters.toDouble(json['headlineAmount']);
        medianHoursToConvert = json['medianHoursToConvert'];
        notes = JsonConverters.fromJson(json['notes'],'List<String>',context!);
        statusCode = json['statusCode'];
        message = json['message'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'runId': runId,
        'peopleMeasured': peopleMeasured,
        'peopleConverted': peopleConverted,
        'totalAmount': totalAmount,
        'bySurface': JsonConverters.toJson(bySurface,'List<CampaignConversionSurfaceCount>',context!),
        'byChannel': JsonConverters.toJson(byChannel,'List<CampaignConversionSurfaceCount>',context!),
        'headlineConversions': headlineConversions,
        'headlineAmount': headlineAmount,
        'medianHoursToConvert': medianHoursToConvert,
        'notes': JsonConverters.toJson(notes,'List<String>',context!),
        'statusCode': statusCode,
        'message': message
    };

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

class CampaignConversionPerson implements IConvertible
{
    String? phone;
    String? email;
    int? recipientId;
    String? channel;
    DateTime? sentAt;

    CampaignConversionPerson({this.phone,this.email,this.recipientId,this.channel,this.sentAt});
    CampaignConversionPerson.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        phone = json['phone'];
        email = json['email'];
        recipientId = json['recipientId'];
        channel = json['channel'];
        sentAt = JsonConverters.fromJson(json['sentAt'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'phone': phone,
        'email': email,
        'recipientId': recipientId,
        'channel': channel,
        'sentAt': JsonConverters.toJson(sentAt,'DateTime',context!)
    };

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

class CampaignConversionRunRequest implements IConvertible
{
    int? campaignId;
    List<CampaignConversionPerson>? people;
    int? windowHours;
    int? targetEventId;
    bool? includeFood;

    CampaignConversionRunRequest({this.campaignId,this.people,this.windowHours,this.targetEventId,this.includeFood});
    CampaignConversionRunRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        campaignId = json['campaignId'];
        people = JsonConverters.fromJson(json['people'],'List<CampaignConversionPerson>',context!);
        windowHours = json['windowHours'];
        targetEventId = json['targetEventId'];
        includeFood = json['includeFood'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'campaignId': campaignId,
        'people': JsonConverters.toJson(people,'List<CampaignConversionPerson>',context!),
        'windowHours': windowHours,
        'targetEventId': targetEventId,
        'includeFood': includeFood
    };

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

TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
    'CampaignConversionSurfaceCount': TypeInfo(TypeOf.Class, create:() => CampaignConversionSurfaceCount()),
    'CampaignConversionResult': TypeInfo(TypeOf.Class, create:() => CampaignConversionResult()),
    'List<CampaignConversionSurfaceCount>': TypeInfo(TypeOf.Class, create:() => <CampaignConversionSurfaceCount>[]),
    'CampaignConversionPerson': TypeInfo(TypeOf.Class, create:() => CampaignConversionPerson()),
    'CampaignConversionRunRequest': TypeInfo(TypeOf.Class, create:() => CampaignConversionRunRequest()),
    'List<CampaignConversionPerson>': TypeInfo(TypeOf.Class, create:() => <CampaignConversionPerson>[]),
});

Dart CampaignConversionRunRequest DTOs

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

HTTP + XML

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

POST /CampaignConversions/Run HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<CampaignConversionRunRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
  <CampaignId>0</CampaignId>
  <IncludeFood>false</IncludeFood>
  <People>
    <CampaignConversionPerson>
      <Channel>String</Channel>
      <Email>String</Email>
      <Phone>String</Phone>
      <RecipientId>0</RecipientId>
      <SentAt>0001-01-01T00:00:00</SentAt>
    </CampaignConversionPerson>
  </People>
  <TargetEventId>0</TargetEventId>
  <WindowHours>0</WindowHours>
</CampaignConversionRunRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<CampaignConversionResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
  <ByChannel>
    <CampaignConversionSurfaceCount>
      <Amount>0</Amount>
      <Count>0</Count>
      <Key>String</Key>
      <People>0</People>
    </CampaignConversionSurfaceCount>
  </ByChannel>
  <BySurface>
    <CampaignConversionSurfaceCount>
      <Amount>0</Amount>
      <Count>0</Count>
      <Key>String</Key>
      <People>0</People>
    </CampaignConversionSurfaceCount>
  </BySurface>
  <HeadlineAmount>0</HeadlineAmount>
  <HeadlineConversions>0</HeadlineConversions>
  <MedianHoursToConvert>0</MedianHoursToConvert>
  <Message>String</Message>
  <Notes xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:string>String</d2p1:string>
  </Notes>
  <PeopleConverted>0</PeopleConverted>
  <PeopleMeasured>0</PeopleMeasured>
  <RunId>String</RunId>
  <StatusCode>0</StatusCode>
  <TotalAmount>0</TotalAmount>
</CampaignConversionResult>