ASH.ResourceLibrary.WebApi

<back to all web services

ResourceItemsRequest

Requires Authentication
The following routes are available for this service:
GET,POST/resourceItemsUse to get a list Resource Items
import 'package:servicestack/servicestack.dart';

class BasicResourceLibraryRequest implements IConvertible
{
    int? resourceLibraryMemberId;

    BasicResourceLibraryRequest({this.resourceLibraryMemberId});
    BasicResourceLibraryRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        resourceLibraryMemberId = json['resourceLibraryMemberId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'resourceLibraryMemberId': resourceLibraryMemberId
    };

    getTypeName() => "BasicResourceLibraryRequest";
    TypeContext? context = _ctx;
}

class Tag implements IConvertible
{
    String? id;
    String? title;

    Tag({this.id,this.title});
    Tag.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        title = json['title'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'title': title
    };

    getTypeName() => "Tag";
    TypeContext? context = _ctx;
}

class ScreenshotItem implements IConvertible
{
    String? largeFilepathS3;
    String? thumbFilepathS3;
    double? order;
    String? description;

    ScreenshotItem({this.largeFilepathS3,this.thumbFilepathS3,this.order,this.description});
    ScreenshotItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        largeFilepathS3 = json['largeFilepathS3'];
        thumbFilepathS3 = json['thumbFilepathS3'];
        order = JsonConverters.toDouble(json['order']);
        description = json['description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'largeFilepathS3': largeFilepathS3,
        'thumbFilepathS3': thumbFilepathS3,
        'order': order,
        'description': description
    };

    getTypeName() => "ScreenshotItem";
    TypeContext? context = _ctx;
}

class ResourceCard implements IConvertible
{
    String? id;
    String? title;
    String? description;
    String? descriptionSummary;
    String? type;
    String? content;
    bool? isComplete;
    bool? isFavorite;
    bool? isImplicitlyComplete;
    String? mediaPath;
    bool? isConfirmable;
    bool? isWcagCompliant;
    String? duration;
    String? preview;
    int? calories;
    String? instructor;
    String? thumbnail;
    String? difficulty;
    List<Tag>? tags;
    String? subtitles;
    List<ScreenshotItem>? screenshots;
    bool? drmEncrypted;

    ResourceCard({this.id,this.title,this.description,this.descriptionSummary,this.type,this.content,this.isComplete,this.isFavorite,this.isImplicitlyComplete,this.mediaPath,this.isConfirmable,this.isWcagCompliant,this.duration,this.preview,this.calories,this.instructor,this.thumbnail,this.difficulty,this.tags,this.subtitles,this.screenshots,this.drmEncrypted});
    ResourceCard.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        title = json['title'];
        description = json['description'];
        descriptionSummary = json['descriptionSummary'];
        type = json['type'];
        content = json['content'];
        isComplete = json['isComplete'];
        isFavorite = json['isFavorite'];
        isImplicitlyComplete = json['isImplicitlyComplete'];
        mediaPath = json['mediaPath'];
        isConfirmable = json['isConfirmable'];
        isWcagCompliant = json['isWcagCompliant'];
        duration = json['duration'];
        preview = json['preview'];
        calories = json['calories'];
        instructor = json['instructor'];
        thumbnail = json['thumbnail'];
        difficulty = json['difficulty'];
        tags = JsonConverters.fromJson(json['tags'],'List<Tag>',context!);
        subtitles = json['subtitles'];
        screenshots = JsonConverters.fromJson(json['screenshots'],'List<ScreenshotItem>',context!);
        drmEncrypted = json['drmEncrypted'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'title': title,
        'description': description,
        'descriptionSummary': descriptionSummary,
        'type': type,
        'content': content,
        'isComplete': isComplete,
        'isFavorite': isFavorite,
        'isImplicitlyComplete': isImplicitlyComplete,
        'mediaPath': mediaPath,
        'isConfirmable': isConfirmable,
        'isWcagCompliant': isWcagCompliant,
        'duration': duration,
        'preview': preview,
        'calories': calories,
        'instructor': instructor,
        'thumbnail': thumbnail,
        'difficulty': difficulty,
        'tags': JsonConverters.toJson(tags,'List<Tag>',context!),
        'subtitles': subtitles,
        'screenshots': JsonConverters.toJson(screenshots,'List<ScreenshotItem>',context!),
        'drmEncrypted': drmEncrypted
    };

    getTypeName() => "ResourceCard";
    TypeContext? context = _ctx;
}

class SubTopic implements IConvertible
{
    String? id;
    String? title;
    int? resourceCount;
    List<ResourceItem>? resourceItems;

