ASH.ResourceLibrary.WebApi

<back to all web services

FavoritesRequest

Requires Authentication
The following routes are available for this service:
GET,POST/favoritesUse 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(){}
}


Swift FavoritesRequest DTOs

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

HTTP + 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>