<back to all web services

CommentsFilterExtended

The following routes are available for this service:
POST/RestApi/comments-api/comments/filter
import 'package:servicestack/servicestack.dart';

class CommentResponse implements IConvertible
{
    String? Key;
    String? Name;
    String? Message;
    DateTime? DateCreated;
    String? ProfilePictureUrl;
    String? ProfilePictureThumbnailUrl;
    String? Status;
    String? Email;
    String? ThreadKey;
    String? AuthorIpAddress;
    String? CustomData;
    double? Rating;

    CommentResponse({this.Key,this.Name,this.Message,this.DateCreated,this.ProfilePictureUrl,this.ProfilePictureThumbnailUrl,this.Status,this.Email,this.ThreadKey,this.AuthorIpAddress,this.CustomData,this.Rating});
    CommentResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Key = json['Key'];
        Name = json['Name'];
        Message = json['Message'];
        DateCreated = JsonConverters.fromJson(json['DateCreated'],'DateTime',context!);
        ProfilePictureUrl = json['ProfilePictureUrl'];
        ProfilePictureThumbnailUrl = json['ProfilePictureThumbnailUrl'];
        Status = json['Status'];
        Email = json['Email'];
        ThreadKey = json['ThreadKey'];
        AuthorIpAddress = json['AuthorIpAddress'];
        CustomData = json['CustomData'];
        Rating = JsonConverters.toDouble(json['Rating']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Key': Key,
        'Name': Name,
        'Message': Message,
        'DateCreated': JsonConverters.toJson(DateCreated,'DateTime',context!),
        'ProfilePictureUrl': ProfilePictureUrl,
        'ProfilePictureThumbnailUrl': ProfilePictureThumbnailUrl,
        'Status': Status,
        'Email': Email,
        'ThreadKey': ThreadKey,
        'AuthorIpAddress': AuthorIpAddress,
        'CustomData': CustomData,
        'Rating': Rating
    };

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

class CommentsFilterExtended implements IConvertible
{
    List<String>? CommentKey;
    List<String>? ThreadKey;
    List<String>? Language;
    List<String>? AuthorKey;
    List<String>? Status;
    List<String>? ThreadType;
    List<String>? Behavior;
    List<String>? GroupKey;
    int? Skip;
    int? Take;
    bool? SortDescending;
    DateTime? NewerThan;
    DateTime? OlderThan;

    CommentsFilterExtended({this.CommentKey,this.ThreadKey,this.Language,this.AuthorKey,this.Status,this.ThreadType,this.Behavior,this.GroupKey,this.Skip,this.Take,this.SortDescending,this.NewerThan,this.OlderThan});
    CommentsFilterExtended.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CommentKey = JsonConverters.fromJson(json['CommentKey'],'List<String>',context!);
        ThreadKey = JsonConverters.fromJson(json['ThreadKey'],'List<String>',context!);
        Language = JsonConverters.fromJson(json['Language'],'List<String>',context!);
        AuthorKey = JsonConverters.fromJson(json['AuthorKey'],'List<String>',context!);
        Status = JsonConverters.fromJson(json['Status'],'List<String>',context!);
        ThreadType = JsonConverters.fromJson(json['ThreadType'],'List<String>',context!);
        Behavior = JsonConverters.fromJson(json['Behavior'],'List<String>',context!);
        GroupKey = JsonConverters.fromJson(json['GroupKey'],'List<String>',context!);
        Skip = json['Skip'];
        Take = json['Take'];
        SortDescending = json['SortDescending'];
        NewerThan = JsonConverters.fromJson(json['NewerThan'],'DateTime',context!);
        OlderThan = JsonConverters.fromJson(json['OlderThan'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CommentKey': JsonConverters.toJson(CommentKey,'List<String>',context!),
        'ThreadKey': JsonConverters.toJson(ThreadKey,'List<String>',context!),
        'Language': JsonConverters.toJson(Language,'List<String>',context!),
        'AuthorKey': JsonConverters.toJson(AuthorKey,'List<String>',context!),
        'Status': JsonConverters.toJson(Status,'List<String>',context!),
        'ThreadType': JsonConverters.toJson(ThreadType,'List<String>',context!),
        'Behavior': JsonConverters.toJson(Behavior,'List<String>',context!),
        'GroupKey': JsonConverters.toJson(GroupKey,'List<String>',context!),
        'Skip': Skip,
        'Take': Take,
        'SortDescending': SortDescending,
        'NewerThan': JsonConverters.toJson(NewerThan,'DateTime',context!),
        'OlderThan': JsonConverters.toJson(OlderThan,'DateTime',context!)
    };

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

class CollectionResponse<CommentResponse> implements IConvertible
{
    int? TotalCount;
    List<CommentResponse>? Items;

    CollectionResponse({this.TotalCount,this.Items});
    CollectionResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        TotalCount = json['TotalCount'];
        Items = JsonConverters.fromJson(json['Items'],'IEnumerable<${runtimeGenericTypeDefs(this,[0]).join(",")}>',context!);
        return this;
    }

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

    getTypeName() => "CollectionResponse<$CommentResponse>";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'www.asg.com.au', types: <String, TypeInfo> {
    'CommentResponse': TypeInfo(TypeOf.Class, create:() => CommentResponse()),
    'CommentsFilterExtended': TypeInfo(TypeOf.Class, create:() => CommentsFilterExtended()),
    'CollectionResponse<CommentResponse>': TypeInfo(TypeOf.Class, create:() => CollectionResponse<CommentResponse>()),
});

Dart CommentsFilterExtended DTOs

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

HTTP + JSV

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

POST /RestApi/comments-api/comments/filter HTTP/1.1 
Host: www.asg.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CommentKey: 
	[
		String
	],
	ThreadKey: 
	[
		String
	],
	Language: 
	[
		String
	],
	AuthorKey: 
	[
		String
	],
	Status: 
	[
		String
	],
	ThreadType: 
	[
		String
	],
	Behavior: 
	[
		String
	],
	GroupKey: 
	[
		String
	],
	Skip: 0,
	Take: 0,
	SortDescending: False,
	NewerThan: 0001-01-01,
	OlderThan: 0001-01-01
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	TotalCount: 0
}