Platform API

<back to all web services

GetSlimContacts

Get contacts connected to the current contact or licensee (if managing licensee contacts) by criteria, returning minimal number of columns

Requires Authentication
The following routes are available for this service:
All Verbs/api/slimcontacts
namespace Eros.Subtle.Canvara.WebAPIModel.ServiceModel

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type ContactSummaryModel() = 
        ///<summary>
        ///Contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId")>]
        member val ContactId:Guid = new Guid() with get,set

        ///<summary>
        ///Full name of the contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Full name of the contact linked to the profile", Name="ContactFullName")>]
        member val ContactFullName:String = null with get,set

        ///<summary>
        ///Email Address of the contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Email Address of the contact linked to the profile", Name="EmailAddress")>]
        member val EmailAddress:String = null with get,set

        ///<summary>
        ///Mobile Number of the contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Mobile Number of the contact linked to the profile", Name="MobileNumber")>]
        member val MobileNumber:String = null with get,set

        ///<summary>
        ///Primary Phone Number of the contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Primary Phone Number of the contact linked to the profile", Name="PhoneNumber")>]
        member val PhoneNumber:String = null with get,set

        ///<summary>
        ///Type of contact (person, organisation etc.) linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeId")>]
        member val ContactTypeId:Guid = new Guid() with get,set

        ///<summary>
        ///Profile photo of contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Profile photo of contact linked to the profile", Name="ProfilePhotoUrl")>]
        member val ProfilePhotoUrl:String = null with get,set

        ///<summary>
        ///Thumbnail photo of contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Thumbnail photo of contact linked to the profile", Name="ProfilePhotoThumbnailUrl")>]
        member val ProfilePhotoThumbnailUrl:String = null with get,set

        ///<summary>
        ///Profile description
        ///</summary>
        [<ApiMember(DataType="string", Description="Profile description", Name="Description")>]
        member val Description:String = null with get,set

        ///<summary>
        ///Employment Industry
        ///</summary>
        [<ApiMember(DataType="string", Description="Employment Industry", Name="EmploymentIndustry")>]
        member val EmploymentIndustry:String = null with get,set

        ///<summary>
        ///Employment Role
        ///</summary>
        [<ApiMember(DataType="string", Description="Employment Role", Name="EmploymentRole")>]
        member val EmploymentRole:String = null with get,set

        ///<summary>
        ///Areas of Work
        ///</summary>
        [<ApiMember(DataType="string", Description="Areas of Work", Name="EmploymentGeographicArea")>]
        member val EmploymentGeographicArea:String = null with get,set

        ///<summary>
        ///Timezone Name
        ///</summary>
        [<ApiMember(DataType="string", Description="Timezone Name", Name="TimezoneName", ParameterType="query")>]
        member val TimezoneName:String = null with get,set

        ///<summary>
        ///The primary address of the contact
        ///</summary>
        [<ApiMember(DataType="string", Description="The primary address of the contact", Name="PrimaryAddress", ParameterType="query")>]
        member val PrimaryAddress:String = null with get,set

        ///<summary>
        ///Have all connections to the contact been removed?
        ///</summary>
        [<ApiMember(DataType="bool", Description="Have all connections to the contact been removed?", Name="IsRemovedContact")>]
        member val IsRemovedContact:Boolean = new Boolean() with get,set

    [<ApiResponse(Description="Contacts connected to contact by criteria, returning minimal number of columns, and response status")>]
    [<AllowNullLiteral>]
    type GetSlimContactsResponse() = 
        member val Contacts:ResizeArray<ContactSummaryModel> = null with get,set
        member val TotalContacts:Int32 = new Int32() with get,set
        member val ResponseStatus:ResponseStatus = null with get,set

    type SortOrder =
        | Ascending = 0
        | Descending = 1

    [<AllowNullLiteral>]
    type PagedModel() = 
        ///<summary>
        ///Page Number to retrieve
        ///</summary>
        [<ApiMember(DataType="int", Description="Page Number to retrieve", Name="PageNumber")>]
        member val PageNumber:Int32 = new Int32() with get,set

        ///<summary>
        ///Number of records to retrieve
        ///</summary>
        [<ApiMember(DataType="int", Description="Number of records to retrieve", Name="PageSize")>]
        member val PageSize:Int32 = new Int32() with get,set

        ///<summary>
        ///Index of field to sort results by
        ///</summary>
        [<ApiMember(DataType="int", Description="Index of field to sort results by", Name="SortIndex")>]
        member val SortIndex:Int32 = new Int32() with get,set

        ///<summary>
        ///Sort Order - Ascending or Descending
        ///</summary>
        [<ApiMember(DataType="int", Description="Sort Order - Ascending or Descending", Name="SortOrder")>]
        member val SortOrder:SortOrder = new SortOrder() with get,set

    ///<summary>
    ///Get contacts connected to the current contact or licensee (if managing licensee contacts) by criteria, returning minimal number of columns
    ///</summary>
    [<Api(Description="Get contacts connected to the current contact or licensee (if managing licensee contacts) by criteria, returning minimal number of columns")>]
    [<AllowNullLiteral>]
    type GetSlimContacts() = 
        inherit PagedModel()
        ///<summary>
        ///Specific search text to search for, e.g. Contact Name, Employment Details etc.
        ///</summary>
        [<ApiMember(DataType="string", Description="Specific search text to search for, e.g. Contact Name, Employment Details etc.", Name="SearchText")>]
        member val SearchText:String = null with get,set

        ///<summary>
        ///Contact Types to search for, i.e. People and/or Organisations
        ///</summary>
        [<ApiMember(DataType="List<Guid>", Description="Contact Types to search for, i.e. People and/or Organisations", IsRequired=true, Name="ContactTypes")>]
        member val ContactTypes:ResizeArray<Guid> = null with get,set

        ///<summary>
        ///Contact statuses to search for, i.e. Real and/or Virtual
        ///</summary>
        [<ApiMember(DataType="List<Guid>", Description="Contact statuses to search for, i.e. Real and/or Virtual", IsRequired=true, Name="Statuses")>]
        member val Statuses:ResizeArray<Guid> = null with get,set

        ///<summary>
        ///Include contacts previously connected to the contact but now removed.
        ///</summary>
        [<ApiMember(DataType="bool", Description="Include contacts previously connected to the contact but now removed.", Name="IncludeRemoved")>]
        member val IncludeRemoved:Boolean = new Boolean() with get,set

        ///<summary>
        ///Return all contacts matching criteria, or paged results?
        ///</summary>
        [<ApiMember(Description="Return all contacts matching criteria, or paged results?", Name="IsPagedMode")>]
        member val IsPagedMode:Boolean = new Boolean() with get,set

F# GetSlimContacts 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/slimcontacts HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"SearchText":"String","ContactTypes":["00000000-0000-0000-0000-000000000000"],"Statuses":["00000000-0000-0000-0000-000000000000"],"IncludeRemoved":false,"IsPagedMode":false,"PageNumber":0,"PageSize":0,"SortIndex":0,"SortOrder":"Ascending"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Contacts":[{"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}],"TotalContacts":0,"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}