<back to all web services

ThreadsFilterExtended

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

class ThreadsFilterExtended implements IConvertible
{
    List<String>? ThreadKey;

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

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

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

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

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 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> {
    'ThreadsFilterExtended': TypeInfo(TypeOf.Class, create:() => ThreadsFilterExtended()),
    'CommentResponse': TypeInfo(TypeOf.Class, create:() => CommentResponse()),
    'CollectionResponse<CommentResponse>': TypeInfo(TypeOf.Class, create:() => CollectionResponse<CommentResponse>()),
});

Dart ThreadsFilterExtended 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/threads/filter HTTP/1.1 
Host: www.asg.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ThreadKey: 
	[
		String
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	TotalCount: 0
}