Cochrane+ App API

<back to all web services

MessageComment

Requires Authentication
The following routes are available for this service:
POST/notificationcentre/comment
import 'package:servicestack/servicestack.dart';

class ApiServiceRequest implements IServiceRequest, IHasApiKey, IHasDeviceInfo, IConvertible
{
    /**
    * The API Key required for authentication
    */
    // @ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)
    String? apiKey;

    /**
    * Latitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Latitude of the user making this request")
    double? latitude;

    /**
    * Longitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Longitude of the user making this request")
    double? longitude;

    ApiServiceRequest({this.apiKey,this.latitude,this.longitude});
    ApiServiceRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        apiKey = json['apiKey'];
        latitude = JsonConverters.toDouble(json['latitude']);
        longitude = JsonConverters.toDouble(json['longitude']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'apiKey': apiKey,
        'latitude': latitude,
        'longitude': longitude
    };

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

class ApiServiceResponse implements IServiceResponse, IConvertible
{
    String? description;
    String? heading;
    bool? wasSuccessful;
    dynamic? modelState;

    ApiServiceResponse({this.description,this.heading,this.wasSuccessful,this.modelState});
    ApiServiceResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        description = json['description'];
        heading = json['heading'];
        wasSuccessful = json['wasSuccessful'];
        modelState = JsonConverters.fromJson(json['modelState'],'dynamic',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'description': description,
        'heading': heading,
        'wasSuccessful': wasSuccessful,
        'modelState': JsonConverters.toJson(modelState,'dynamic',context!)
    };

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

class NotificationMessageAttachment implements IConvertible
{
    bool? isImage;
    bool? isPdf;
    bool? isWord;
    bool? isExcel;
    String? fileName;
    String? thumbnailUrl;
    String? fileUrl;

    NotificationMessageAttachment({this.isImage,this.isPdf,this.isWord,this.isExcel,this.fileName,this.thumbnailUrl,this.fileUrl});
    NotificationMessageAttachment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        isImage = json['isImage'];
        isPdf = json['isPdf'];
        isWord = json['isWord'];
        isExcel = json['isExcel'];
        fileName = json['fileName'];
        thumbnailUrl = json['thumbnailUrl'];
        fileUrl = json['fileUrl'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'isImage': isImage,
        'isPdf': isPdf,
        'isWord': isWord,
        'isExcel': isExcel,
        'fileName': fileName,
        'thumbnailUrl': thumbnailUrl,
        'fileUrl': fileUrl
    };

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

class NotificationMessageData implements IConvertible
{
    String? title;
    String? content;
    String? sentBy;
    int? systemUserMessageId;
    String? dateSent;
    String? comment;
    bool? hasComment;
    String? commentDate;
    bool? hasAttachments;
    List<NotificationMessageAttachment>? attachmentList;
    bool? hasRead;

    NotificationMessageData({this.title,this.content,this.sentBy,this.systemUserMessageId,this.dateSent,this.comment,this.hasComment,this.commentDate,this.hasAttachments,this.attachmentList,this.hasRead});
    NotificationMessageData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        title = json['title'];
        content = json['content'];
        sentBy = json['sentBy'];
        systemUserMessageId = json['systemUserMessageId'];
        dateSent = json['dateSent'];
        comment = json['comment'];
        hasComment = json['hasComment'];
        commentDate = json['commentDate'];
        hasAttachments = json['hasAttachments'];
        attachmentList = JsonConverters.fromJson(json['attachmentList'],'List<NotificationMessageAttachment>',context!);
        hasRead = json['hasRead'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'title': title,
        'content': content,
        'sentBy': sentBy,
        'systemUserMessageId': systemUserMessageId,
        'dateSent': dateSent,
        'comment': comment,
        'hasComment': hasComment,
        'commentDate': commentDate,
        'hasAttachments': hasAttachments,
        'attachmentList': JsonConverters.toJson(attachmentList,'List<NotificationMessageAttachment>',context!),
        'hasRead': hasRead
    };

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

class GetNotificationMessageResponse extends ApiServiceResponse implements IConvertible
{
    List<NotificationMessageData>? messages;
    int? unreadCount;

    GetNotificationMessageResponse({this.messages,this.unreadCount});
    GetNotificationMessageResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'messages': JsonConverters.toJson(messages,'List<NotificationMessageData>',context!),
        'unreadCount': unreadCount
    });

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

class MessageComment extends ApiServiceRequest implements IConvertible
{
    // @ApiMember(IsRequired=true)
    int? systemUserMessageId;

    // @ApiMember(IsRequired=true)
    String? comment;

    MessageComment({this.systemUserMessageId,this.comment});
    MessageComment.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'systemUserMessageId': systemUserMessageId,
        'comment': comment
    });

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

TypeContext _ctx = TypeContext(library: 'cochraneplus_api_dev.happen.zone', types: <String, TypeInfo> {
    'ApiServiceRequest': TypeInfo(TypeOf.Class, create:() => ApiServiceRequest()),
    'ApiServiceResponse': TypeInfo(TypeOf.Class, create:() => ApiServiceResponse()),
    'NotificationMessageAttachment': TypeInfo(TypeOf.Class, create:() => NotificationMessageAttachment()),
    'NotificationMessageData': TypeInfo(TypeOf.Class, create:() => NotificationMessageData()),
    'List<NotificationMessageAttachment>': TypeInfo(TypeOf.Class, create:() => <NotificationMessageAttachment>[]),
    'GetNotificationMessageResponse': TypeInfo(TypeOf.Class, create:() => GetNotificationMessageResponse()),
    'List<NotificationMessageData>': TypeInfo(TypeOf.Class, create:() => <NotificationMessageData>[]),
    'MessageComment': TypeInfo(TypeOf.Class, create:() => MessageComment()),
});

Dart MessageComment 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.

POST /notificationcentre/comment HTTP/1.1 
Host: cochraneplus-api-dev.happen.zone 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	systemUserMessageId: 0,
	comment: String,
	apiKey: String,
	latitude: 0,
	longitude: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	messages: 
	[
		{
			
		}
	],
	unreadCount: 0,
	description: String,
	heading: String,
	wasSuccessful: False,
	modelState: {}
}