PUT | /RestApi/lists-api/items |
---|
import Foundation
import ServiceStack
public class SpecificListsGetRequest : Codable
{
public var ids:[String] = []
public var provider:String
required public init(){}
}
// @DataContract
public class CollectionContext<ListViewModel : Codable> : Codable
{
// @DataMember
public var totalCount:Int
// @DataMember
public var isGeneric:Bool
// @DataMember
public var context:[String:String] = [:]
// @DataMember
public var items:[ListViewModel] = []
required public init(){}
}
public class ListViewModel : HierarchicalContentViewModelBase
{
// @DataMember
public var listItemCount:Int
// @DataMember
public var lastItemDate:Date?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case listItemCount
case lastItemDate
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
listItemCount = try container.decodeIfPresent(Int.self, forKey: .listItemCount)
lastItemDate = try container.decodeIfPresent(Date.self, forKey: .lastItemDate)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if listItemCount != nil { try container.encode(listItemCount, forKey: .listItemCount) }
if lastItemDate != nil { try container.encode(lastItemDate, forKey: .lastItemDate) }
}
}
// @DataContract
public class HierarchicalContentViewModelBase : ContentViewModelBase
{
// @DataMember
public var url:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case url
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
url = try container.decodeIfPresent(String.self, forKey: .url)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if url != nil { try container.encode(url, forKey: .url) }
}
}
// @DataContract
public class ContentViewModelBase : ILocalizable, Codable
{
// @DataMember
public var parentUrl:String
// @DataMember
public var isEditable:Bool
// @DataMember
public var isDeletable:Bool
// @DataMember
public var isUnlockable:Bool
// @DataMember
public var uiStatus:String
// @DataMember
public var additionalStatus:Status
// @DataMember
public var itemsCount:Int
// @DataMember
public var id:String
// @DataMember
public var liveContentId:String?
// @DataMember
public var title:String
// @DataMember
public var owner:String
// @DataMember
public var author:String
// @DataMember
public var dateCreated:Date
// @DataMember
public var dateModified:Date
// @DataMember
public var publicationDate:Date
// @DataMember
public var providerName:String
// @DataMember
public var expirationDate:Date
// @DataMember
public var status:String
// @DataMember
public var commentsCount:Int
// @DataMember
public var lifecycleStatus:WcfContentLifecycleStatus
// @DataMember
public var workflowOperations:IList<WorkflowVisualElement>
// @DataMember
public var versionInfo:WcfChange
// @DataMember
public var defaultPageId:String?
// @DataMember
public var lastApprovalTrackingRecord:WcfApprovalTrackingRecord
// @DataMember
public var version:Int
// @DataMember
public var availableLanguages:[String] = []
required public init(){}
}
// @DataContract
public class Status : Codable
{
// @DataMember
public var text:String
// @DataMember
public var primaryProvider:String
required public init(){}
}
// @DataContract
public class WcfContentLifecycleStatus : Codable
{
// @DataMember
public var isPublished:Bool
// @DataMember
public var message:String
// @DataMember
public var lockedByUsername:String
// @DataMember
public var isAdmin:Bool
// @DataMember
public var isLocked:Bool
// @DataMember
public var isLockedByMe:Bool
// @DataMember
public var supportsContentLifecycle:Bool
// @DataMember
public var errorMessage:String
// @DataMember
public var lockedSince:Date?
// @DataMember
public var lastModified:Date?
// @DataMember
public var lastModifiedBy:String
// @DataMember
public var publicationDate:Date?
// @DataMember
public var workflowStatus:String
// @DataMember
public var hasLiveVersion:Bool
required public init(){}
}
// @DataContract
public class WorkflowVisualElement : Codable
{
// @DataMember
public var title:String
// @DataMember
public var operationName:String
// @DataMember
public var argumentDialogName:String
// @DataMember
public var visualType:WorkflowVisualType
// @DataMember
public var decisionType:String
// @DataMember
public var persistOnDecision:Bool
// @DataMember
public var closesForm:Bool
// @DataMember
public var contentCommandName:String
// @DataMember
public var cssClass:String
// @DataMember
public var ordinal:Int
// @DataMember
public var warningMessage:String
// @DataMember
public var runAsUICommand:Bool
// @DataMember
public var parameters:Hashtable
required public init(){}
}
public enum WorkflowVisualType : String, Codable
{
case Button
case Link
case Label
}
// @DataContract
public class WcfChange : WcfItemBase
{
// @DataMember
public var id:String
// @DataMember
public var nextVersionNumber:Int
// @DataMember
public var prevVersionNumber:Int
// @DataMember
public var itemId:String
// @DataMember
public var versionNumber:Int
// @DataMember
public var version:String
// @DataMember
public var owner:String
// @DataMember
public var comment:String
// @DataMember
public var label:String
// @DataMember
public var changeType:String
// @DataMember
public var isPublishedVersion:Bool
// @DataMember
public var isLastPublishedVersion:Bool
// @DataMember
public var changeDescription:String
// @DataMember
public var lastModified:Date
// @DataMember
public var dateCreated:Date
// @DataMember
public var createdByUserName:String
// @DataMember
public var previousId:String
// @DataMember
public var nextId:String
// @DataMember
public var metadata:String
// @DataMember
public var additionalInfo:String
// @DataMember
public var culture:String
// @DataMember
public var availableLanguages:IList<String>
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case id
case nextVersionNumber
case prevVersionNumber
case itemId
case versionNumber
case version
case owner
case comment
case label
case changeType
case isPublishedVersion
case isLastPublishedVersion
case changeDescription
case lastModified
case dateCreated
case createdByUserName
case previousId
case nextId
case metadata
case additionalInfo
case culture
case availableLanguages
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
id = try container.decodeIfPresent(String.self, forKey: .id)
nextVersionNumber = try container.decodeIfPresent(Int.self, forKey: .nextVersionNumber)
prevVersionNumber = try container.decodeIfPresent(Int.self, forKey: .prevVersionNumber)
itemId = try container.decodeIfPresent(String.self, forKey: .itemId)
versionNumber = try container.decodeIfPresent(Int.self, forKey: .versionNumber)
version = try container.decodeIfPresent(String.self, forKey: .version)
owner = try container.decodeIfPresent(String.self, forKey: .owner)
comment = try container.decodeIfPresent(String.self, forKey: .comment)
label = try container.decodeIfPresent(String.self, forKey: .label)
changeType = try container.decodeIfPresent(String.self, forKey: .changeType)
isPublishedVersion = try container.decodeIfPresent(Bool.self, forKey: .isPublishedVersion)
isLastPublishedVersion = try container.decodeIfPresent(Bool.self, forKey: .isLastPublishedVersion)
changeDescription = try container.decodeIfPresent(String.self, forKey: .changeDescription)
lastModified = try container.decodeIfPresent(Date.self, forKey: .lastModified)
dateCreated = try container.decodeIfPresent(Date.self, forKey: .dateCreated)
createdByUserName = try container.decodeIfPresent(String.self, forKey: .createdByUserName)
previousId = try container.decodeIfPresent(String.self, forKey: .previousId)
nextId = try container.decodeIfPresent(String.self, forKey: .nextId)
metadata = try container.decodeIfPresent(String.self, forKey: .metadata)
additionalInfo = try container.decodeIfPresent(String.self, forKey: .additionalInfo)
culture = try container.decodeIfPresent(String.self, forKey: .culture)
availableLanguages = try container.decodeIfPresent(IList<String>.self, forKey: .availableLanguages)
}
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 nextVersionNumber != nil { try container.encode(nextVersionNumber, forKey: .nextVersionNumber) }
if prevVersionNumber != nil { try container.encode(prevVersionNumber, forKey: .prevVersionNumber) }
if itemId != nil { try container.encode(itemId, forKey: .itemId) }
if versionNumber != nil { try container.encode(versionNumber, forKey: .versionNumber) }
if version != nil { try container.encode(version, forKey: .version) }
if owner != nil { try container.encode(owner, forKey: .owner) }
if comment != nil { try container.encode(comment, forKey: .comment) }
if label != nil { try container.encode(label, forKey: .label) }
if changeType != nil { try container.encode(changeType, forKey: .changeType) }
if isPublishedVersion != nil { try container.encode(isPublishedVersion, forKey: .isPublishedVersion) }
if isLastPublishedVersion != nil { try container.encode(isLastPublishedVersion, forKey: .isLastPublishedVersion) }
if changeDescription != nil { try container.encode(changeDescription, forKey: .changeDescription) }
if lastModified != nil { try container.encode(lastModified, forKey: .lastModified) }
if dateCreated != nil { try container.encode(dateCreated, forKey: .dateCreated) }
if createdByUserName != nil { try container.encode(createdByUserName, forKey: .createdByUserName) }
if previousId != nil { try container.encode(previousId, forKey: .previousId) }
if nextId != nil { try container.encode(nextId, forKey: .nextId) }
if metadata != nil { try container.encode(metadata, forKey: .metadata) }
if additionalInfo != nil { try container.encode(additionalInfo, forKey: .additionalInfo) }
if culture != nil { try container.encode(culture, forKey: .culture) }
if availableLanguages != nil { try container.encode(availableLanguages, forKey: .availableLanguages) }
}
}
// @DataContract
public class WcfItemBase : Codable
{
required public init(){}
}
// @DataContract
public class WcfApprovalTrackingRecord : Codable
{
// @DataMember
public var dateCreated:Date
// @DataMember
public var note:String
// @DataMember
public var status:String
// @DataMember
public var uiStatus:String
// @DataMember
public var userName:String
required public init(){}
}
Swift SpecificListsGetRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
PUT /RestApi/lists-api/items HTTP/1.1
Host: www.asg.com.au
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"Ids":["00000000-0000-0000-0000-000000000000"],"Provider":"String"}
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"TotalCount":0,"IsGeneric":false,"Items":[]}