Trendsic Platform Service

<back to all web services

CampaignRequest

Requires Authentication
Requires any of the roles:Agent, Administrator, Agent, Administrator, Agent, Administrator
The following routes are available for this service:
GET,POST,PUT,DELETE,OPTIONS/v1/Campaign/{CampaignId}
GET,POST,PUT,DELETE,OPTIONS/v1/Campaign
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

// @Flags()
class DeliveryChannel
{
    static const DeliveryChannel None = const DeliveryChannel._(0);
    static const DeliveryChannel Email = const DeliveryChannel._(1);
    static const DeliveryChannel Sms = const DeliveryChannel._(2);

    final int _value;
    const DeliveryChannel._(this._value);
    int get value => _value;
    static List<DeliveryChannel> get values => const [None,Email,Sms];
}

class Campaign implements IConvertible
{
    int? CampaignId;
    int? CampaignTypeId;
    String? CampaignName;
    int? AgentID;
    String? Subject;
    String? Template;
    DateTime? DateCreated;
    DateTime? DateDeleted;
    String? Frequency;
    DateTime? StartDate;
    Duration? TimeOfDay;
    DateTime? LastRunAtUtc;
    DateTime? NextRunAtUtc;
    String? TimeZoneId;
    DayOfWeek? DayOfWeek;
    int? DayOfMonth;
    bool? IsActive;
    DateTime? CreatedUtc;
    DateTime? UpdatedUtc;
    DeliveryChannel? Channels;

    Campaign({this.CampaignId,this.CampaignTypeId,this.CampaignName,this.AgentID,this.Subject,this.Template,this.DateCreated,this.DateDeleted,this.Frequency,this.StartDate,this.TimeOfDay,this.LastRunAtUtc,this.NextRunAtUtc,this.TimeZoneId,this.DayOfWeek,this.DayOfMonth,this.IsActive,this.CreatedUtc,this.UpdatedUtc,this.Channels});
    Campaign.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CampaignId = json['CampaignId'];
        CampaignTypeId = json['CampaignTypeId'];
        CampaignName = json['CampaignName'];
        AgentID = json['AgentID'];
        Subject = json['Subject'];
        Template = json['Template'];
        DateCreated = JsonConverters.fromJson(json['DateCreated'],'DateTime',context!);
        DateDeleted = JsonConverters.fromJson(json['DateDeleted'],'DateTime',context!);
        Frequency = json['Frequency'];
        StartDate = JsonConverters.fromJson(json['StartDate'],'DateTime',context!);
        TimeOfDay = JsonConverters.fromJson(json['TimeOfDay'],'Duration',context!);
        LastRunAtUtc = JsonConverters.fromJson(json['LastRunAtUtc'],'DateTime',context!);
        NextRunAtUtc = JsonConverters.fromJson(json['NextRunAtUtc'],'DateTime',context!);
        TimeZoneId = json['TimeZoneId'];
        DayOfWeek = JsonConverters.fromJson(json['DayOfWeek'],'DayOfWeek',context!);
        DayOfMonth = json['DayOfMonth'];
        IsActive = json['IsActive'];
        CreatedUtc = JsonConverters.fromJson(json['CreatedUtc'],'DateTime',context!);
        UpdatedUtc = JsonConverters.fromJson(json['UpdatedUtc'],'DateTime',context!);
        Channels = JsonConverters.fromJson(json['Channels'],'DeliveryChannel',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CampaignId': CampaignId,
        'CampaignTypeId': CampaignTypeId,
        'CampaignName': CampaignName,
        'AgentID': AgentID,
        'Subject': Subject,
        'Template': Template,
        'DateCreated': JsonConverters.toJson(DateCreated,'DateTime',context!),
        'DateDeleted': JsonConverters.toJson(DateDeleted,'DateTime',context!),
        'Frequency': Frequency,
        'StartDate': JsonConverters.toJson(StartDate,'DateTime',context!),
        'TimeOfDay': JsonConverters.toJson(TimeOfDay,'Duration',context!),
        'LastRunAtUtc': JsonConverters.toJson(LastRunAtUtc,'DateTime',context!),
        'NextRunAtUtc': JsonConverters.toJson(NextRunAtUtc,'DateTime',context!),
        'TimeZoneId': TimeZoneId,
        'DayOfWeek': JsonConverters.toJson(DayOfWeek,'DayOfWeek',context!),
        'DayOfMonth': DayOfMonth,
        'IsActive': IsActive,
        'CreatedUtc': JsonConverters.toJson(CreatedUtc,'DateTime',context!),
        'UpdatedUtc': JsonConverters.toJson(UpdatedUtc,'DateTime',context!),
        'Channels': JsonConverters.toJson(Channels,'DeliveryChannel',context!)
    };

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

class CampaignExtended extends Campaign implements IConvertible
{
    String? CampaignType;
    String? AgentName;

