All Verbs | /techstacks/search |
---|
import Foundation
import ServiceStack
// @AutoQueryViewer(DefaultSearchField="Description", DefaultSearchText="ServiceStack", DefaultSearchType="Contains", Description="Explore different Technology Stacks", IconUrl="material-icons:cloud", Title="Find Technology Stacks")
public class FindTechStacks : 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
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case ids
case name
case vendorName
case nameContains
case vendorNameContains
case descriptionContains
}
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)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if ids != nil { 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) }
}
}
public class TechnologyStack : TechnologyStackBase
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
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/search HTTP/1.1
Host: techstacks.io
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<FindTechStacks 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>
</FindTechStacks>
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>