GET | /posts/comment |
---|
import 'package:servicestack/servicestack.dart';
// @DataContract
abstract class QueryBase
{
// @DataMember(Order=1)
int? skip;
// @DataMember(Order=2)
int? take;
// @DataMember(Order=3)
String? orderBy;
// @DataMember(Order=4)
String? orderByDesc;
// @DataMember(Order=5)
String? include;
// @DataMember(Order=6)
String? fields;
// @DataMember(Order=7)
Map<String,String?>? meta;
QueryBase({this.skip,this.take,this.orderBy,this.orderByDesc,this.include,this.fields,this.meta});
QueryBase.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
skip = json['skip'];
take = json['take'];
orderBy = json['orderBy'];
orderByDesc = json['orderByDesc'];
include = json['include'];
fields = json['fields'];
meta = JsonConverters.toStringMap(json['meta']);
return this;
}
Map<String, dynamic> toJson() => {
'skip': skip,
'take': take,
'orderBy': orderBy,
'orderByDesc': orderByDesc,
'include': include,
'fields': fields,
'meta': meta
};
getTypeName() => "QueryBase";
TypeContext? context = _ctx;
}
abstract class QueryDb<T> extends QueryBase
{
QueryDb();
QueryDb.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() => "QueryDb<$T>";
TypeContext? context = _ctx;
}
class PostComment implements IConvertible
{
int? id;
int? postId;
int? userId;
int? replyId;
// @StringLength(2147483647)
String? content;
// @StringLength(2147483647)
String? contentHtml;
int? score;
int? rank;
int? upVotes;
int? downVotes;
int? favorites;
int? wordCount;
int? reportCount;
DateTime? deleted;
DateTime? hidden;
DateTime? modified;
DateTime? created;
String? createdBy;
int? refId;
String? refSource;
String? refUrn;
PostComment({this.id,this.postId,this.userId,this.replyId,this.content,this.contentHtml,this.score,this.rank,this.upVotes,this.downVotes,this.favorites,this.wordCount,this.reportCount,this.deleted,this.hidden,this.modified,this.created,this.createdBy,this.refId,this.refSource,this.refUrn});
PostComment.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
postId = json['postId'];
userId = json['userId'];
replyId = json['replyId'];
content = json['content'];
contentHtml = json['contentHtml'];
score = json['score'];
rank = json['rank'];
upVotes = json['upVotes'];
downVotes = json['downVotes'];
favorites = json['favorites'];
wordCount = json['wordCount'];
reportCount = json['reportCount'];
deleted = JsonConverters.fromJson(json['deleted'],'DateTime',context!);
hidden = JsonConverters.fromJson(json['hidden'],'DateTime',context!);
modified = JsonConverters.fromJson(json['modified'],'DateTime',context!);
created = JsonConverters.fromJson(json['created'],'DateTime',context!);
createdBy = json['createdBy'];
refId = json['refId'];
refSource = json['refSource'];
refUrn = json['refUrn'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'postId': postId,
'userId': userId,
'replyId': replyId,
'content': content,
'contentHtml': contentHtml,
'score': score,
'rank': rank,
'upVotes': upVotes,
'downVotes': downVotes,
'favorites': favorites,
'wordCount': wordCount,
'reportCount': reportCount,
'deleted': JsonConverters.toJson(deleted,'DateTime',context!),
'hidden': JsonConverters.toJson(hidden,'DateTime',context!),
'modified': JsonConverters.toJson(modified,'DateTime',context!),
'created': JsonConverters.toJson(created,'DateTime',context!),
'createdBy': createdBy,
'refId': refId,
'refSource': refSource,
'refUrn': refUrn
};
getTypeName() => "PostComment";
TypeContext? context = _ctx;
}
class QueryPostComments extends QueryDb<PostComment> implements IConvertible
{
int? id;
int? userId;
int? postId;
String? contentContains;
int? upVotesAbove;
int? upVotesBelow;
int? downVotesAbove;
int? downVotes;
int? favoritesAbove;
int? favoritesBelow;
int? wordCountAbove;
int? wordCountBelow;
int? reportCountAbove;
int? reportCountBelow;
QueryPostComments({this.id,this.userId,this.postId,this.contentContains,this.upVotesAbove,this.upVotesBelow,this.downVotesAbove,this.downVotes,this.favoritesAbove,this.favoritesBelow,this.wordCountAbove,this.wordCountBelow,this.reportCountAbove,this.reportCountBelow});
QueryPostComments.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
id = json['id'];
userId = json['userId'];
postId = json['postId'];
contentContains = json['contentContains'];
upVotesAbove = json['upVotesAbove'];
upVotesBelow = json['upVotesBelow'];
downVotesAbove = json['downVotesAbove'];
downVotes = json['downVotes'];
favoritesAbove = json['favoritesAbove'];
favoritesBelow = json['favoritesBelow'];
wordCountAbove = json['wordCountAbove'];
wordCountBelow = json['wordCountBelow'];
reportCountAbove = json['reportCountAbove'];
reportCountBelow = json['reportCountBelow'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'id': id,
'userId': userId,
'postId': postId,
'contentContains': contentContains,
'upVotesAbove': upVotesAbove,
'upVotesBelow': upVotesBelow,
'downVotesAbove': downVotesAbove,
'downVotes': downVotes,
'favoritesAbove': favoritesAbove,
'favoritesBelow': favoritesBelow,
'wordCountAbove': wordCountAbove,
'wordCountBelow': wordCountBelow,
'reportCountAbove': reportCountAbove,
'reportCountBelow': reportCountBelow
});
getTypeName() => "QueryPostComments";
TypeContext? context = _ctx;
}
enum PostType
{
Announcement,
Post,
Showcase,
Question,
Request,
}
class Post implements IConvertible
{
int? id;
int? organizationId;
int? userId;
PostType? type;
int? categoryId;
String? title;
String? slug;
String? url;
String? imageUrl;
// @StringLength(2147483647)
String? content;
// @StringLength(2147483647)
String? contentHtml;
int? pinCommentId;
List<int>? technologyIds;
DateTime? fromDate;
DateTime? toDate;
String? location;
String? metaType;
String? meta;
bool? approved;
int? upVotes;
int? downVotes;
int? points;
int? views;
int? favorites;
int? subscribers;
int? replyCount;
int? commentsCount;
int? wordCount;
int? reportCount;
int? linksCount;
int? linkedToCount;
int? score;
int? rank;
List<String>? labels;
List<int>? refUserIds;
List<String>? refLinks;
List<int>? muteUserIds;
DateTime? lastCommentDate;
int? lastCommentId;
int? lastCommentUserId;
DateTime? deleted;
String? deletedBy;
DateTime? locked;
String? lockedBy;
DateTime? hidden;
String? hiddenBy;
String? status;
DateTime? statusDate;
String? statusBy;
bool? archived;
DateTime? bumped;
DateTime? created;
String? createdBy;
DateTime? modified;
String? modifiedBy;
int? refId;
String? refSource;
String? refUrn;
Post({this.id,this.organizationId,this.userId,this.type,this.categoryId,this.title,this.slug,this.url,this.imageUrl,this.content,this.contentHtml,this.pinCommentId,this.technologyIds,this.fromDate,this.toDate,this.location,this.metaType,this.meta,this.approved,this.upVotes,this.downVotes,this.points,this.views,this.favorites,this.subscribers,this.replyCount,this.commentsCount,this.wordCount,this.reportCount,this.linksCount,this.linkedToCount,this.score,this.rank,this.labels,this.refUserIds,this.refLinks,this.muteUserIds,this.lastCommentDate,this.lastCommentId,this.lastCommentUserId,this.deleted,this.deletedBy,this.locked,this.lockedBy,this.hidden,this.hiddenBy,this.status,this.statusDate,this.statusBy,this.archived,this.bumped,this.created,this.createdBy,this.modified,this.modifiedBy,this.refId,this.refSource,this.refUrn});
Post.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
organizationId = json['organizationId'];
userId = json['userId'];
type = JsonConverters.fromJson(json['type'],'PostType',context!);
categoryId = json['categoryId'];
title = json['title'];
slug = json['slug'];
url = json['url'];
imageUrl = json['imageUrl'];
content = json['content'];
contentHtml = json['contentHtml'];
pinCommentId = json['pinCommentId'];
technologyIds = JsonConverters.fromJson(json['technologyIds'],'List<int>',context!);
fromDate = JsonConverters.fromJson(json['fromDate'],'DateTime',context!);
toDate = JsonConverters.fromJson(json['toDate'],'DateTime',context!);
location = json['location'];
metaType = json['metaType'];
meta = json['meta'];
approved = json['approved'];
upVotes = json['upVotes'];
downVotes = json['downVotes'];
points = json['points'];
views = json['views'];
favorites = json['favorites'];
subscribers = json['subscribers'];
replyCount = json['replyCount'];
commentsCount = json['commentsCount'];
wordCount = json['wordCount'];
reportCount = json['reportCount'];
linksCount = json['linksCount'];
linkedToCount = json['linkedToCount'];
score = json['score'];
rank = json['rank'];
labels = JsonConverters.fromJson(json['labels'],'List<String>',context!);
refUserIds = JsonConverters.fromJson(json['refUserIds'],'List<int>',context!);
refLinks = JsonConverters.fromJson(json['refLinks'],'List<String>',context!);
muteUserIds = JsonConverters.fromJson(json['muteUserIds'],'List<int>',context!);
lastCommentDate = JsonConverters.fromJson(json['lastCommentDate'],'DateTime',context!);
lastCommentId = json['lastCommentId'];
lastCommentUserId = json['lastCommentUserId'];
deleted = JsonConverters.fromJson(json['deleted'],'DateTime',context!);
deletedBy = json['deletedBy'];
locked = JsonConverters.fromJson(json['locked'],'DateTime',context!);
lockedBy = json['lockedBy'];
hidden = JsonConverters.fromJson(json['hidden'],'DateTime',context!);
hiddenBy = json['hiddenBy'];
status = json['status'];
statusDate = JsonConverters.fromJson(json['statusDate'],'DateTime',context!);
statusBy = json['statusBy'];
archived = json['archived'];
bumped = JsonConverters.fromJson(json['bumped'],'DateTime',context!);
created = JsonConverters.fromJson(json['created'],'DateTime',context!);
createdBy = json['createdBy'];
modified = JsonConverters.fromJson(json['modified'],'DateTime',context!);
modifiedBy = json['modifiedBy'];
refId = json['refId'];
refSource = json['refSource'];
refUrn = json['refUrn'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'organizationId': organizationId,
'userId': userId,
'type': JsonConverters.toJson(type,'PostType',context!),
'categoryId': categoryId,
'title': title,
'slug': slug,
'url': url,
'imageUrl': imageUrl,
'content': content,
'contentHtml': contentHtml,
'pinCommentId': pinCommentId,
'technologyIds': JsonConverters.toJson(technologyIds,'List<int>',context!),
'fromDate': JsonConverters.toJson(fromDate,'DateTime',context!),
'toDate': JsonConverters.toJson(toDate,'DateTime',context!),
'location': location,
'metaType': metaType,
'meta': meta,
'approved': approved,
'upVotes': upVotes,
'downVotes': downVotes,
'points': points,
'views': views,
'favorites': favorites,
'subscribers': subscribers,
'replyCount': replyCount,
'commentsCount': commentsCount,
'wordCount': wordCount,
'reportCount': reportCount,
'linksCount': linksCount,
'linkedToCount': linkedToCount,
'score': score,
'rank': rank,
'labels': JsonConverters.toJson(labels,'List<String>',context!),
'refUserIds': JsonConverters.toJson(refUserIds,'List<int>',context!),
'refLinks': JsonConverters.toJson(refLinks,'List<String>',context!),
'muteUserIds': JsonConverters.toJson(muteUserIds,'List<int>',context!),
'lastCommentDate': JsonConverters.toJson(lastCommentDate,'DateTime',context!),
'lastCommentId': lastCommentId,
'lastCommentUserId': lastCommentUserId,
'deleted': JsonConverters.toJson(deleted,'DateTime',context!),
'deletedBy': deletedBy,
'locked': JsonConverters.toJson(locked,'DateTime',context!),
'lockedBy': lockedBy,
'hidden': JsonConverters.toJson(hidden,'DateTime',context!),
'hiddenBy': hiddenBy,
'status': status,
'statusDate': JsonConverters.toJson(statusDate,'DateTime',context!),
'statusBy': statusBy,
'archived': archived,
'bumped': JsonConverters.toJson(bumped,'DateTime',context!),
'created': JsonConverters.toJson(created,'DateTime',context!),
'createdBy': createdBy,
'modified': JsonConverters.toJson(modified,'DateTime',context!),
'modifiedBy': modifiedBy,
'refId': refId,
'refSource': refSource,
'refUrn': refUrn
};
getTypeName() => "Post";
TypeContext? context = _ctx;
}
// @DataContract
class QueryResponse<T> implements IConvertible
{
// @DataMember(Order=1)
int? offset;
// @DataMember(Order=2)
int? total;
// @DataMember(Order=3)
List<Post>? results;
// @DataMember(Order=4)
Map<String,String?>? meta;
// @DataMember(Order=5)
ResponseStatus? responseStatus;
QueryResponse({this.offset,this.total,this.results,this.meta,this.responseStatus});
QueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
offset = json['offset'];
total = json['total'];
results = JsonConverters.fromJson(json['results'],'List<Post>',context!);
meta = JsonConverters.toStringMap(json['meta']);
responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'offset': offset,
'total': total,
'results': JsonConverters.toJson(results,'List<Post>',context!),
'meta': meta,
'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
};
getTypeName() => "QueryResponse<$T>";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'techstacks.io', types: <String, TypeInfo> {
'PostComment': TypeInfo(TypeOf.Class, create:() => PostComment()),
'QueryPostComments': TypeInfo(TypeOf.Class, create:() => QueryPostComments()),
'List<PostComment>': TypeInfo(TypeOf.Class, create:() => <PostComment>[]),
'PostType': TypeInfo(TypeOf.Enum, enumValues:PostType.values),
'Post': TypeInfo(TypeOf.Class, create:() => Post()),
'List<Post>': TypeInfo(TypeOf.Class, create:() => <Post>[]),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /posts/comment HTTP/1.1 Host: techstacks.io Accept: application/xml
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <QueryResponseOfPostCommentclPpLQp2 xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types"> <Offset>0</Offset> <Total>0</Total> <Results xmlns:d2p1="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types"> <d2p1:PostComment> <d2p1:Content>String</d2p1:Content> <d2p1:ContentHtml>String</d2p1:ContentHtml> <d2p1:Created>0001-01-01T00:00:00</d2p1:Created> <d2p1:CreatedBy>String</d2p1:CreatedBy> <d2p1:Deleted>0001-01-01T00:00:00</d2p1:Deleted> <d2p1:DownVotes>0</d2p1:DownVotes> <d2p1:Favorites>0</d2p1:Favorites> <d2p1:Hidden>0001-01-01T00:00:00</d2p1:Hidden> <d2p1:Id>0</d2p1:Id> <d2p1:Modified>0001-01-01T00:00:00</d2p1:Modified> <d2p1:PostId>0</d2p1:PostId> <d2p1:Rank>0</d2p1:Rank> <d2p1:RefId>0</d2p1:RefId> <d2p1:RefSource>String</d2p1:RefSource> <d2p1:RefUrn>String</d2p1:RefUrn> <d2p1:ReplyId>0</d2p1:ReplyId> <d2p1:ReportCount>0</d2p1:ReportCount> <d2p1:Score>0</d2p1:Score> <d2p1:UpVotes>0</d2p1:UpVotes> <d2p1:UserId>0</d2p1:UserId> <d2p1:WordCount>0</d2p1:WordCount> </d2p1:PostComment> </Results> <Meta xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d2p1:KeyValueOfstringstring> <d2p1:Key>String</d2p1:Key> <d2p1:Value>String</d2p1:Value> </d2p1:KeyValueOfstringstring> </Meta> <ResponseStatus> <ErrorCode>String</ErrorCode> <Message>String</Message> <StackTrace>String</StackTrace> <Errors> <ResponseError> <ErrorCode>String</ErrorCode> <FieldName>String</FieldName> <Message>String</Message> <Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:KeyValueOfstringstring> <d5p1:Key>String</d5p1:Key> <d5p1:Value>String</d5p1:Value> </d5p1:KeyValueOfstringstring> </Meta> </ResponseError> </Errors> <Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d3p1:KeyValueOfstringstring> <d3p1:Key>String</d3p1:Key> <d3p1:Value>String</d3p1:Value> </d3p1:KeyValueOfstringstring> </Meta> </ResponseStatus> </QueryResponseOfPostCommentclPpLQp2>