| GET | /v4/links/metadata/{baseCode} |
|---|
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 GetShortLinkMetadataResponse implements IGetShortLinkMetadataResponse, IConvertible
{
// @DataMember(Name="responseStatus")
ResponseStatus? responseStatus;
// @DataMember(Name="data")
UserShortLink? data;
GetShortLinkMetadataResponse({this.responseStatus,this.data});
GetShortLinkMetadataResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
data = JsonConverters.fromJson(json['data'],'UserShortLink',context!);
return this;
}
Map<String, dynamic> toJson() => {
'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!),
'data': JsonConverters.toJson(data,'UserShortLink',context!)
};
getTypeName() => "GetShortLinkMetadataResponse";
TypeContext? context = _ctx;
}
// @DataContract
class GetShortLinkMetadataRequest implements IGetShortLinkMetadataRequest, IConvertible
{
// @DataMember(Name="baseCode")
String? baseCode;
GetShortLinkMetadataRequest({this.baseCode});
GetShortLinkMetadataRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
baseCode = json['baseCode'];
return this;
}
Map<String, dynamic> toJson() => {
'baseCode': baseCode
};
getTypeName() => "GetShortLinkMetadataRequest";
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>[]),
'GetShortLinkMetadataResponse': TypeInfo(TypeOf.Class, create:() => GetShortLinkMetadataResponse()),
'GetShortLinkMetadataRequest': TypeInfo(TypeOf.Class, create:() => GetShortLinkMetadataRequest()),
});
Dart GetShortLinkMetadataRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /v4/links/metadata/{baseCode} 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"}}