GET,POST | /favorites | Use to get a list Resource Items |
---|
import Foundation
import ServiceStack
public class FavoritesRequest : BasicResourceLibraryRequest
{
/**
* Set it to true if requesting saved resources only from digital library
*/
// @ApiMember(Description="Set it to true if requesting saved resources only from digital library")
public var digitalFitness:Bool?
/**
* Set it to true if requesting saved resources only from health library
*/
// @ApiMember(Description="Set it to true if requesting saved resources only from health library")
public var healthLibrary:Bool?
/**
* Set it to true if requesting saved resources only from vptr
*/
// @ApiMember(Description="Set it to true if requesting saved resources only from vptr")
public var vptr:Bool?
/**
* Set it to true if requesting saved resources only from wellbeing
*/
// @ApiMember(Description="Set it to true if requesting saved resources only from wellbeing")
public var wellbeing:Bool?
/**
* Set it to true if requesting saved resources only from health
*/
// @ApiMember(Description="Set it to true if requesting saved resources only from health")
public var health:Bool?
public var limit:String?
public var offset:String?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case digitalFitness
case healthLibrary
case vptr
case wellbeing
case health
case limit
case offset
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
digitalFitness = try container.decodeIfPresent(Bool.self, forKey: .digitalFitness)
healthLibrary = try container.decodeIfPresent(Bool.self, forKey: .healthLibrary)
vptr = try container.decodeIfPresent(Bool.self, forKey: .vptr)
wellbeing = try container.decodeIfPresent(Bool.self, forKey: .wellbeing)
health = try container.decodeIfPresent(Bool.self, forKey: .health)
limit = try container.decodeIfPresent(String.self, forKey: .limit)
offset = try container.decodeIfPresent(String.self, forKey: .offset)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if digitalFitness != nil { try container.encode(digitalFitness, forKey: .digitalFitness) }
if healthLibrary != nil { try container.encode(healthLibrary, forKey: .healthLibrary) }
if vptr != nil { try container.encode(vptr, forKey: .vptr) }
if wellbeing != nil { try container.encode(wellbeing, forKey: .wellbeing) }
if health != nil { try container.encode(health, forKey: .health) }
if limit != nil { try container.encode(limit, forKey: .limit) }
if offset != nil { try container.encode(offset, forKey: .offset) }
}
}
public class BasicResourceLibraryRequest : Codable
{
public var resourceLibraryMemberId:Int?
required public init(){}
}
public class ResourceItemsLiteResponse : IResourceItemsLiteResponse, Codable
{
public var resourceItems:[ResourceCard] = []
public var meta:Meta?
required public init(){}
}
public class ResourceCard : Codable
{
public var id:String?
public var title:String?
public var Description:String?
public var descriptionSummary:String?
public var type:String?
public var content:String?
public var isComplete:Bool?
public var isFavorite:Bool?
public var isImplicitlyComplete:Bool?
public var mediaPath:String?
public var isConfirmable:Bool?
public var isWcagCompliant:Bool?
public var duration:String?
public var preview:String?
public var calories:Int?
public var instructor:String?
public var thumbnail:String?
public var difficulty:String?
public var tags:[Tag] = []
public var subtitles:String?
public var screenshots:[ScreenshotItem] = []
public var drmEncrypted:Bool?
required public init(){}
}
public class Tag : Codable
{
public var id:String?
public var title:String?
required public init(){}
}
public class ScreenshotItem : Codable
{
public var largeFilepathS3:String?
public var thumbFilepathS3:String?
public var order:Double?
public var Description:String?
required public init(){}
}
public class Meta : Codable
{
public var resourceCount:Int?
public var title:String?
required public init(){}
}
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 /favorites HTTP/1.1
Host: resourcelibrary.api.ashcompanies.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<FavoritesRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ASH.ResourceLibrary.Interfaces.ServiceModels">
<ResourceLibraryMemberId>0</ResourceLibraryMemberId>
<DigitalFitness>false</DigitalFitness>
<Health>false</Health>
<HealthLibrary>false</HealthLibrary>
<Limit>String</Limit>
<Offset>String</Offset>
<Vptr>false</Vptr>
<Wellbeing>false</Wellbeing>
</FavoritesRequest>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <ResourceItemsLiteResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ASH.ResourceLibrary.Interfaces.ServiceModels"> <Meta xmlns:d2p1="http://schemas.datacontract.org/2004/07/ASH.ResourceLibrary.Interfaces.Models"> <d2p1:ResourceCount>0</d2p1:ResourceCount> <d2p1:Title>String</d2p1:Title> </Meta> <ResourceItems xmlns:d2p1="http://schemas.datacontract.org/2004/07/ASH.ResourceLibrary.Interfaces.Models"> <d2p1:ResourceCard> <d2p1:Calories>0</d2p1:Calories> <d2p1:Content>String</d2p1:Content> <d2p1:Description>String</d2p1:Description> <d2p1:DescriptionSummary>String</d2p1:DescriptionSummary> <d2p1:Difficulty>String</d2p1:Difficulty> <d2p1:DrmEncrypted>false</d2p1:DrmEncrypted> <d2p1:Duration>String</d2p1:Duration> <d2p1:Id>String</d2p1:Id> <d2p1:Instructor>String</d2p1:Instructor> <d2p1:IsComplete>false</d2p1:IsComplete> <d2p1:IsConfirmable>false</d2p1:IsConfirmable> <d2p1:IsFavorite>false</d2p1:IsFavorite> <d2p1:IsImplicitlyComplete>false</d2p1:IsImplicitlyComplete> <d2p1:IsWcagCompliant>false</d2p1:IsWcagCompliant> <d2p1:MediaPath>String</d2p1:MediaPath> <d2p1:Preview>String</d2p1:Preview> <d2p1:Screenshots> <d2p1:ScreenshotItem> <d2p1:Description>String</d2p1:Description> <d2p1:LargeFilepathS3>String</d2p1:LargeFilepathS3> <d2p1:Order>0</d2p1:Order> <d2p1:ThumbFilepathS3>String</d2p1:ThumbFilepathS3> </d2p1:ScreenshotItem> </d2p1:Screenshots> <d2p1:Subtitles>String</d2p1:Subtitles> <d2p1:Tags> <d2p1:Tag> <d2p1:_x003C_Id_x003E_k__BackingField>String</d2p1:_x003C_Id_x003E_k__BackingField> <d2p1:_x003C_Title_x003E_k__BackingField>String</d2p1:_x003C_Title_x003E_k__BackingField> </d2p1:Tag> </d2p1:Tags> <d2p1:Thumbnail>String</d2p1:Thumbnail> <d2p1:Title>String</d2p1:Title> <d2p1:Type>String</d2p1:Type> </d2p1:ResourceCard> </ResourceItems> </ResourceItemsLiteResponse>