All Verbs | /techstacks/query |
---|
import Foundation
import ServiceStack
public class QueryTechStacks : QueryDb2<TechnologyStack, TechnologyStackView>
{
public var ids:[Int]
public var name:String
public var vendorName:String
public var nameContains:String
public var vendorNameContains:String
public var descriptionContains:String
// @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 ids
case name
case vendorName
case nameContains
case vendorNameContains
case descriptionContains
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)
ids = try container.decodeIfPresent([Int].self, forKey: .ids) ?? []
name = try container.decodeIfPresent(String.self, forKey: .name)
vendorName = try container.decodeIfPresent(String.self, forKey: .vendorName)
nameContains = try container.decodeIfPresent(String.self, forKey: .nameContains)
vendorNameContains = try container.decodeIfPresent(String.self, forKey: .vendorNameContains)
descriptionContains = try container.decodeIfPresent(String.self, forKey: .descriptionContains)
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 ids.count > 0 { try container.encode(ids, forKey: .ids) }
if name != nil { try container.encode(name, forKey: .name) }
if vendorName != nil { try container.encode(vendorName, forKey: .vendorName) }
if nameContains != nil { try container.encode(nameContains, forKey: .nameContains) }
if vendorNameContains != nil { try container.encode(vendorNameContains, forKey: .vendorNameContains) }
if descriptionContains != nil { try container.encode(descriptionContains, forKey: .descriptionContains) }
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 TechnologyStack : TechnologyStackBase
{
public var id:Int
public var name:String
public var vendorName:String
public var Description:String
public var appUrl:String
public var screenshotUrl:String
public var created:Date
public var createdBy:String
public var lastModified:Date
public var lastModifiedBy:String
public var isLocked:Bool
public var ownerId:String
public var slug:String
// @StringLength(Int32.max)
public var details:String
// @StringLength(Int32.max)
public var detailsHtml:String
public var lastStatusUpdate:Date?
public var organizationId:Int?
public var commentsPostId:Int?
public var viewCount:Int
public var favCount:Int
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case id
case name
case vendorName
case Description
case appUrl
case screenshotUrl
case created
case createdBy
case lastModified
case lastModifiedBy
case isLocked
case ownerId
case slug
case details
case detailsHtml
case lastStatusUpdate
case organizationId
case commentsPostId
case viewCount
case favCount
}
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)
name = try container.decodeIfPresent(String.self, forKey: .name)
vendorName = try container.decodeIfPresent(String.self, forKey: .vendorName)
Description = try container.decodeIfPresent(String.self, forKey: .Description)
appUrl = try container.decodeIfPresent(String.self, forKey: .appUrl)
screenshotUrl = try container.decodeIfPresent(String.self, forKey: .screenshotUrl)
created = try container.decodeIfPresent(Date.self, forKey: .created)
createdBy = try container.decodeIfPresent(String.self, forKey: .createdBy)
lastModified = try container.decodeIfPresent(Date.self, forKey: .lastModified)
lastModifiedBy = try container.decodeIfPresent(String.self, forKey: .lastModifiedBy)
isLocked = try container.decodeIfPresent(Bool.self, forKey: .isLocked)
ownerId = try container.decodeIfPresent(String.self, forKey: .ownerId)
slug = try container.decodeIfPresent(String.self, forKey: .slug)
details = try container.decodeIfPresent(String.self, forKey: .details)
detailsHtml = try container.decodeIfPresent(String.self, forKey: .detailsHtml)
lastStatusUpdate = try container.decodeIfPresent(Date.self, forKey: .lastStatusUpdate)
organizationId = try container.decodeIfPresent(Int.self, forKey: .organizationId)
commentsPostId = try container.decodeIfPresent(Int.self, forKey: .commentsPostId)
viewCount = try container.decodeIfPresent(Int.self, forKey: .viewCount)
favCount = try container.decodeIfPresent(Int.self, forKey: .favCount)
}
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 name != nil { try container.encode(name, forKey: .name) }
if vendorName != nil { try container.encode(vendorName, forKey: .vendorName) }
if Description != nil { try container.encode(Description, forKey: .Description) }
if appUrl != nil { try container.encode(appUrl, forKey: .appUrl) }
if screenshotUrl != nil { try container.encode(screenshotUrl, forKey: .screenshotUrl) }
if created != nil { try container.encode(created, forKey: .created) }
if createdBy != nil { try container.encode(createdBy, forKey: .createdBy) }
if lastModified != nil { try container.encode(lastModified, forKey: .lastModified) }
if lastModifiedBy != nil { try container.encode(lastModifiedBy, forKey: .lastModifiedBy) }
if isLocked != nil { try container.encode(isLocked, forKey: .isLocked) }
if ownerId != nil { try container.encode(ownerId, forKey: .ownerId) }
if slug != nil { try container.encode(slug, forKey: .slug) }
if details != nil { try container.encode(details, forKey: .details) }
if detailsHtml != nil { try container.encode(detailsHtml, forKey: .detailsHtml) }
if lastStatusUpdate != nil { try container.encode(lastStatusUpdate, forKey: .lastStatusUpdate) }
if organizationId != nil { try container.encode(organizationId, forKey: .organizationId) }
if commentsPostId != nil { try container.encode(commentsPostId, forKey: .commentsPostId) }
if viewCount != nil { try container.encode(viewCount, forKey: .viewCount) }
if favCount != nil { try container.encode(favCount, forKey: .favCount) }
}
}
public class TechnologyStackBase : Codable
{
public var id:Int
public var name:String
public var vendorName:String
public var Description:String
public var appUrl:String
public var screenshotUrl:String
public var created:Date
public var createdBy:String
public var lastModified:Date
public var lastModifiedBy:String
public var isLocked:Bool
public var ownerId:String
public var slug:String
// @StringLength(Int32.max)
public var details:String
// @StringLength(Int32.max)
public var detailsHtml:String
public var lastStatusUpdate:Date?
public var organizationId:Int?
public var commentsPostId:Int?
public var viewCount:Int
public var favCount:Int
required public init(){}
}
public class TechnologyStackView : Codable
{
public var id:Int?
public var name:String
public var vendorName:String
public var Description:String
public var appUrl:String
public var screenshotUrl:String
public var created:Date?
public var createdBy:String
public var lastModified:Date?
public var lastModifiedBy:String
public var isLocked:Bool?
public var ownerId:String
public var slug:String
public var details:String
public var detailsHtml:String
public var lastStatusUpdate:Date?
public var organizationId:Int?
public var commentsPostId:Int?
public var viewCount:Int?
public var favCount:Int?
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
}
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.
POST /techstacks/query HTTP/1.1
Host: techstacks.io
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<QueryTechStacks xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel">
<Skip xmlns="http://schemas.servicestack.net/types">0</Skip>
<Take xmlns="http://schemas.servicestack.net/types">0</Take>
<OrderBy xmlns="http://schemas.servicestack.net/types">String</OrderBy>
<OrderByDesc xmlns="http://schemas.servicestack.net/types">String</OrderByDesc>
<Include xmlns="http://schemas.servicestack.net/types">String</Include>
<Fields xmlns="http://schemas.servicestack.net/types">String</Fields>
<Meta xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns="http://schemas.servicestack.net/types">
<d2p1:KeyValueOfstringstring>
<d2p1:Key>String</d2p1:Key>
<d2p1:Value>String</d2p1:Value>
</d2p1:KeyValueOfstringstring>
</Meta>
<DescriptionContains>String</DescriptionContains>
<Ids xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:long>0</d2p1:long>
</Ids>
<Name>String</Name>
<NameContains>String</NameContains>
<VendorName>String</VendorName>
<VendorNameContains>String</VendorNameContains>
</QueryTechStacks>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <QueryResponseOfTechnologyStackViewclPpLQp2 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:TechnologyStackView> <d2p1:AppUrl>String</d2p1:AppUrl> <d2p1:CommentsPostId>0</d2p1:CommentsPostId> <d2p1:Created>0001-01-01T00:00:00</d2p1:Created> <d2p1:CreatedBy>String</d2p1:CreatedBy> <d2p1:Description>String</d2p1:Description> <d2p1:Details>String</d2p1:Details> <d2p1:DetailsHtml>String</d2p1:DetailsHtml> <d2p1:FavCount>0</d2p1:FavCount> <d2p1:Id>0</d2p1:Id> <d2p1:IsLocked>false</d2p1:IsLocked> <d2p1:LastModified>0001-01-01T00:00:00</d2p1:LastModified> <d2p1:LastModifiedBy>String</d2p1:LastModifiedBy> <d2p1:LastStatusUpdate>0001-01-01T00:00:00</d2p1:LastStatusUpdate> <d2p1:Name>String</d2p1:Name> <d2p1:OrganizationId>0</d2p1:OrganizationId> <d2p1:OwnerId>String</d2p1:OwnerId> <d2p1:ScreenshotUrl>String</d2p1:ScreenshotUrl> <d2p1:Slug>String</d2p1:Slug> <d2p1:VendorName>String</d2p1:VendorName> <d2p1:ViewCount>0</d2p1:ViewCount> </d2p1:TechnologyStackView> </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> </QueryResponseOfTechnologyStackViewclPpLQp2>