    SubTopic({this.id,this.title,this.resourceCount,this.resourceItems});
    SubTopic.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        title = json['title'];
        resourceCount = json['resourceCount'];
        resourceItems = JsonConverters.fromJson(json['resourceItems'],'List<ResourceItem>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'title': title,
        'resourceCount': resourceCount,
        'resourceItems': JsonConverters.toJson(resourceItems,'List<ResourceItem>',context!)
    };

    getTypeName() => "SubTopic";
    TypeContext? context = _ctx;
}

class Category implements IConvertible
{
    String? id;
    List<SubTopic>? subtopicItems;
    List<ResourceItem>? resourceItems;
    String? title;
    String? isVisible;
    int? resourceCount;

    Category({this.id,this.subtopicItems,this.resourceItems,this.title,this.isVisible,this.resourceCount});
    Category.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        subtopicItems = JsonConverters.fromJson(json['subtopicItems'],'List<SubTopic>',context!);
        resourceItems = JsonConverters.fromJson(json['resourceItems'],'List<ResourceItem>',context!);
        title = json['title'];
        isVisible = json['isVisible'];
        resourceCount = json['resourceCount'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'subtopicItems': JsonConverters.toJson(subtopicItems,'List<SubTopic>',context!),
        'resourceItems': JsonConverters.toJson(resourceItems,'List<ResourceItem>',context!),
        'title': title,
        'isVisible': isVisible,
        'resourceCount': resourceCount
    };

    getTypeName() => "Category";
    TypeContext? context = _ctx;
}

class ActivityItem implements IConvertible
{
    String? name;
    String? id;

    ActivityItem({this.name,this.id});
    ActivityItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        name = json['name'];
        id = json['id'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'name': name,
        'id': id
    };

    getTypeName() => "ActivityItem";
    TypeContext? context = _ctx;
}

class SeriesItem implements IConvertible
{
    String? id;
    String? title;

    SeriesItem({this.id,this.title});
    SeriesItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        title = json['title'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'title': title
    };

    getTypeName() => "SeriesItem";
    TypeContext? context = _ctx;
}

class AltMediaPaths implements IConvertible
{
    String? webm;
    String? ogv;
    String? mp4Low;
    String? mp4High;

    AltMediaPaths({this.webm,this.ogv,this.mp4Low,this.mp4High});
    AltMediaPaths.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        webm = json['webm'];
        ogv = json['ogv'];
        mp4Low = json['mp4Low'];
        mp4High = json['mp4High'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'webm': webm,
        'ogv': ogv,
        'mp4Low': mp4Low,
        'mp4High': mp4High
    };

    getTypeName() => "AltMediaPaths";
    TypeContext? context = _ctx;
}

class ResourceItem extends ResourceCard implements IConvertible
{
    String? content;
    String? credit;
    String? references;
    String? disclaimer;
    String? headerImage;
    String? origin;
    String? originId;
    List<Tag>? tags;
    List<Category>? categories;
    int? index;
    String? activityLevel;
    String? activityDetails;
    String? transcript;
    bool? isArchived;
    List<ActivityItem>? activities;
    List<SeriesItem>? seriesItems;
    String? videoId;
    String? focus;
    String? series;
    String? seriesUrl;
    String? category;
    List<String>? equipments;
    String? durationRange;
    String? providerName;
    String? uploadDate;
    DateTime? completionDate;
    String? level;
    String? bodyFocus;
    AltMediaPaths? altMediaPaths;
    String? subtitles;
    bool? drmEncrypted;
    List<ScreenshotItem>? screenshots;

