TechStacks!

<back to all web services

QueryPostComments

AutoQueryPosts
The following routes are available for this service:
GET/posts/comment
import Foundation
import ServiceStack

public class QueryPostComments : QueryDb<PostComment>
{
    public var id:Int?
    public var userId:Int?
    public var postId:Int?
    public var contentContains:String
    public var upVotesAbove:Int?
    public var upVotesBelow:Int?
    public var downVotesAbove:Int?
    public var downVotes:Int?
    public var favoritesAbove:Int?
    public var favoritesBelow:Int?
    public var wordCountAbove:Int?
    public var wordCountBelow:Int?
    public var reportCountAbove:Int?
    public var reportCountBelow:Int?
    // @DataMember(Order=1)
    public var skip:Int?

    // @DataMember(Order=2)
    public var take:Int?

    // @DataMember(Order=3)
    public var orderBy:String

    // @DataMember(Order=4)
    public var orderByDesc:String

    // @DataMember(Order=5)
    public var include:String

    // @DataMember(Order=6)
    public var fields:String

    // @DataMember(Order=7)
    public var meta:[String:String]

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
        case userId
        case postId
        case contentContains
        case upVotesAbove
        case upVotesBelow
        case downVotesAbove
        case downVotes
        case favoritesAbove
        case favoritesBelow
        case wordCountAbove
        case wordCountBelow
        case reportCountAbove
        case reportCountBelow
        case skip
        case take
        case orderBy
        case orderByDesc
        case include
        case fields
        case meta
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(Int.self, forKey: .id)
        userId = try container.decodeIfPresent(Int.self, forKey: .userId)
        postId = try container.decodeIfPresent(Int.self, forKey: .postId)
        contentContains = try container.decodeIfPresent(String.self, forKey: .contentContains)
        upVotesAbove = try container.decodeIfPresent(Int.self, forKey: .upVotesAbove)
        upVotesBelow = try container.decodeIfPresent(Int.self, forKey: .upVotesBelow)
        downVotesAbove = try container.decodeIfPresent(Int.self, forKey: .downVotesAbove)
        downVotes = try container.decodeIfPresent(Int.self, forKey: .downVotes)
        favoritesAbove = try container.decodeIfPresent(Int.self, forKey: .favoritesAbove)
        favoritesBelow = try container.decodeIfPresent(Int.self, forKey: .favoritesBelow)
        wordCountAbove = try container.decodeIfPresent(Int.self, forKey: .wordCountAbove)
        wordCountBelow = try container.decodeIfPresent(Int.self, forKey: .wordCountBelow)
        reportCountAbove = try container.decodeIfPresent(Int.self, forKey: .reportCountAbove)
        reportCountBelow = try container.decodeIfPresent(Int.self, forKey: .reportCountBelow)
        skip = try container.decodeIfPresent(Int.self, forKey: .skip)
        take = try container.decodeIfPresent(Int.self, forKey: .take)
        orderBy = try container.decodeIfPresent(String.self, forKey: .orderBy)
        orderByDesc = try container.decodeIfPresent(String.self, forKey: .orderByDesc)
        include = try container.decodeIfPresent(String.self, forKey: .include)
        fields = try container.decodeIfPresent(String.self, forKey: .fields)
        meta = try container.decodeIfPresent([String:String].self, forKey: .meta) ?? [:]
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
        if userId != nil { try container.encode(userId, forKey: .userId) }
        if postId != nil { try container.encode(postId, forKey: .postId) }
        if contentContains != nil { try container.encode(contentContains, forKey: .contentContains) }
        if upVotesAbove != nil { try container.encode(upVotesAbove, forKey: .upVotesAbove) }
        if upVotesBelow != nil { try container.encode(upVotesBelow, forKey: .upVotesBelow) }
        if downVotesAbove != nil { try container.encode(downVotesAbove, forKey: .downVotesAbove) }
        if downVotes != nil { try container.encode(downVotes, forKey: .downVotes) }
        if favoritesAbove != nil { try container.encode(favoritesAbove, forKey: .favoritesAbove) }
        if favoritesBelow != nil { try container.encode(favoritesBelow, forKey: .favoritesBelow) }
        if wordCountAbove != nil { try container.encode(wordCountAbove, forKey: .wordCountAbove) }
        if wordCountBelow != nil { try container.encode(wordCountBelow, forKey: .wordCountBelow) }
        if reportCountAbove != nil { try container.encode(reportCountAbove, forKey: .reportCountAbove) }
        if reportCountBelow != nil { try container.encode(reportCountBelow, forKey: .reportCountBelow) }
        if skip != nil { try container.encode(skip, forKey: .skip) }
        if take != nil { try container.encode(take, forKey: .take) }
        if orderBy != nil { try container.encode(orderBy, forKey: .orderBy) }
        if orderByDesc != nil { try container.encode(orderByDesc, forKey: .orderByDesc) }
        if include != nil { try container.encode(include, forKey: .include) }
        if fields != nil { try container.encode(fields, forKey: .fields) }
        if meta.count > 0 { try container.encode(meta, forKey: .meta) }
    }
}

