Billhighway Cloud API

<back to all web services

GetCampaign

The following routes are available for this service:
GET/v1.1/campaigns/get/{campaignId*}
GET/v1.2/campaigns/get/{campaignId*}
import 'package:servicestack/servicestack.dart';

class CampaignThemeImage implements IConvertible
{
    String? BackgroundImage;
    String? Icon;

    CampaignThemeImage({this.BackgroundImage,this.Icon});
    CampaignThemeImage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        BackgroundImage = json['BackgroundImage'];
        Icon = json['Icon'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'BackgroundImage': BackgroundImage,
        'Icon': Icon
    };

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

class CampaignTheme implements IConvertible
{
    int? Id;
    String? Name;
    String? MainColor;
    String? SecondaryColor;
    CampaignThemeImage? iPhone;
    CampaignThemeImage? iPhoneRetina;

    CampaignTheme({this.Id,this.Name,this.MainColor,this.SecondaryColor,this.iPhone,this.iPhoneRetina});
    CampaignTheme.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Name = json['Name'];
        MainColor = json['MainColor'];
        SecondaryColor = json['SecondaryColor'];
        iPhone = JsonConverters.fromJson(json['iPhone'],'CampaignThemeImage',context!);
        iPhoneRetina = JsonConverters.fromJson(json['iPhoneRetina'],'CampaignThemeImage',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Name': Name,
        'MainColor': MainColor,
        'SecondaryColor': SecondaryColor,
        'iPhone': JsonConverters.toJson(iPhone,'CampaignThemeImage',context!),
        'iPhoneRetina': JsonConverters.toJson(iPhoneRetina,'CampaignThemeImage',context!)
    };

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

class CampaignGoal implements IConvertible
{
    double? Target;
    double? Actual;

    CampaignGoal({this.Target,this.Actual});
    CampaignGoal.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Target = JsonConverters.toDouble(json['Target']);
        Actual = JsonConverters.toDouble(json['Actual']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Target': Target,
        'Actual': Actual
    };

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

class Signup implements IConvertible
{
    bool? ShowOnNewMembership;
    bool? ShowOnSignupRenewal;
    bool? ShowOtherAmount;

    Signup({this.ShowOnNewMembership,this.ShowOnSignupRenewal,this.ShowOtherAmount});
    Signup.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ShowOnNewMembership = json['ShowOnNewMembership'];
        ShowOnSignupRenewal = json['ShowOnSignupRenewal'];
        ShowOtherAmount = json['ShowOtherAmount'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ShowOnNewMembership': ShowOnNewMembership,
        'ShowOnSignupRenewal': ShowOnSignupRenewal,
        'ShowOtherAmount': ShowOtherAmount
    };

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

class CampaignItem implements IConvertible
{
    int? Id;
    String? Name;
    String? SubTitle;
    String? Description;
    bool? HasGoal;
    String? DetailUri;
    CampaignTheme? Theme;
    CampaignGoal? Goal;
    List<CampaignLevel>? Levels;
    String? LogoUrl;
    String? HighResolutionLogoUrl;
    Signup? Signup;

    CampaignItem({this.Id,this.Name,this.SubTitle,this.Description,this.HasGoal,this.DetailUri,this.Theme,this.Goal,this.Levels,this.LogoUrl,this.HighResolutionLogoUrl,this.Signup});
    CampaignItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Name = json['Name'];
        SubTitle = json['SubTitle'];
        Description = json['Description'];
        HasGoal = json['HasGoal'];
        DetailUri = json['DetailUri'];
        Theme = JsonConverters.fromJson(json['Theme'],'CampaignTheme',context!);
        Goal = JsonConverters.fromJson(json['Goal'],'CampaignGoal',context!);
        Levels = JsonConverters.fromJson(json['Levels'],'List<CampaignLevel>',context!);
        LogoUrl = json['LogoUrl'];
        HighResolutionLogoUrl = json['HighResolutionLogoUrl'];
        Signup = JsonConverters.fromJson(json['Signup'],'Signup',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Name': Name,
        'SubTitle': SubTitle,
        'Description': Description,
        'HasGoal': HasGoal,
        'DetailUri': DetailUri,
        'Theme': JsonConverters.toJson(Theme,'CampaignTheme',context!),
        'Goal': JsonConverters.toJson(Goal,'CampaignGoal',context!),
        'Levels': JsonConverters.toJson(Levels,'List<CampaignLevel>',context!),
        'LogoUrl': LogoUrl,
        'HighResolutionLogoUrl': HighResolutionLogoUrl,
        'Signup': JsonConverters.toJson(Signup,'Signup',context!)
    };

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

class GetCampaign extends GetCampaign implements IReturnLegacyException, IConvertible
{
    GetCampaign();
    GetCampaign.fromJson(Map<String, dynamic> json) : super.fromJson(json);
    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson();
    getTypeName() => "GetCampaign";
    TypeContext? context = _ctx;
}

class CampaignLevel implements IConvertible
{
    int? Sequence;
    double? Amount;
    String? Description;

    CampaignLevel({this.Sequence,this.Amount,this.Description});
    CampaignLevel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Sequence = json['Sequence'];
        Amount = JsonConverters.toDouble(json['Amount']);
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Sequence': Sequence,
        'Amount': Amount,
        'Description': Description
    };

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

TypeContext _ctx = TypeContext(library: 'devapi.billhighway.com', types: <String, TypeInfo> {
    'CampaignThemeImage': TypeInfo(TypeOf.Class, create:() => CampaignThemeImage()),
    'CampaignTheme': TypeInfo(TypeOf.Class, create:() => CampaignTheme()),
    'CampaignGoal': TypeInfo(TypeOf.Class, create:() => CampaignGoal()),
    'Signup': TypeInfo(TypeOf.Class, create:() => Signup()),
    'CampaignItem': TypeInfo(TypeOf.Class, create:() => CampaignItem()),
    'List<CampaignLevel>': TypeInfo(TypeOf.Class, create:() => <CampaignLevel>[]),
    'CampaignLevel': TypeInfo(TypeOf.Class, create:() => CampaignLevel()),
    'GetCampaign': TypeInfo(TypeOf.Class, create:() => GetCampaign()),
});

Dart GetCampaign 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.

GET /v1.1/campaigns/get/{campaignId*} HTTP/1.1 
Host: devapi.billhighway.com 
Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Id":0,"Name":"String","SubTitle":"String","Description":"String","HasGoal":false,"DetailUri":"/api/campaigns/get/0","Theme":{"Id":0,"Name":"String","MainColor":"String","SecondaryColor":"String","iPhone":{"BackgroundImage":"String","Icon":"String"},"iPhoneRetina":{"BackgroundImage":"String","Icon":"String"}},"Goal":{"Target":0,"Actual":0},"Levels":[{"Sequence":0,"Amount":0,"Description":"String"}],"LogoUrl":"String","HighResolutionLogoUrl":"String","Signup":{"ShowOnNewMembership":false,"ShowOnSignupRenewal":false,"ShowOtherAmount":false}}