    ResourceItem({this.content,this.credit,this.references,this.disclaimer,this.headerImage,this.origin,this.originId,this.tags,this.categories,this.index,this.activityLevel,this.activityDetails,this.transcript,this.isArchived,this.activities,this.seriesItems,this.videoId,this.focus,this.series,this.seriesUrl,this.category,this.equipments,this.durationRange,this.providerName,this.uploadDate,this.completionDate,this.level,this.bodyFocus,this.altMediaPaths,this.subtitles,this.drmEncrypted,this.screenshots});
    ResourceItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        content = json['content'];
        credit = json['credit'];
        references = json['references'];
        disclaimer = json['disclaimer'];
        headerImage = json['headerImage'];
        origin = json['origin'];
        originId = json['originId'];
        tags = JsonConverters.fromJson(json['tags'],'List<Tag>',context!);
        categories = JsonConverters.fromJson(json['categories'],'List<Category>',context!);
        index = json['index'];
        activityLevel = json['activityLevel'];
        activityDetails = json['activityDetails'];
        transcript = json['transcript'];
        isArchived = json['isArchived'];
        activities = JsonConverters.fromJson(json['activities'],'List<ActivityItem>',context!);
        seriesItems = JsonConverters.fromJson(json['seriesItems'],'List<SeriesItem>',context!);
        videoId = json['videoId'];
        focus = json['focus'];
        series = json['series'];
        seriesUrl = json['seriesUrl'];
        category = json['category'];
        equipments = JsonConverters.fromJson(json['equipments'],'List<String>',context!);
        durationRange = json['durationRange'];
        providerName = json['providerName'];
        uploadDate = json['uploadDate'];
        completionDate = JsonConverters.fromJson(json['completionDate'],'DateTime',context!);
        level = json['level'];
        bodyFocus = json['bodyFocus'];
        altMediaPaths = JsonConverters.fromJson(json['altMediaPaths'],'AltMediaPaths',context!);
        subtitles = json['subtitles'];
        drmEncrypted = json['drmEncrypted'];
        screenshots = JsonConverters.fromJson(json['screenshots'],'List<ScreenshotItem>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'content': content,
        'credit': credit,
        'references': references,
        'disclaimer': disclaimer,
        'headerImage': headerImage,
        'origin': origin,
        'originId': originId,
        'tags': JsonConverters.toJson(tags,'List<Tag>',context!),
        'categories': JsonConverters.toJson(categories,'List<Category>',context!),
        'index': index,
        'activityLevel': activityLevel,
        'activityDetails': activityDetails,
        'transcript': transcript,
        'isArchived': isArchived,
        'activities': JsonConverters.toJson(activities,'List<ActivityItem>',context!),
        'seriesItems': JsonConverters.toJson(seriesItems,'List<SeriesItem>',context!),
        'videoId': videoId,
        'focus': focus,
        'series': series,
        'seriesUrl': seriesUrl,
        'category': category,
        'equipments': JsonConverters.toJson(equipments,'List<String>',context!),
        'durationRange': durationRange,
        'providerName': providerName,
        'uploadDate': uploadDate,
        'completionDate': JsonConverters.toJson(completionDate,'DateTime',context!),
        'level': level,
        'bodyFocus': bodyFocus,
        'altMediaPaths': JsonConverters.toJson(altMediaPaths,'AltMediaPaths',context!),
        'subtitles': subtitles,
        'drmEncrypted': drmEncrypted,
        'screenshots': JsonConverters.toJson(screenshots,'List<ScreenshotItem>',context!)
    });

    getTypeName() => "ResourceItem";
    TypeContext? context = _ctx;
}

class ResourceItemsResponse implements IResourceItemsLiteResponse, IConvertible
{
    List<ResourceItem>? resourceItems;

    ResourceItemsResponse({this.resourceItems});
    ResourceItemsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        resourceItems = JsonConverters.fromJson(json['resourceItems'],'List<ResourceItem>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'resourceItems': JsonConverters.toJson(resourceItems,'List<ResourceItem>',context!)
    };

    getTypeName() => "ResourceItemsResponse";
    TypeContext? context = _ctx;
}

class ResourceItemsRequest extends BasicResourceLibraryRequest implements IConvertible
{
    bool? includeCompletionStatus;
    bool? includeContent;
    bool? isFavorite;
    bool? isDigitalWorkoutFeatured;
    bool? multipleDWFeaturedResources;
    String? workoutCategoryId;
    List<String>? resourceItemIds;
    /**
    * Set it to true if requesting resources only from digital library
    */
    // @ApiMember(Description="Set it to true if requesting resources only from digital library")
    bool? digitalFitness;

    /**
    * Set it to true if requesting resources only from health library
    */
    // @ApiMember(Description="Set it to true if requesting resources only from health library")
    bool? healthLibrary;

    String? limit;
    String? offset;

