TicketUserServices

<back to all web services

SurveyCampaignCreateRequest

Requires Authentication
Required role:Admin
The following routes are available for this service:
POST/SurveyCampaign
import 'package:servicestack/servicestack.dart';

class SurveyCampaign implements IConvertible
{
    int? id;
    // @StringLength(200)
    String? name;

    // @StringLength(16)
    String? status;

    // @StringLength(300)
    String? subject;

    // @StringLength(2147483647)
    String? bodyHtml;

    // @StringLength(300)
    String? reminderSubject;

    // @StringLength(2147483647)
    String? reminderBodyHtml;

    // @StringLength(320)
    String? fromEmail;

    // @StringLength(200)
    String? fromName;

    // @StringLength(8)
    String? language;

    int? reminderAfterDays;
    int? maxReminders;
    DateTime? createdAt;
    DateTime? sentAt;
    DateTime? closedAt;

    SurveyCampaign({this.id,this.name,this.status,this.subject,this.bodyHtml,this.reminderSubject,this.reminderBodyHtml,this.fromEmail,this.fromName,this.language,this.reminderAfterDays,this.maxReminders,this.createdAt,this.sentAt,this.closedAt});
    SurveyCampaign.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        name = json['name'];
        status = json['status'];
        subject = json['subject'];
        bodyHtml = json['bodyHtml'];
        reminderSubject = json['reminderSubject'];
        reminderBodyHtml = json['reminderBodyHtml'];
        fromEmail = json['fromEmail'];
        fromName = json['fromName'];
        language = json['language'];
        reminderAfterDays = json['reminderAfterDays'];
        maxReminders = json['maxReminders'];
        createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!);
        sentAt = JsonConverters.fromJson(json['sentAt'],'DateTime',context!);
        closedAt = JsonConverters.fromJson(json['closedAt'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'name': name,
        'status': status,
        'subject': subject,
        'bodyHtml': bodyHtml,
        'reminderSubject': reminderSubject,
        'reminderBodyHtml': reminderBodyHtml,
        'fromEmail': fromEmail,
        'fromName': fromName,
        'language': language,
        'reminderAfterDays': reminderAfterDays,
        'maxReminders': maxReminders,
        'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!),
        'sentAt': JsonConverters.toJson(sentAt,'DateTime',context!),
        'closedAt': JsonConverters.toJson(closedAt,'DateTime',context!)
    };

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

class SurveyCampaignStats implements IConvertible
{
    int? recipients;
    int? pending;
    int? queued;
    int? sent;
    int? bounced;
    int? rejected;
    int? opened;
    int? clicked;
    int? responded;
    int? remindersSent;
    int? dueForReminder;

    SurveyCampaignStats({this.recipients,this.pending,this.queued,this.sent,this.bounced,this.rejected,this.opened,this.clicked,this.responded,this.remindersSent,this.dueForReminder});
    SurveyCampaignStats.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        recipients = json['recipients'];
        pending = json['pending'];
        queued = json['queued'];
        sent = json['sent'];
        bounced = json['bounced'];
        rejected = json['rejected'];
        opened = json['opened'];
        clicked = json['clicked'];
        responded = json['responded'];
        remindersSent = json['remindersSent'];
        dueForReminder = json['dueForReminder'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'recipients': recipients,
        'pending': pending,
        'queued': queued,
        'sent': sent,
        'bounced': bounced,
        'rejected': rejected,
        'opened': opened,
        'clicked': clicked,
        'responded': responded,
        'remindersSent': remindersSent,
        'dueForReminder': dueForReminder
    };

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

class SurveyCampaignResult implements IConvertible
{
    SurveyCampaign? item;
    SurveyCampaignStats? stats;
    int? statusCode;
    String? message;

    SurveyCampaignResult({this.item,this.stats,this.statusCode,this.message});
    SurveyCampaignResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        item = JsonConverters.fromJson(json['item'],'SurveyCampaign',context!);
        stats = JsonConverters.fromJson(json['stats'],'SurveyCampaignStats',context!);
        statusCode = json['statusCode'];
        message = json['message'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'item': JsonConverters.toJson(item,'SurveyCampaign',context!),
        'stats': JsonConverters.toJson(stats,'SurveyCampaignStats',context!),
        'statusCode': statusCode,
        'message': message
    };

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

class SurveyCampaignCreateRequest implements IConvertible
{
    SurveyCampaign? item;

    SurveyCampaignCreateRequest({this.item});
    SurveyCampaignCreateRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'item': JsonConverters.toJson(item,'SurveyCampaign',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
    'SurveyCampaign': TypeInfo(TypeOf.Class, create:() => SurveyCampaign()),
    'SurveyCampaignStats': TypeInfo(TypeOf.Class, create:() => SurveyCampaignStats()),
    'SurveyCampaignResult': TypeInfo(TypeOf.Class, create:() => SurveyCampaignResult()),
    'SurveyCampaignCreateRequest': TypeInfo(TypeOf.Class, create:() => SurveyCampaignCreateRequest()),
});

Dart SurveyCampaignCreateRequest 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 /SurveyCampaign HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"item":{"id":0,"name":"String","status":"String","subject":"String","bodyHtml":"String","reminderSubject":"String","reminderBodyHtml":"String","fromEmail":"String","fromName":"String","language":"String","reminderAfterDays":0,"maxReminders":0,"createdAt":"0001-01-01T00:00:00.0000000","sentAt":"0001-01-01T00:00:00.0000000","closedAt":"0001-01-01T00:00:00.0000000"}}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"item":{"id":0,"name":"String","status":"String","subject":"String","bodyHtml":"String","reminderSubject":"String","reminderBodyHtml":"String","fromEmail":"String","fromName":"String","language":"String","reminderAfterDays":0,"maxReminders":0,"createdAt":"0001-01-01T00:00:00.0000000","sentAt":"0001-01-01T00:00:00.0000000","closedAt":"0001-01-01T00:00:00.0000000"},"stats":{"recipients":0,"pending":0,"queued":0,"sent":0,"bounced":0,"rejected":0,"opened":0,"clicked":0,"responded":0,"remindersSent":0,"dueForReminder":0},"statusCode":0,"message":"String"}