Platform API

<back to all web services

GetObjectReads

Get reads (object access) for the specified object.

Requires Authentication
The following routes are available for this service:
GET/api/object/{ObjectId}/reads
import 'package:servicestack/servicestack.dart';

class ObjectAccessModel implements IConvertible
{
    /**
    * Object Access Read Id.
    */
    // @ApiMember(Description="Object Access Read Id.", Name="ObjectReadId")
    String? ObjectReadId;

    /**
    * Object Id viewing the specified Object.
    */
    // @ApiMember(Description="Object Id viewing the specified Object.", IsRequired=true, Name="ViewingObjectId")
    String? ViewingObjectId;

    /**
    * Name of the object viewing the specified Object.
    */
    // @ApiMember(Description="Name of the object viewing the specified Object.", Name="ViewingObjectName")
    String? ViewingObjectName;

    /**
    * Name of the object viewing the specified Object.
    */
    // @ApiMember(Description="Name of the object viewing the specified Object.", Name="ViewingObjectPrimaryImageUrl")
    String? ViewingObjectPrimaryImageUrl;

    /**
    * Id of the object being viewed.
    */
    // @ApiMember(Description="Id of the object being viewed.", IsRequired=true, Name="ViewedObjectId")
    String? ViewedObjectId;

    /**
    * Name of the object being viewed.
    */
    // @ApiMember(Description="Name of the object being viewed.", Name="ViewedObjectName")
    String? ViewedObjectName;

    /**
    * Date and Time of object read
    */
    // @ApiMember(Description="Date and Time of object read", Name="TimeRead")
    DateTime? TimeRead;

    /**
    * Date and Time object started watching the specified object.
    */
    // @ApiMember(Description="Date and Time object started watching the specified object.", Name="TimeStartWatching")
    DateTime? TimeStartWatching;

    /**
    * Date and Time of object being flagged.
    */
    // @ApiMember(Description="Date and Time of object being flagged.", Name="Flagged")
    DateTime? Flagged;

    ObjectAccessModel({this.ObjectReadId,this.ViewingObjectId,this.ViewingObjectName,this.ViewingObjectPrimaryImageUrl,this.ViewedObjectId,this.ViewedObjectName,this.TimeRead,this.TimeStartWatching,this.Flagged});
    ObjectAccessModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ObjectReadId = json['ObjectReadId'];
        ViewingObjectId = json['ViewingObjectId'];
        ViewingObjectName = json['ViewingObjectName'];
        ViewingObjectPrimaryImageUrl = json['ViewingObjectPrimaryImageUrl'];
        ViewedObjectId = json['ViewedObjectId'];
        ViewedObjectName = json['ViewedObjectName'];
        TimeRead = JsonConverters.fromJson(json['TimeRead'],'DateTime',context!);
        TimeStartWatching = JsonConverters.fromJson(json['TimeStartWatching'],'DateTime',context!);
        Flagged = JsonConverters.fromJson(json['Flagged'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ObjectReadId': ObjectReadId,
        'ViewingObjectId': ViewingObjectId,
        'ViewingObjectName': ViewingObjectName,
        'ViewingObjectPrimaryImageUrl': ViewingObjectPrimaryImageUrl,
        'ViewedObjectId': ViewedObjectId,
        'ViewedObjectName': ViewedObjectName,
        'TimeRead': JsonConverters.toJson(TimeRead,'DateTime',context!),
        'TimeStartWatching': JsonConverters.toJson(TimeStartWatching,'DateTime',context!),
        'Flagged': JsonConverters.toJson(Flagged,'DateTime',context!)
    };

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

// @ApiResponse(Description="Returns the reads (object access) to the specified object.")
class GetObjectReadsResponse implements IConvertible
{
    List<ObjectAccessModel>? ObjectReads;
    ResponseStatus? ResponseStatus;

    GetObjectReadsResponse({this.ObjectReads,this.ResponseStatus});
    GetObjectReadsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

/**
* Get reads (object access) for the specified object.
*/
// @Api(Description="Get reads (object access) for the specified object.")
class GetObjectReads implements IConvertible
{
    /**
    * Object Id to get object access reads for
    */
    // @ApiMember(DataType="Guid", Description="Object Id to get object access reads for", IsRequired=true, Name="ObjectId")
    String? ObjectId;

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

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

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

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

TypeContext _ctx = TypeContext(library: 'pfapi.pstpf.com.au', types: <String, TypeInfo> {
    'ObjectAccessModel': TypeInfo(TypeOf.Class, create:() => ObjectAccessModel()),
    'GetObjectReadsResponse': TypeInfo(TypeOf.Class, create:() => GetObjectReadsResponse()),
    'List<ObjectAccessModel>': TypeInfo(TypeOf.Class, create:() => <ObjectAccessModel>[]),
    'GetObjectReads': TypeInfo(TypeOf.Class, create:() => GetObjectReads()),
});

Dart GetObjectReads DTOs

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

HTTP + JSV

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

GET /api/object/{ObjectId}/reads HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ObjectReads: 
	[
		{
			ViewingObjectName: String,
			ViewingObjectPrimaryImageUrl: String,
			ViewedObjectName: String,
			TimeRead: 0001-01-01,
			TimeStartWatching: 0001-01-01,
			Flagged: 0001-01-01
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}