GET | /posts/{Id} |
---|
import 'package:servicestack/servicestack.dart';
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;
}
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 GetPostResponse implements IConvertible
{
int? cache;
Post? post;
List<PostComment>? comments;
ResponseStatus? responseStatus;
GetPostResponse({this.cache,this.post,this.comments,this.responseStatus});
GetPostResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
cache = json['cache'];
post = JsonConverters.fromJson(json['post'],'Post',context!);
comments = JsonConverters.fromJson(json['comments'],'List<PostComment>',context!);
responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'cache': cache,
'post': JsonConverters.toJson(post,'Post',context!),
'comments': JsonConverters.toJson(comments,'List<PostComment>',context!),
'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
};
getTypeName() => "GetPostResponse";
TypeContext? context = _ctx;
}
class GetPost implements IGet, IConvertible
{
int? id;
String? include;
GetPost({this.id,this.include});
GetPost.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
include = json['include'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'include': include
};
getTypeName() => "GetPost";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'techstacks.io', types: <String, TypeInfo> {
'PostType': TypeInfo(TypeOf.Enum, enumValues:PostType.values),
'Post': TypeInfo(TypeOf.Class, create:() => Post()),
'PostComment': TypeInfo(TypeOf.Class, create:() => PostComment()),
'GetPostResponse': TypeInfo(TypeOf.Class, create:() => GetPostResponse()),
'List<PostComment>': TypeInfo(TypeOf.Class, create:() => <PostComment>[]),
'GetPost': TypeInfo(TypeOf.Class, create:() => GetPost()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /posts/{Id} HTTP/1.1 Host: techstacks.io Accept: text/jsv
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { cache: 0, post: { id: 0, organizationId: 0, userId: 0, type: Announcement, categoryId: 0, title: String, slug: String, url: String, imageUrl: String, content: String, contentHtml: String, pinCommentId: 0, technologyIds: [ 0 ], fromDate: 0001-01-01, toDate: 0001-01-01, location: String, metaType: String, meta: String, approved: False, upVotes: 0, downVotes: 0, points: 0, views: 0, favorites: 0, subscribers: 0, replyCount: 0, commentsCount: 0, wordCount: 0, reportCount: 0, linksCount: 0, linkedToCount: 0, score: 0, rank: 0, labels: [ String ], refUserIds: [ 0 ], refLinks: [ String ], muteUserIds: [ 0 ], lastCommentDate: 0001-01-01, lastCommentId: 0, lastCommentUserId: 0, deleted: 0001-01-01, deletedBy: String, locked: 0001-01-01, lockedBy: String, hidden: 0001-01-01, hiddenBy: String, status: String, statusDate: 0001-01-01, statusBy: String, archived: False, bumped: 0001-01-01, created: 0001-01-01, createdBy: String, modified: 0001-01-01, modifiedBy: String, refId: 0, refSource: String, refUrn: String }, comments: [ { id: 0, postId: 0, userId: 0, replyId: 0, content: String, contentHtml: String, score: 0, rank: 0, upVotes: 0, downVotes: 0, favorites: 0, wordCount: 0, reportCount: 0, deleted: 0001-01-01, hidden: 0001-01-01, modified: 0001-01-01, created: 0001-01-01, createdBy: String, refId: 0, refSource: String, refUrn: String } ], responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } } }