Platform API

<back to all web services

GetConnectionsToContact

Get connections to the specified contact for the requestor contact

Requires Authentication
The following routes are available for this service:
All Verbs/api/contacts/{ContactId}/connections
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 ContactSummaryModel implements IConvertible
{
    /**
    * Contact linked to the profile
    */
    // @ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId")
    String? ContactId;

    /**
    * Full name of the contact linked to the profile
    */
    // @ApiMember(DataType="string", Description="Full name of the contact linked to the profile", Name="ContactFullName")
    String? ContactFullName;

    /**
    * Email Address of the contact linked to the profile
    */
    // @ApiMember(DataType="string", Description="Email Address of the contact linked to the profile", Name="EmailAddress")
    String? EmailAddress;

    /**
    * Mobile Number of the contact linked to the profile
    */
    // @ApiMember(DataType="string", Description="Mobile Number of the contact linked to the profile", Name="MobileNumber")
    String? MobileNumber;

    /**
    * Primary Phone Number of the contact linked to the profile
    */
    // @ApiMember(DataType="string", Description="Primary Phone Number of the contact linked to the profile", Name="PhoneNumber")
    String? PhoneNumber;

    /**
    * Type of contact (person, organisation etc.) linked to the profile
    */
    // @ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeId")
    String? ContactTypeId;

    /**
    * Profile photo of contact linked to the profile
    */
    // @ApiMember(DataType="string", Description="Profile photo of contact linked to the profile", Name="ProfilePhotoUrl")
    String? ProfilePhotoUrl;

    /**
    * Thumbnail photo of contact linked to the profile
    */
    // @ApiMember(DataType="string", Description="Thumbnail photo of contact linked to the profile", Name="ProfilePhotoThumbnailUrl")
    String? ProfilePhotoThumbnailUrl;

    /**
    * Profile description
    */
    // @ApiMember(DataType="string", Description="Profile description", Name="Description")
    String? Description;

    /**
    * Employment Industry
    */
    // @ApiMember(DataType="string", Description="Employment Industry", Name="EmploymentIndustry")
    String? EmploymentIndustry;

    /**
    * Employment Role
    */
    // @ApiMember(DataType="string", Description="Employment Role", Name="EmploymentRole")
    String? EmploymentRole;

    /**
    * Areas of Work
    */
    // @ApiMember(DataType="string", Description="Areas of Work", Name="EmploymentGeographicArea")
    String? EmploymentGeographicArea;

    /**
    * Timezone Name
    */
    // @ApiMember(DataType="string", Description="Timezone Name", Name="TimezoneName", ParameterType="query")
    String? TimezoneName;

    /**
    * The primary address of the contact
    */
    // @ApiMember(DataType="string", Description="The primary address of the contact", Name="PrimaryAddress", ParameterType="query")
    String? PrimaryAddress;

    /**
    * Have all connections to the contact been removed?
    */
    // @ApiMember(DataType="bool", Description="Have all connections to the contact been removed?", Name="IsRemovedContact")
    bool? IsRemovedContact;

    ContactSummaryModel({this.ContactId,this.ContactFullName,this.EmailAddress,this.MobileNumber,this.PhoneNumber,this.ContactTypeId,this.ProfilePhotoUrl,this.ProfilePhotoThumbnailUrl,this.Description,this.EmploymentIndustry,this.EmploymentRole,this.EmploymentGeographicArea,this.TimezoneName,this.PrimaryAddress,this.IsRemovedContact});
    ContactSummaryModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactId = json['ContactId'];
        ContactFullName = json['ContactFullName'];
        EmailAddress = json['EmailAddress'];
        MobileNumber = json['MobileNumber'];
        PhoneNumber = json['PhoneNumber'];
        ContactTypeId = json['ContactTypeId'];
        ProfilePhotoUrl = json['ProfilePhotoUrl'];
        ProfilePhotoThumbnailUrl = json['ProfilePhotoThumbnailUrl'];
        Description = json['Description'];
        EmploymentIndustry = json['EmploymentIndustry'];
        EmploymentRole = json['EmploymentRole'];
        EmploymentGeographicArea = json['EmploymentGeographicArea'];
        TimezoneName = json['TimezoneName'];
        PrimaryAddress = json['PrimaryAddress'];
        IsRemovedContact = json['IsRemovedContact'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactId': ContactId,
        'ContactFullName': ContactFullName,
        'EmailAddress': EmailAddress,
        'MobileNumber': MobileNumber,
        'PhoneNumber': PhoneNumber,
        'ContactTypeId': ContactTypeId,
        'ProfilePhotoUrl': ProfilePhotoUrl,
        'ProfilePhotoThumbnailUrl': ProfilePhotoThumbnailUrl,
        'Description': Description,
        'EmploymentIndustry': EmploymentIndustry,
        'EmploymentRole': EmploymentRole,
        'EmploymentGeographicArea': EmploymentGeographicArea,
        'TimezoneName': TimezoneName,
        'PrimaryAddress': PrimaryAddress,
        'IsRemovedContact': IsRemovedContact
    };

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

class ContactConnectionModel implements IConvertible
{
    /**
    * Connection Id (if applicable)
    */
    // @ApiMember(DataType="Guid?", Description="Connection Id (if applicable)", Name="ConnectionId")
    String? ConnectionId;

    /**
    * Connection Request Id (if applicable)
    */
    // @ApiMember(DataType="Guid?", Description="Connection Request Id (if applicable)", Name="ConnectionRequestId")
    String? ConnectionRequestId;

    /**
    * Details of the contact
    */
    // @ApiMember(DataType="ContactSummaryModel", Description="Details of the contact", IsRequired=true, Name="Contact")
    ContactSummaryModel? Contact;

    /**
    * Contact's role Id in the connection
    */
    // @ApiMember(DataType="Guid", Description="Contact's role Id in the connection", IsRequired=true, Name="ContactRoleId")
    String? ContactRoleId;

    /**
    * Contact's role name in the connection
    */
    // @ApiMember(DataType="string", Description="Contact's role name in the connection", Name="ContactRoleName")
    String? ContactRoleName;

    /**
    * Requestor Contact Id
    */
    // @ApiMember(DataType="Guid", Description="Requestor Contact Id", IsRequired=true, Name="RequestorContactId")
    String? RequestorContactId;

    /**
    * Requestor Contact Name
    */
    // @ApiMember(DataType="Guid", Description="Requestor Contact Name", Name="RequestorContactName")
    String? RequestorContactName;

    /**
    * Requestor contact's role Id in the connection
    */
    // @ApiMember(DataType="Guid", Description="Requestor contact's role Id in the connection", IsRequired=true, Name="RequestorRoleId")
    String? RequestorRoleId;

    /**
    * Requestor's role name in the connection
    */
    // @ApiMember(DataType="string", Description="Requestor's role name in the connection", Name="RequestorRoleName")
    String? RequestorRoleName;

    /**
    * Primary role in the connection to display
    */
    // @ApiMember(DataType="string", Description="Primary role in the connection to display", Name="PrimaryRoleName")
    String? PrimaryRoleName;

    /**
    * Connection Status Id
    */
    // @ApiMember(DataType="Guid", Description="Connection Status Id", IsRequired=true, Name="ConnectionStatusId")
    String? ConnectionStatusId;

    /**
    * Connection Status Name
    */
    // @ApiMember(DataType="string", Description="Connection Status Name", Name="ConnectionStatusName")
    String? ConnectionStatusName;

    /**
    * Is this a pending connection request?
    */
    // @ApiMember(DataType="bool", Description="Is this a pending connection request?", Name="IsConnectionRequest")
    bool? IsConnectionRequest;

    /**
    * Is this an incoming connection request?
    */
    // @ApiMember(DataType="bool", Description="Is this an incoming connection request?", Name="IsIncoming")
    bool? IsIncoming;

    DateTime? FromDate;
    /**
    * Details of the contact suggesting this connection
    */
    // @ApiMember(DataType="ContactSummaryModel", Description="Details of the contact suggesting this connection", IsRequired=true, Name="SuggesterContact")
    ContactSummaryModel? SuggesterContact;

    /**
    * Can this connection be cancelled?
    */
    // @ApiMember(DataType="bool", Description="Can this connection be cancelled?", Name="AllowCancel")
    bool? AllowCancel;

    /**
    * Can this connection be removed?
    */
    // @ApiMember(DataType="bool", Description="Can this connection be removed?", Name="AllowRemove")
    bool? AllowRemove;

    ContactConnectionModel({this.ConnectionId,this.ConnectionRequestId,this.Contact,this.ContactRoleId,this.ContactRoleName,this.RequestorContactId,this.RequestorContactName,this.RequestorRoleId,this.RequestorRoleName,this.PrimaryRoleName,this.ConnectionStatusId,this.ConnectionStatusName,this.IsConnectionRequest,this.IsIncoming,this.FromDate,this.SuggesterContact,this.AllowCancel,this.AllowRemove});
    ContactConnectionModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ConnectionId = json['ConnectionId'];
        ConnectionRequestId = json['ConnectionRequestId'];
        Contact = JsonConverters.fromJson(json['Contact'],'ContactSummaryModel',context!);
        ContactRoleId = json['ContactRoleId'];
        ContactRoleName = json['ContactRoleName'];
        RequestorContactId = json['RequestorContactId'];
        RequestorContactName = json['RequestorContactName'];
        RequestorRoleId = json['RequestorRoleId'];
        RequestorRoleName = json['RequestorRoleName'];
        PrimaryRoleName = json['PrimaryRoleName'];
        ConnectionStatusId = json['ConnectionStatusId'];
        ConnectionStatusName = json['ConnectionStatusName'];
        IsConnectionRequest = json['IsConnectionRequest'];
        IsIncoming = json['IsIncoming'];
        FromDate = JsonConverters.fromJson(json['FromDate'],'DateTime',context!);
        SuggesterContact = JsonConverters.fromJson(json['SuggesterContact'],'ContactSummaryModel',context!);
        AllowCancel = json['AllowCancel'];
        AllowRemove = json['AllowRemove'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ConnectionId': ConnectionId,
        'ConnectionRequestId': ConnectionRequestId,
        'Contact': JsonConverters.toJson(Contact,'ContactSummaryModel',context!),
        'ContactRoleId': ContactRoleId,
        'ContactRoleName': ContactRoleName,
        'RequestorContactId': RequestorContactId,
        'RequestorContactName': RequestorContactName,
        'RequestorRoleId': RequestorRoleId,
        'RequestorRoleName': RequestorRoleName,
        'PrimaryRoleName': PrimaryRoleName,
        'ConnectionStatusId': ConnectionStatusId,
        'ConnectionStatusName': ConnectionStatusName,
        'IsConnectionRequest': IsConnectionRequest,
        'IsIncoming': IsIncoming,
        'FromDate': JsonConverters.toJson(FromDate,'DateTime',context!),
        'SuggesterContact': JsonConverters.toJson(SuggesterContact,'ContactSummaryModel',context!),
        'AllowCancel': AllowCancel,
        'AllowRemove': AllowRemove
    };

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

// @ApiResponse(Description="Connections to the specified contact for the requestor contact")
class GetConnectionsToContactResponse implements IConvertible
{
    List<ContactConnectionModel>? Connections;
    int? TotalConnections;
    ResponseStatus? ResponseStatus;

    GetConnectionsToContactResponse({this.Connections,this.TotalConnections,this.ResponseStatus});
    GetConnectionsToContactResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

/**
* Get connections to the specified contact for the requestor contact
*/
// @Api(Description="Get connections to the specified contact for the requestor contact")
class GetConnectionsToContact extends PagedModel implements IConvertible
{
    /**
    * Contact Id to get connections for
    */
    // @ApiMember(DataType="Guid", Description="Contact Id to get connections for", IsRequired=true, Name="ContactId")
    String? ContactId;

    /**
    * Type of the contact to get connections for (i.e. Real/ virtual Person/ Organisation)
    */
    // @ApiMember(DataType="Guid", Description="Type of the contact to get connections for (i.e. Real/ virtual Person/ Organisation)", IsRequired=true, Name="ContactTypeId")
    String? ContactTypeId;

    /**
    * Contact Id requesting the details - Current user or licensee
    */
    // @ApiMember(DataType="Guid", Description="Contact Id requesting the details - Current user or licensee", IsRequired=true, Name="RequestorContactId")
    String? RequestorContactId;

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

    /**
    * Option to return removed connections
    */
    // @ApiMember(Description="Option to return removed connections", Name="IncludeRemoved")
    bool? IncludeRemoved;

    GetConnectionsToContact({this.ContactId,this.ContactTypeId,this.RequestorContactId,this.IsPagedMode,this.IncludeRemoved});
    GetConnectionsToContact.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        ContactId = json['ContactId'];
        ContactTypeId = json['ContactTypeId'];
        RequestorContactId = json['RequestorContactId'];
        IsPagedMode = json['IsPagedMode'];
        IncludeRemoved = json['IncludeRemoved'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'ContactId': ContactId,
        'ContactTypeId': ContactTypeId,
        'RequestorContactId': RequestorContactId,
        'IsPagedMode': IsPagedMode,
        'IncludeRemoved': IncludeRemoved
    });

    getTypeName() => "GetConnectionsToContact";
    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()),
    'ContactSummaryModel': TypeInfo(TypeOf.Class, create:() => ContactSummaryModel()),
    'ContactConnectionModel': TypeInfo(TypeOf.Class, create:() => ContactConnectionModel()),
    'GetConnectionsToContactResponse': TypeInfo(TypeOf.Class, create:() => GetConnectionsToContactResponse()),
    'List<ContactConnectionModel>': TypeInfo(TypeOf.Class, create:() => <ContactConnectionModel>[]),
    'GetConnectionsToContact': TypeInfo(TypeOf.Class, create:() => GetConnectionsToContact()),
});