public class PostComment : Codable
{
    public var id:Int
    public var postId:Int
    public var userId:Int
    public var replyId:Int?
    // @StringLength(Int32.max)
    public var content:String

    // @StringLength(Int32.max)
    public var contentHtml:String

    public var score:Int
    public var rank:Int
    public var upVotes:Int
    public var downVotes:Int
    public var favorites:Int
    public var wordCount:Int
    public var reportCount:Int
    public var deleted:Date?
    public var hidden:Date?
    public var modified:Date
    public var created:Date
    public var createdBy:String
    public var refId:Int?
    public var refSource:String
    public var refUrn:String

    required public init(){}
}

public class Post : Codable
{
    public var id:Int
    public var organizationId:Int
    public var userId:Int
    public var type:PostType
    public var categoryId:Int
    public var title:String
    public var slug:String
    public var url:String
    public var imageUrl:String
    // @StringLength(Int32.max)
    public var content:String

    // @StringLength(Int32.max)
    public var contentHtml:String

    public var pinCommentId:Int?
    public var technologyIds:[Int] = []
    public var fromDate:Date?
    public var toDate:Date?
    public var location:String
    public var metaType:String
    public var meta:String
    public var approved:Bool
    public var upVotes:Int
    public var downVotes:Int
    public var points:Int
    public var views:Int
    public var favorites:Int
    public var subscribers:Int
    public var replyCount:Int
    public var commentsCount:Int
    public var wordCount:Int
    public var reportCount:Int
    public var linksCount:Int
    public var linkedToCount:Int
    public var score:Int
    public var rank:Int
    public var labels:[String] = []
    public var refUserIds:[Int] = []
    public var refLinks:[String] = []
    public var muteUserIds:[Int] = []
    public var lastCommentDate:Date?
    public var lastCommentId:Int?
    public var lastCommentUserId:Int?
    public var deleted:Date?
    public var deletedBy:String
    public var locked:Date?
    public var lockedBy:String
    public var hidden:Date?
    public var hiddenBy:String
    public var status:String
    public var statusDate:Date?
    public var statusBy:String
    public var archived:Bool
    public var bumped:Date?
    public var created:Date
    public var createdBy:String
    public var modified:Date
    public var modifiedBy:String
    public var refId:Int?
    public var refSource:String
    public var refUrn:String

    required public init(){}
}

public enum PostType : String, Codable
{
    case Announcement
    case Post
    case Showcase
    case Question
    case Request
}


Swift QueryPostComments DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"offset":0,"total":0,"results":[{"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-01T00:00:00.0000000","hidden":"0001-01-01T00:00:00.0000000","modified":"0001-01-01T00:00:00.0000000","created":"0001-01-01T00:00:00.0000000","createdBy":"String","refId":0,"refSource":"String","refUrn":"String"}],"meta":{"String":"String"},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}