Platform API

<back to all web services

GetRelatedItems

Get related items related to the specified object.

Requires Authentication
The following routes are available for this service:
All Verbs/api/relateditems/{ObjectId}
import 'package:servicestack/servicestack.dart';

enum SortOrder
{
    Ascending,
    Descending,
}

class PagedModel implements IConvertible
{
    /**
    * Page Number to retrieve
    */
    // @ApiMember(DataType="int", Description="Page Number to retrieve", Name="PageNumber")
    int? PageNumber;

    /**
    * Number of records to retrieve
    */
    // @ApiMember(DataType="int", Description="Number of records to retrieve", Name="PageSize")
    int? PageSize;

    /**
    * Index of field to sort results by
    */
    // @ApiMember(DataType="int", Description="Index of field to sort results by", Name="SortIndex")
    int? SortIndex;

    /**
    * Sort Order - Ascending or Descending
    */
    // @ApiMember(DataType="int", Description="Sort Order - Ascending or Descending", Name="SortOrder")
    SortOrder? SortOrder;

    PagedModel({this.PageNumber,this.PageSize,this.SortIndex,this.SortOrder});
    PagedModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PageNumber = json['PageNumber'];
        PageSize = json['PageSize'];
        SortIndex = json['SortIndex'];
        SortOrder = JsonConverters.fromJson(json['SortOrder'],'SortOrder',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PageNumber': PageNumber,
        'PageSize': PageSize,
        'SortIndex': SortIndex,
        'SortOrder': JsonConverters.toJson(SortOrder,'SortOrder',context!)
    };

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

class RelatedItemsModel implements IConvertible
{
    /**
    * Object linked to the related item.
    */
    // @ApiMember(DataType="Guid", Description="Object linked to the related item.", IsRequired=true, Name="ObjectId")
    String? ObjectId;

    /**
    * Related item name.
    */
    // @ApiMember(DataType="string", Description="Related item name.", Name="RelatedItemName")
    String? RelatedItemName;

    /**
    * Related item type.
    */
    // @ApiMember(DataType="string", Description="Related item type.", Name="RelatedItemType")
    String? RelatedItemType;

    /**
    * Date of creation of the related item.
    */
    // @ApiMember(DataType="DateTime", Description="Date of creation of the related item.", IsRequired=true, Name="CreatedAt")
    DateTime? CreatedAt;

    /**
    * Contact who created the related item
    */
    // @ApiMember(DataType="string", Description="Contact who created the related item", Name="CreatedByName")
    String? CreatedByName;

    /**
    * Contact who created the related item
    */
    // @ApiMember(DataType="Guid", Description="Contact who created the related item", Name="CreatedById")
    String? CreatedById;

    /**
    * Profile photo of the contact who created the related item
    */
    // @ApiMember(DataType="string", Description="Profile photo of the contact who created the related item", Name="CreatedByThumbnailUrl")
    String? CreatedByThumbnailUrl;

    /**
    * Relationship between objects linked to the related item
    */
    // @ApiMember(DataType="string", Description="Relationship between objects linked to the related item", Name="Relationship")
    String? Relationship;

    /**
    * Is the related item significant?
    */
    // @ApiMember(DataType="bool", Description="Is the related item significant?", IsRequired=true, Name="IsSignificant")
    bool? IsSignificant;

    RelatedItemsModel({this.ObjectId,this.RelatedItemName,this.RelatedItemType,this.CreatedAt,this.CreatedByName,this.CreatedById,this.CreatedByThumbnailUrl,this.Relationship,this.IsSignificant});
    RelatedItemsModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ObjectId = json['ObjectId'];
        RelatedItemName = json['RelatedItemName'];
        RelatedItemType = json['RelatedItemType'];
        CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
        CreatedByName = json['CreatedByName'];
        CreatedById = json['CreatedById'];
        CreatedByThumbnailUrl = json['CreatedByThumbnailUrl'];
        Relationship = json['Relationship'];
        IsSignificant = json['IsSignificant'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ObjectId': ObjectId,
        'RelatedItemName': RelatedItemName,
        'RelatedItemType': RelatedItemType,
        'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!),
        'CreatedByName': CreatedByName,
        'CreatedById': CreatedById,
        'CreatedByThumbnailUrl': CreatedByThumbnailUrl,
        'Relationship': Relationship,
        'IsSignificant': IsSignificant
    };

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

// @ApiResponse(Description="Items related to the object.")
class GetRelatedItemsResponse implements IConvertible
{
    List<RelatedItemsModel>? RelatedItems;
    int? TotalRelatedItems;
    ResponseStatus? ResponseStatus;

    GetRelatedItemsResponse({this.RelatedItems,this.TotalRelatedItems,this.ResponseStatus});
    GetRelatedItemsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'RelatedItems': JsonConverters.toJson(RelatedItems,'List<RelatedItemsModel>',context!),
        'TotalRelatedItems': TotalRelatedItems,
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
    };

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

/**
* Get related items related to the specified object.
*/
// @Api(Description="Get related items related to the specified object.")
class GetRelatedItems extends PagedModel implements IConvertible
{
    /**
    * Object to get related items for.
    */
    // @ApiMember(Description="Object to get related items for.", IsRequired=true, Name="ObjectId")
    String? ObjectId;

    /**
    * Significant Only or All
    */
    // @ApiMember(Description="Significant Only or All", IsRequired=true, Name="RelatedItemsLevel")
    String? RelatedItemsLevel;

    /**
    * Return all connections or paged results?
    */
    // @ApiMember(Description="Return all connections or paged results?", Name="IsPagedMode")
    bool? IsPagedMode;

    GetRelatedItems({this.ObjectId,this.RelatedItemsLevel,this.IsPagedMode});
    GetRelatedItems.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        ObjectId = json['ObjectId'];
        RelatedItemsLevel = json['RelatedItemsLevel'];
        IsPagedMode = json['IsPagedMode'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'ObjectId': ObjectId,
        'RelatedItemsLevel': RelatedItemsLevel,
        'IsPagedMode': IsPagedMode
    });

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

TypeContext _ctx = TypeContext(library: 'pfapi.pstpf.com.au', types: <String, TypeInfo> {
    'SortOrder': TypeInfo(TypeOf.Enum, enumValues:SortOrder.values),
    'PagedModel': TypeInfo(TypeOf.Class, create:() => PagedModel()),
    'RelatedItemsModel': TypeInfo(TypeOf.Class, create:() => RelatedItemsModel()),
    'GetRelatedItemsResponse': TypeInfo(TypeOf.Class, create:() => GetRelatedItemsResponse()),
    'List<RelatedItemsModel>': TypeInfo(TypeOf.Class, create:() => <RelatedItemsModel>[]),
    'GetRelatedItems': TypeInfo(TypeOf.Class, create:() => GetRelatedItems()),
});

Dart GetRelatedItems 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 /api/relateditems/{ObjectId} HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"ObjectId":"00000000-0000-0000-0000-000000000000","RelatedItemsLevel":"00000000-0000-0000-0000-000000000000","IsPagedMode":false,"PageNumber":0,"PageSize":0,"SortIndex":0,"SortOrder":"Ascending"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"RelatedItems":[{"ObjectId":"00000000-0000-0000-0000-000000000000","RelatedItemName":"String","RelatedItemType":"String","CreatedAt":"0001-01-01T00:00:00.0000000","CreatedByName":"String","CreatedById":"00000000-0000-0000-0000-000000000000","CreatedByThumbnailUrl":"String","Relationship":"String","IsSignificant":false}],"TotalRelatedItems":0,"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}