Platform API

<back to all web services

GetContactNotifications

Get notifications for the specified contact

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

class InputSwitch implements IConvertible
{
    String? Id;
    String? Name;
    bool? IsDisabled;
    bool? IsChecked;

    InputSwitch({this.Id,this.Name,this.IsDisabled,this.IsChecked});
    InputSwitch.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Name = json['Name'];
        IsDisabled = json['IsDisabled'];
        IsChecked = json['IsChecked'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Name': Name,
        'IsDisabled': IsDisabled,
        'IsChecked': IsChecked
    };

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

class NotificationDetails implements IConvertible
{
    String? NotificationId;
    String? NotificationGroupName;
    String? NotificationValueId;
    String? Name;
    String? Description;
    bool? IsMandatory;
    bool? IsCardinality;
    bool? IsSystem;
    bool? IsVisibleToRecipients;
    int? Index;
    InputSwitch? Email;
    InputSwitch? SMS;
    InputSwitch? UpdateNotification;
    InputSwitch? Push;
    InputSwitch? Phone;

    NotificationDetails({this.NotificationId,this.NotificationGroupName,this.NotificationValueId,this.Name,this.Description,this.IsMandatory,this.IsCardinality,this.IsSystem,this.IsVisibleToRecipients,this.Index,this.Email,this.SMS,this.UpdateNotification,this.Push,this.Phone});
    NotificationDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        NotificationId = json['NotificationId'];
        NotificationGroupName = json['NotificationGroupName'];
        NotificationValueId = json['NotificationValueId'];
        Name = json['Name'];
        Description = json['Description'];
        IsMandatory = json['IsMandatory'];
        IsCardinality = json['IsCardinality'];
        IsSystem = json['IsSystem'];
        IsVisibleToRecipients = json['IsVisibleToRecipients'];
        Index = json['Index'];
        Email = JsonConverters.fromJson(json['Email'],'InputSwitch',context!);
        SMS = JsonConverters.fromJson(json['SMS'],'InputSwitch',context!);
        UpdateNotification = JsonConverters.fromJson(json['UpdateNotification'],'InputSwitch',context!);
        Push = JsonConverters.fromJson(json['Push'],'InputSwitch',context!);
        Phone = JsonConverters.fromJson(json['Phone'],'InputSwitch',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'NotificationId': NotificationId,
        'NotificationGroupName': NotificationGroupName,
        'NotificationValueId': NotificationValueId,
        'Name': Name,
        'Description': Description,
        'IsMandatory': IsMandatory,
        'IsCardinality': IsCardinality,
        'IsSystem': IsSystem,
        'IsVisibleToRecipients': IsVisibleToRecipients,
        'Index': Index,
        'Email': JsonConverters.toJson(Email,'InputSwitch',context!),
        'SMS': JsonConverters.toJson(SMS,'InputSwitch',context!),
        'UpdateNotification': JsonConverters.toJson(UpdateNotification,'InputSwitch',context!),
        'Push': JsonConverters.toJson(Push,'InputSwitch',context!),
        'Phone': JsonConverters.toJson(Phone,'InputSwitch',context!)
    };

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

class NotificationGroup implements IConvertible
{
    String? GroupName;
    List<NotificationDetails>? Notifications;

    NotificationGroup({this.GroupName,this.Notifications});
    NotificationGroup.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

// @ApiResponse(Description="List of contact notifications")
class GetContactNotificationsResponse implements IConvertible
{
    List<NotificationGroup>? Notifications;
    ResponseStatus? ResponseStatus;

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

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

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

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

/**
* Get notifications for the specified contact
*/
// @Api(Description="Get notifications for the specified contact")
class GetContactNotifications implements IConvertible
{
    /**
    * Id of contact to get notifications for
    */
    // @ApiMember(Description="Id of contact to get notifications for", IsRequired=true, Name="ContactId")
    String? ContactId;

    /**
    * Id of licensee to get notifications for
    */
    // @ApiMember(Description="Id of licensee to get notifications for", IsRequired=true, Name="LicenseeId")
    String? LicenseeId;

    /**
    * Id of suite to get notifications for
    */
    // @ApiMember(Description="Id of suite to get notifications for", IsRequired=true, Name="Suite")
    String? SuiteId;

    GetContactNotifications({this.ContactId,this.LicenseeId,this.SuiteId});
    GetContactNotifications.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'ContactId': ContactId,
        'LicenseeId': LicenseeId,
        'SuiteId': SuiteId
    };

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

TypeContext _ctx = TypeContext(library: 'pfapi.pstpf.com.au', types: <String, TypeInfo> {
    'InputSwitch': TypeInfo(TypeOf.Class, create:() => InputSwitch()),
    'NotificationDetails': TypeInfo(TypeOf.Class, create:() => NotificationDetails()),
    'NotificationGroup': TypeInfo(TypeOf.Class, create:() => NotificationGroup()),
    'List<NotificationDetails>': TypeInfo(TypeOf.Class, create:() => <NotificationDetails>[]),
    'GetContactNotificationsResponse': TypeInfo(TypeOf.Class, create:() => GetContactNotificationsResponse()),
    'List<NotificationGroup>': TypeInfo(TypeOf.Class, create:() => <NotificationGroup>[]),
    'GetContactNotifications': TypeInfo(TypeOf.Class, create:() => GetContactNotifications()),
});

Dart GetContactNotifications 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 /api/contact/{ContactId}/notifications HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Notifications: 
	[
		{
			GroupName: String,
			Notifications: 
			[
				{
					NotificationGroupName: String,
					Name: String,
					Description: String,
					IsMandatory: False,
					IsCardinality: False,
					IsSystem: False,
					IsVisibleToRecipients: False,
					Index: 0,
					Email: 
					{
						Id: String,
						Name: String,
						IsDisabled: False,
						IsChecked: False
					},
					SMS: 
					{
						Id: String,
						Name: String,
						IsDisabled: False,
						IsChecked: False
					},
					UpdateNotification: 
					{
						Id: String,
						Name: String,
						IsDisabled: False,
						IsChecked: False
					},
					Push: 
					{
						Id: String,
						Name: String,
						IsDisabled: False,
						IsChecked: False
					},
					Phone: 
					{
						Id: String,
						Name: String,
						IsDisabled: False,
						IsChecked: False
					}
				}
			]
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}