Dart GetConnectionsToContact DTOs

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

HTTP + OTHER

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

POST /api/contacts/{ContactId}/connections HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"ContactId":"00000000-0000-0000-0000-000000000000","ContactTypeId":"00000000-0000-0000-0000-000000000000","RequestorContactId":"00000000-0000-0000-0000-000000000000","IsPagedMode":false,"IncludeRemoved":false,"PageNumber":0,"PageSize":0,"SortIndex":0,"SortOrder":"Ascending"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Connections":[{"ConnectionId":"00000000000000000000000000000000","ConnectionRequestId":"00000000000000000000000000000000","Contact":{"ContactId":"00000000-0000-0000-0000-000000000000","ContactFullName":"String","EmailAddress":"String","MobileNumber":"String","PhoneNumber":"String","ContactTypeId":"00000000-0000-0000-0000-000000000000","ProfilePhotoUrl":"String","ProfilePhotoThumbnailUrl":"String","Description":"String","EmploymentIndustry":"String","EmploymentRole":"String","EmploymentGeographicArea":"String","TimezoneName":"String","PrimaryAddress":"String","IsRemovedContact":false},"ContactRoleId":"00000000-0000-0000-0000-000000000000","ContactRoleName":"String","RequestorContactId":"00000000-0000-0000-0000-000000000000","RequestorContactName":"String","RequestorRoleId":"00000000-0000-0000-0000-000000000000","RequestorRoleName":"String","PrimaryRoleName":"String","ConnectionStatusId":"00000000-0000-0000-0000-000000000000","ConnectionStatusName":"String","IsConnectionRequest":false,"IsIncoming":false,"FromDate":"0001-01-01T00:00:00.0000000","SuggesterContact":{"ContactId":"00000000-0000-0000-0000-000000000000","ContactFullName":"String","EmailAddress":"String","MobileNumber":"String","PhoneNumber":"String","ContactTypeId":"00000000-0000-0000-0000-000000000000","ProfilePhotoUrl":"String","ProfilePhotoThumbnailUrl":"String","Description":"String","EmploymentIndustry":"String","EmploymentRole":"String","EmploymentGeographicArea":"String","TimezoneName":"String","PrimaryAddress":"String","IsRemovedContact":false},"AllowCancel":false,"AllowRemove":false}],"TotalConnections":0,"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}