GET | /posts/{Id} |
---|
"use strict";
/** @typedef {'Announcement'|'Post'|'Showcase'|'Question'|'Request'} */
export var PostType;
(function (PostType) {
PostType["Announcement"] = "Announcement"
PostType["Post"] = "Post"
PostType["Showcase"] = "Showcase"
PostType["Question"] = "Question"
PostType["Request"] = "Request"
})(PostType || (PostType = {}));
export class Post {
/** @param {{id?:number,organizationId?:number,userId?:number,type?:PostType,categoryId?:number,title?:string,slug?:string,url?:string,imageUrl?:string,content?:string,contentHtml?:string,pinCommentId?:number,technologyIds?:number[],fromDate?:string,toDate?:string,location?:string,metaType?:string,meta?:string,approved?:boolean,upVotes?:number,downVotes?:number,points?:number,views?:number,favorites?:number,subscribers?:number,replyCount?:number,commentsCount?:number,wordCount?:number,reportCount?:number,linksCount?:number,linkedToCount?:number,score?:number,rank?:number,labels?:string[],refUserIds?:number[],refLinks?:string[],muteUserIds?:number[],lastCommentDate?:string,lastCommentId?:number,lastCommentUserId?:number,deleted?:string,deletedBy?:string,locked?:string,lockedBy?:string,hidden?:string,hiddenBy?:string,status?:string,statusDate?:string,statusBy?:string,archived?:boolean,bumped?:string,created?:string,createdBy?:string,modified?:string,modifiedBy?:string,refId?:number,refSource?:string,refUrn?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
id;
/** @type {number} */
organizationId;
/** @type {number} */
userId;
/** @type {PostType} */
type;
/** @type {number} */
categoryId;
/** @type {string} */
title;
/** @type {string} */
slug;
/** @type {string} */
url;
/** @type {string} */
imageUrl;
/** @type {string} */
content;
/** @type {string} */
contentHtml;
/** @type {?number} */
pinCommentId;
/** @type {number[]} */
technologyIds;
/** @type {?string} */
fromDate;
/** @type {?string} */
toDate;
/** @type {string} */
location;
/** @type {string} */
metaType;
/** @type {string} */
meta;
/** @type {boolean} */
approved;
/** @type {number} */
upVotes;
/** @type {number} */
downVotes;
/** @type {number} */
points;
/** @type {number} */
views;
/** @type {number} */
favorites;
/** @type {number} */
subscribers;
/** @type {number} */
replyCount;
/** @type {number} */
commentsCount;
/** @type {number} */
wordCount;
/** @type {number} */
reportCount;
/** @type {number} */
linksCount;
/** @type {number} */
linkedToCount;
/** @type {number} */
score;
/** @type {number} */
rank;
/** @type {string[]} */
labels;
/** @type {number[]} */
refUserIds;
/** @type {string[]} */
refLinks;
/** @type {number[]} */
muteUserIds;
/** @type {?string} */
lastCommentDate;
/** @type {?number} */
lastCommentId;
/** @type {?number} */
lastCommentUserId;
/** @type {?string} */
deleted;
/** @type {string} */
deletedBy;
/** @type {?string} */
locked;
/** @type {string} */
lockedBy;
/** @type {?string} */
hidden;
/** @type {string} */
hiddenBy;
/** @type {string} */
status;
/** @type {?string} */
statusDate;
/** @type {string} */
statusBy;
/** @type {boolean} */
archived;
/** @type {?string} */
bumped;
/** @type {string} */
created;
/** @type {string} */
createdBy;
/** @type {string} */
modified;
/** @type {string} */
modifiedBy;
/** @type {?number} */
refId;
/** @type {string} */
refSource;
/** @type {string} */
refUrn;
}
export class PostComment {
/** @param {{id?:number,postId?:number,userId?:number,replyId?:number,content?:string,contentHtml?:string,score?:number,rank?:number,upVotes?:number,downVotes?:number,favorites?:number,wordCount?:number,reportCount?:number,deleted?:string,hidden?:string,modified?:string,created?:string,createdBy?:string,refId?:number,refSource?:string,refUrn?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
id;
/** @type {number} */
postId;
/** @type {number} */
userId;
/** @type {?number} */
replyId;
/** @type {string} */
content;
/** @type {string} */
contentHtml;
/** @type {number} */
score;
/** @type {number} */
rank;
/** @type {number} */
upVotes;
/** @type {number} */
downVotes;
/** @type {number} */
favorites;
/** @type {number} */
wordCount;
/** @type {number} */
reportCount;
/** @type {?string} */
deleted;
/** @type {?string} */
hidden;
/** @type {string} */
modified;
/** @type {string} */
created;
/** @type {string} */
createdBy;
/** @type {?number} */
refId;
/** @type {string} */
refSource;
/** @type {string} */
refUrn;
}
export class GetPostResponse {
/** @param {{cache?:number,post?:Post,comments?:PostComment[],responseStatus?:ResponseStatus}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
cache;
/** @type {Post} */
post;
/** @type {PostComment[]} */
comments;
/** @type {ResponseStatus} */
responseStatus;
}
export class GetPost {
/** @param {{id?:number,include?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
id;
/** @type {string} */
include;
}
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 } } }