    CampaignExtended({this.CampaignType,this.AgentName});
    CampaignExtended.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        CampaignType = json['CampaignType'];
        AgentName = json['AgentName'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'CampaignType': CampaignType,
        'AgentName': AgentName
    });

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

class CampaignResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    List<CampaignExtended>? Campaign = [];

    CampaignResponse({this.ResponseStatus,this.Campaign});
    CampaignResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        Campaign = JsonConverters.fromJson(json['Campaign'],'List<CampaignExtended>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
        'Campaign': JsonConverters.toJson(Campaign,'List<CampaignExtended>',context!)
    };

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

class CampaignRequest implements IConvertible
{
    int? CampaignId;
    List<Campaign>? Campaign = [];

    CampaignRequest({this.CampaignId,this.Campaign});
    CampaignRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CampaignId = json['CampaignId'];
        Campaign = JsonConverters.fromJson(json['Campaign'],'List<Campaign>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CampaignId': CampaignId,
        'Campaign': JsonConverters.toJson(Campaign,'List<Campaign>',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'DeliveryChannel': TypeInfo(TypeOf.Enum, enumValues:DeliveryChannel.values),
    'Campaign': TypeInfo(TypeOf.Class, create:() => Campaign()),
    'DayOfWeek': TypeInfo(TypeOf.Class, create:() => DayOfWeek()),
    'CampaignExtended': TypeInfo(TypeOf.Class, create:() => CampaignExtended()),
    'CampaignResponse': TypeInfo(TypeOf.Class, create:() => CampaignResponse()),
    'List<CampaignExtended>': TypeInfo(TypeOf.Class, create:() => <CampaignExtended>[]),
    'CampaignRequest': TypeInfo(TypeOf.Class, create:() => CampaignRequest()),
    'List<Campaign>': TypeInfo(TypeOf.Class, create:() => <Campaign>[]),
});

Dart CampaignRequest DTOs

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

HTTP + OTHER

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

POST /v1/Campaign/{CampaignId} HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"CampaignId":0,"Campaign":[{"CampaignId":0,"CampaignTypeId":0,"CampaignName":"String","AgentID":0,"Subject":"String","Template":"String","DateCreated":"0001-01-01T00:00:00.0000000","DateDeleted":"0001-01-01T00:00:00.0000000","Frequency":"String","StartDate":"0001-01-01T00:00:00.0000000","TimeOfDay":"PT0S","LastRunAtUtc":"0001-01-01T00:00:00.0000000","NextRunAtUtc":"0001-01-01T00:00:00.0000000","TimeZoneId":"String","DayOfWeek":"Sunday","DayOfMonth":0,"IsActive":false,"CreatedUtc":"0001-01-01T00:00:00.0000000","UpdatedUtc":"0001-01-01T00:00:00.0000000","Channels":0}]}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"Campaign":[{"CampaignType":"String","AgentName":"String","CampaignId":0,"CampaignTypeId":0,"CampaignName":"String","AgentID":0,"Subject":"String","Template":"String","DateCreated":"0001-01-01T00:00:00.0000000","DateDeleted":"0001-01-01T00:00:00.0000000","Frequency":"String","StartDate":"0001-01-01T00:00:00.0000000","TimeOfDay":"PT0S","LastRunAtUtc":"0001-01-01T00:00:00.0000000","NextRunAtUtc":"0001-01-01T00:00:00.0000000","TimeZoneId":"String","DayOfWeek":"Sunday","DayOfMonth":0,"IsActive":false,"CreatedUtc":"0001-01-01T00:00:00.0000000","UpdatedUtc":"0001-01-01T00:00:00.0000000","Channels":0}]}