ShortlinksAPI

<back to all web services

GetShortLinksMetadataRequest

Requires Authentication
The following routes are available for this service:
GET/v4/links/metadata/list
import 'package:servicestack/servicestack.dart';

// @DataContract
class ShortUrlAlias implements IShortUrlAlias, IConvertible
{
    // @DataMember
    String? code;

    // @DataMember
    String? domain;

    // @DataMember
    String? baseCode;

    // @DataMember
    DateTime? lastUpdatedUtc;

    ShortUrlAlias({this.code,this.domain,this.baseCode,this.lastUpdatedUtc});
    ShortUrlAlias.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        code = json['code'];
        domain = json['domain'];
        baseCode = json['baseCode'];
        lastUpdatedUtc = JsonConverters.fromJson(json['lastUpdatedUtc'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'code': code,
        'domain': domain,
        'baseCode': baseCode,
        'lastUpdatedUtc': JsonConverters.toJson(lastUpdatedUtc,'DateTime',context!)
    };

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

enum LinkCreatorOption
{
    NotSet,
    Simple,
    Split,
    Advanced,
    Interstitial,
    Other,
}

// @DataContract
class UserShortLink implements IUserShortLink, IConvertible
{
    // @DataMember
    int? id;

    // @DataMember
    String? destinationUrl;

    // @DataMember
    String? shortUrlCode;

    // @DataMember
    String? domain;

    // @DataMember
    String? linkType;

    // @DataMember
    bool? hasOverride;

    // @DataMember
    String? productUrl;

    // @DataMember
    String? trackingCode;

    // @DataMember
    bool? skipAffiliateRedirect;

    // @DataMember
    DateTime? createdUtc;

    // @DataMember
    DateTime? updatedUtc;

    // @DataMember
    String? notes;

    // @DataMember
    DateTime? createdUserTime;

    // @DataMember
    DateTime? updatedUserTime;

    // @DataMember
    int? tsid;

    // @DataMember
    String? group;

    // @DataMember
    String? username;

    // @DataMember
    String? jsonMetadata;

    // @DataMember
    String? jsonItemMetadata;

    // @DataMember
    String? jsonPostProcessingRules;

    // @DataMember
    String? jsonOverrides;

    // @DataMember
    double? totalClicks;

    // @DataMember
    String? advertiser;

    // @DataMember
    int? advertiserId;

    // @DataMember
    double? percentChangePeriodOverPeriod;

    // @DataMember
    double? previousPeriodTotalClicks;

    // @DataMember
    int? isArchived;

    // @DataMember
    int? isArchivedInt;

    // @DataMember
    bool? fetchMetadata;

    // @DataMember
    String? productDisplayName1;

    // @DataMember
    String? productDisplayName2;

    // @DataMember
    String? productDisplayName3;

    // @DataMember
    String? productArtworkThumbnailUrl;

    // @DataMember
    String? productArtworkThumbnailUrl100;

    // @DataMember
    String? advertiserIcon;

    // @DataMember
    String? advertiserIconCssClass;

    // @DataMember
    bool? isGenius;

    // @DataMember
    String? advertiserIconTitle;

    // @DataMember
    String? trackingPixelIds;

    // @DataMember
    int? applePreference;

    // @DataMember
    List<ShortUrlAlias>? aliases;

    // @DataMember
    LinkCreatorOption? linkCreatorSetting;

    UserShortLink({this.id,this.destinationUrl,this.shortUrlCode,this.domain,this.linkType,this.hasOverride,this.productUrl,this.trackingCode,this.skipAffiliateRedirect,this.createdUtc,this.updatedUtc,this.notes,this.createdUserTime,this.updatedUserTime,this.tsid,this.group,this.username,this.jsonMetadata,this.jsonItemMetadata,this.jsonPostProcessingRules,this.jsonOverrides,this.totalClicks,this.advertiser,this.advertiserId,this.percentChangePeriodOverPeriod,this.previousPeriodTotalClicks,this.isArchived,this.isArchivedInt,this.fetchMetadata,this.productDisplayName1,this.productDisplayName2,this.productDisplayName3,this.productArtworkThumbnailUrl,this.productArtworkThumbnailUrl100,this.advertiserIcon,this.advertiserIconCssClass,this.isGenius,this.advertiserIconTitle,this.trackingPixelIds,this.applePreference,this.aliases,this.linkCreatorSetting});
    UserShortLink.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        destinationUrl = json['destinationUrl'];
        shortUrlCode = json['shortUrlCode'];
        domain = json['domain'];
        linkType = json['linkType'];
        hasOverride = json['hasOverride'];
        productUrl = json['productUrl'];
        trackingCode = json['trackingCode'];
        skipAffiliateRedirect = json['skipAffiliateRedirect'];
        createdUtc = JsonConverters.fromJson(json['createdUtc'],'DateTime',context!);
        updatedUtc = JsonConverters.fromJson(json['updatedUtc'],'DateTime',context!);
        notes = json['notes'];
        createdUserTime = JsonConverters.fromJson(json['createdUserTime'],'DateTime',context!);
        updatedUserTime = JsonConverters.fromJson(json['updatedUserTime'],'DateTime',context!);
        tsid = json['tsid'];
        group = json['group'];
        username = json['username'];
        jsonMetadata = json['jsonMetadata'];
        jsonItemMetadata = json['jsonItemMetadata'];
        jsonPostProcessingRules = json['jsonPostProcessingRules'];
        jsonOverrides = json['jsonOverrides'];
        totalClicks = JsonConverters.toDouble(json['totalClicks']);
        advertiser = json['advertiser'];
        advertiserId = json['advertiserId'];
        percentChangePeriodOverPeriod = JsonConverters.toDouble(json['percentChangePeriodOverPeriod']);
        previousPeriodTotalClicks = JsonConverters.toDouble(json['previousPeriodTotalClicks']);
        isArchived = json['isArchived'];
        isArchivedInt = json['isArchivedInt'];
        fetchMetadata = json['fetchMetadata'];
        productDisplayName1 = json['productDisplayName1'];
        productDisplayName2 = json['productDisplayName2'];
        productDisplayName3 = json['productDisplayName3'];
        productArtworkThumbnailUrl = json['productArtworkThumbnailUrl'];
        productArtworkThumbnailUrl100 = json['productArtworkThumbnailUrl100'];
        advertiserIcon = json['advertiserIcon'];
        advertiserIconCssClass = json['advertiserIconCssClass'];
        isGenius = json['isGenius'];
        advertiserIconTitle = json['advertiserIconTitle'];
        trackingPixelIds = json['trackingPixelIds'];
        applePreference = json['applePreference'];
        aliases = JsonConverters.fromJson(json['aliases'],'List<ShortUrlAlias>',context!);
        linkCreatorSetting = JsonConverters.fromJson(json['linkCreatorSetting'],'LinkCreatorOption',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'destinationUrl': destinationUrl,
        'shortUrlCode': shortUrlCode,
        'domain': domain,
        'linkType': linkType,
        'hasOverride': hasOverride,
        'productUrl': productUrl,
        'trackingCode': trackingCode,
        'skipAffiliateRedirect': skipAffiliateRedirect,
        'createdUtc': JsonConverters.toJson(createdUtc,'DateTime',context!),
        'updatedUtc': JsonConverters.toJson(updatedUtc,'DateTime',context!),
        'notes': notes,
        'createdUserTime': JsonConverters.toJson(createdUserTime,'DateTime',context!),
        'updatedUserTime': JsonConverters.toJson(updatedUserTime,'DateTime',context!),
        'tsid': tsid,
        'group': group,
        'username': username,
        'jsonMetadata': jsonMetadata,
        'jsonItemMetadata': jsonItemMetadata,
        'jsonPostProcessingRules': jsonPostProcessingRules,
        'jsonOverrides': jsonOverrides,
        'totalClicks': totalClicks,
        'advertiser': advertiser,
        'advertiserId': advertiserId,
        'percentChangePeriodOverPeriod': percentChangePeriodOverPeriod,
        'previousPeriodTotalClicks': previousPeriodTotalClicks,
        'isArchived': isArchived,
        'isArchivedInt': isArchivedInt,
        'fetchMetadata': fetchMetadata,
        'productDisplayName1': productDisplayName1,
        'productDisplayName2': productDisplayName2,
        'productDisplayName3': productDisplayName3,
        'productArtworkThumbnailUrl': productArtworkThumbnailUrl,
        'productArtworkThumbnailUrl100': productArtworkThumbnailUrl100,
        'advertiserIcon': advertiserIcon,
        'advertiserIconCssClass': advertiserIconCssClass,
        'isGenius': isGenius,
        'advertiserIconTitle': advertiserIconTitle,
        'trackingPixelIds': trackingPixelIds,
        'applePreference': applePreference,
        'aliases': JsonConverters.toJson(aliases,'List<ShortUrlAlias>',context!),
        'linkCreatorSetting': JsonConverters.toJson(linkCreatorSetting,'LinkCreatorOption',context!)
    };

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

// @DataContract
class GetShortLinksMetadataResponse implements IGetShortLinksMetadataResponse, IConvertible
{
    // @DataMember(Name="responseStatus")
    ResponseStatus? responseStatus;

    // @DataMember(Name="data")
    List<UserShortLink>? data;

    GetShortLinksMetadataResponse({this.responseStatus,this.data});
    GetShortLinksMetadataResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

// @DataContract
class GetShortLinksMetadataRequest implements IGetShortLinksMetadataRequest, IConvertible
{
    // @DataMember(Name="ids")
    List<String>? ids;

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

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

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

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

TypeContext _ctx = TypeContext(library: 'shortlinks_api.qa.platform.georiot.com', types: <String, TypeInfo> {
    'ShortUrlAlias': TypeInfo(TypeOf.Class, create:() => ShortUrlAlias()),
    'LinkCreatorOption': TypeInfo(TypeOf.Enum, enumValues:LinkCreatorOption.values),
    'UserShortLink': TypeInfo(TypeOf.Class, create:() => UserShortLink()),
    'List<ShortUrlAlias>': TypeInfo(TypeOf.Class, create:() => <ShortUrlAlias>[]),
    'GetShortLinksMetadataResponse': TypeInfo(TypeOf.Class, create:() => GetShortLinksMetadataResponse()),
    'List<UserShortLink>': TypeInfo(TypeOf.Class, create:() => <UserShortLink>[]),
    'GetShortLinksMetadataRequest': TypeInfo(TypeOf.Class, create:() => GetShortLinksMetadataRequest()),
});

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

GET /v4/links/metadata/list HTTP/1.1 
Host: shortlinks-api.qa.platform.georiot.com 
Accept: text/jsonl
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"}},"data":[{"id":0,"destinationUrl":"String","shortUrlCode":"String","domain":"String","linkType":"NotSet","hasOverride":false,"productUrl":"String","trackingCode":"String","skipAffiliateRedirect":false,"createdUtc":"0001-01-01T00:00:00.0000000","updatedUtc":"0001-01-01T00:00:00.0000000","notes":"String","createdUserTime":"0001-01-01T00:00:00.0000000","updatedUserTime":"0001-01-01T00:00:00.0000000","tsid":0,"group":"String","username":"String","jsonMetadata":"String","jsonItemMetadata":"String","jsonPostProcessingRules":"String","jsonOverrides":"String","totalClicks":0,"advertiser":"String","advertiserId":0,"percentChangePeriodOverPeriod":0,"previousPeriodTotalClicks":0,"isArchived":0,"isArchivedInt":0,"fetchMetadata":false,"productDisplayName1":"String","productDisplayName2":"String","productDisplayName3":"String","productArtworkThumbnailUrl":"String","productArtworkThumbnailUrl100":"String","advertiserIcon":"String","advertiserIconCssClass":"String","isGenius":false,"advertiserIconTitle":"String","trackingPixelIds":"String","applePreference":0,"aliases":[{"code":"String","domain":"String","baseCode":"String","lastUpdatedUtc":"0001-01-01T00:00:00.0000000"}],"linkCreatorSetting":"NotSet"}]}