    ResourceItemsRequest({this.includeCompletionStatus,this.includeContent,this.isFavorite,this.isDigitalWorkoutFeatured,this.multipleDWFeaturedResources,this.workoutCategoryId,this.resourceItemIds,this.digitalFitness,this.healthLibrary,this.limit,this.offset});
    ResourceItemsRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        includeCompletionStatus = json['includeCompletionStatus'];
        includeContent = json['includeContent'];
        isFavorite = json['isFavorite'];
        isDigitalWorkoutFeatured = json['isDigitalWorkoutFeatured'];
        multipleDWFeaturedResources = json['multipleDWFeaturedResources'];
        workoutCategoryId = json['workoutCategoryId'];
        resourceItemIds = JsonConverters.fromJson(json['resourceItemIds'],'List<String>',context!);
        digitalFitness = json['digitalFitness'];
        healthLibrary = json['healthLibrary'];
        limit = json['limit'];
        offset = json['offset'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'includeCompletionStatus': includeCompletionStatus,
        'includeContent': includeContent,
        'isFavorite': isFavorite,
        'isDigitalWorkoutFeatured': isDigitalWorkoutFeatured,
        'multipleDWFeaturedResources': multipleDWFeaturedResources,
        'workoutCategoryId': workoutCategoryId,
        'resourceItemIds': JsonConverters.toJson(resourceItemIds,'List<String>',context!),
        'digitalFitness': digitalFitness,
        'healthLibrary': healthLibrary,
        'limit': limit,
        'offset': offset
    });

    getTypeName() => "ResourceItemsRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'resourcelibrary.api.ashcompanies.com', types: <String, TypeInfo> {
    'BasicResourceLibraryRequest': TypeInfo(TypeOf.Class, create:() => BasicResourceLibraryRequest()),
    'Tag': TypeInfo(TypeOf.Class, create:() => Tag()),
    'ScreenshotItem': TypeInfo(TypeOf.Class, create:() => ScreenshotItem()),
    'ResourceCard': TypeInfo(TypeOf.Class, create:() => ResourceCard()),
    'List<Tag>': TypeInfo(TypeOf.Class, create:() => <Tag>[]),
    'List<ScreenshotItem>': TypeInfo(TypeOf.Class, create:() => <ScreenshotItem>[]),
    'SubTopic': TypeInfo(TypeOf.Class, create:() => SubTopic()),
    'List<ResourceItem>': TypeInfo(TypeOf.Class, create:() => <ResourceItem>[]),
    'ResourceItem': TypeInfo(TypeOf.Class, create:() => ResourceItem()),
    'Category': TypeInfo(TypeOf.Class, create:() => Category()),
    'List<SubTopic>': TypeInfo(TypeOf.Class, create:() => <SubTopic>[]),
    'ActivityItem': TypeInfo(TypeOf.Class, create:() => ActivityItem()),
    'SeriesItem': TypeInfo(TypeOf.Class, create:() => SeriesItem()),
    'AltMediaPaths': TypeInfo(TypeOf.Class, create:() => AltMediaPaths()),
    'List<Category>': TypeInfo(TypeOf.Class, create:() => <Category>[]),
    'List<ActivityItem>': TypeInfo(TypeOf.Class, create:() => <ActivityItem>[]),
    'List<SeriesItem>': TypeInfo(TypeOf.Class, create:() => <SeriesItem>[]),
    'ResourceItemsResponse': TypeInfo(TypeOf.Class, create:() => ResourceItemsResponse()),
    'ResourceItemsRequest': TypeInfo(TypeOf.Class, create:() => ResourceItemsRequest()),
});

Dart ResourceItemsRequest DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /resourceItems HTTP/1.1 
Host: resourcelibrary.api.ashcompanies.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"includeCompletionStatus":false,"includeContent":false,"isFavorite":false,"isDigitalWorkoutFeatured":false,"multipleDWFeaturedResources":false,"workoutCategoryId":"String","resourceItemIds":["String"],"digitalFitness":false,"healthLibrary":false,"limit":"String","offset":"String","resourceLibraryMemberId":0}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"resourceItems":[{"content":"String","credit":"String","references":"String","disclaimer":"String","headerImage":"String","origin":"String","originId":"String","tags":[{"id":"String","title":"String"}],"categories":[{"id":"String","subtopicItems":null,"resourceItems":null,"title":"String","isVisible":"String","resourceCount":0}],"index":0,"activityLevel":"String","activityDetails":"String","transcript":"String","isArchived":false,"activities":[{"name":"String","id":"String"}],"seriesItems":[{"id":"String","title":"String"}],"videoId":"String","focus":"String","series":"String","seriesUrl":"String","category":"String","equipments":["String"],"durationRange":"String","providerName":"String","uploadDate":"String","completionDate":"0001-01-01T00:00:00.0000000","level":"String","bodyFocus":"String","altMediaPaths":{"webm":"String","ogv":"String","mp4Low":"String","mp4High":"String"},"subtitles":"String","drmEncrypted":false,"screenshots":[{"largeFilepathS3":"String","thumbFilepathS3":"String","order":0,"description":"String"}],"id":"String","title":"String","description":"String","descriptionSummary":"String","type":"String","isComplete":false,"isFavorite":false,"isImplicitlyComplete":false,"mediaPath":"String","isConfirmable":false,"isWcagCompliant":false,"duration":"String","preview":"String","calories":0,"instructor":"String","thumbnail":"String","difficulty":"String"}]}