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
import java.math.*;
import java.util.*;
import java.io.InputStream;
import net.servicestack.client.*;

public class dtos
{

    /**
    * Get contacts connected to the current contact or licensee (if managing licensee contacts) by criteria, returning minimal number of columns
    */
    @Api(Description="Get contacts connected to the current contact or licensee (if managing licensee contacts) by criteria, returning minimal number of columns")
    public static class GetSlimContacts extends PagedModel
    {
        /**
        * Specific search text to search for, e.g. Contact Name, Employment Details etc.
        */
        @ApiMember(DataType="string", Description="Specific search text to search for, e.g. Contact Name, Employment Details etc.", Name="SearchText")
        public String SearchText = null;

        /**
        * Contact Types to search for, i.e. People and/or Organisations
        */
        @ApiMember(DataType="List<Guid>", Description="Contact Types to search for, i.e. People and/or Organisations", IsRequired=true, Name="ContactTypes")
        public ArrayList<UUID> ContactTypes = new ArrayList<UUID>();

        /**
        * Contact statuses to search for, i.e. Real and/or Virtual
        */
        @ApiMember(DataType="List<Guid>", Description="Contact statuses to search for, i.e. Real and/or Virtual", IsRequired=true, Name="Statuses")
        public ArrayList<UUID> Statuses = new ArrayList<UUID>();

        /**
        * Include contacts previously connected to the contact but now removed.
        */
        @ApiMember(DataType="bool", Description="Include contacts previously connected to the contact but now removed.", Name="IncludeRemoved")
        public Boolean IncludeRemoved = null;

        /**
        * Return all contacts matching criteria, or paged results?
        */
        @ApiMember(Description="Return all contacts matching criteria, or paged results?", Name="IsPagedMode")
        public Boolean IsPagedMode = null;
        
        public String getSearchText() { return SearchText; }
        public GetSlimContacts setSearchText(String value) { this.SearchText = value; return this; }
        public ArrayList<UUID> getContactTypes() { return ContactTypes; }
        public GetSlimContacts setContactTypes(ArrayList<UUID> value) { this.ContactTypes = value; return this; }
        public ArrayList<UUID> getStatuses() { return Statuses; }
        public GetSlimContacts setStatuses(ArrayList<UUID> value) { this.Statuses = value; return this; }
        public Boolean isIncludeRemoved() { return IncludeRemoved; }
        public GetSlimContacts setIncludeRemoved(Boolean value) { this.IncludeRemoved = value; return this; }
        public Boolean getIsPagedMode() { return IsPagedMode; }
        public GetSlimContacts setIsPagedMode(Boolean value) { this.IsPagedMode = value; return this; }
    }

    public static class PagedModel
    {
        /**
        * Page Number to retrieve
        */
        @ApiMember(DataType="int", Description="Page Number to retrieve", Name="PageNumber")
        public Integer PageNumber = null;

        /**
        * Number of records to retrieve
        */
        @ApiMember(DataType="int", Description="Number of records to retrieve", Name="PageSize")
        public Integer PageSize = null;

        /**
        * Index of field to sort results by
        */
        @ApiMember(DataType="int", Description="Index of field to sort results by", Name="SortIndex")
        public Integer SortIndex = null;

        /**
        * Sort Order - Ascending or Descending
        */
        @ApiMember(DataType="int", Description="Sort Order - Ascending or Descending", Name="SortOrder")
        public SortOrder SortOrder = null;
        
        public Integer getPageNumber() { return PageNumber; }
        public PagedModel setPageNumber(Integer value) { this.PageNumber = value; return this; }
        public Integer getPageSize() { return PageSize; }
        public PagedModel setPageSize(Integer value) { this.PageSize = value; return this; }
        public Integer getSortIndex() { return SortIndex; }
        public PagedModel setSortIndex(Integer value) { this.SortIndex = value; return this; }
        public SortOrder getSortOrder() { return SortOrder; }
        public PagedModel setSortOrder(SortOrder value) { this.SortOrder = value; return this; }
    }

    public static enum SortOrder
    {
        Ascending,
        Descending;
    }

    @ApiResponse(Description="Contacts connected to contact by criteria, returning minimal number of columns, and response status")
    public static class GetSlimContactsResponse
    {
        public ArrayList<ContactSummaryModel> Contacts = null;
        public Integer TotalContacts = null;
        public ResponseStatus ResponseStatus = null;
        
        public ArrayList<ContactSummaryModel> getContacts() { return Contacts; }
        public GetSlimContactsResponse setContacts(ArrayList<ContactSummaryModel> value) { this.Contacts = value; return this; }
        public Integer getTotalContacts() { return TotalContacts; }
        public GetSlimContactsResponse setTotalContacts(Integer value) { this.TotalContacts = value; return this; }
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public GetSlimContactsResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
    }

    public static class ContactSummaryModel
    {
        /**
        * Contact linked to the profile
        */
        @ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId")
        public UUID ContactId = null;

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

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

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

        /**
        * 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")
        public String PhoneNumber = null;

        /**
        * 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")
        public UUID ContactTypeId = null;

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

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

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

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

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

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

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

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

        /**
        * Have all connections to the contact been removed?
        */
        @ApiMember(DataType="bool", Description="Have all connections to the contact been removed?", Name="IsRemovedContact")
        public Boolean IsRemovedContact = null;
        
        public UUID getContactId() { return ContactId; }
        public ContactSummaryModel setContactId(UUID value) { this.ContactId = value; return this; }
        public String getContactFullName() { return ContactFullName; }
        public ContactSummaryModel setContactFullName(String value) { this.ContactFullName = value; return this; }
        public String getEmailAddress() { return EmailAddress; }
        public ContactSummaryModel setEmailAddress(String value) { this.EmailAddress = value; return this; }
        public String getMobileNumber() { return MobileNumber; }
        public ContactSummaryModel setMobileNumber(String value) { this.MobileNumber = value; return this; }
        public String getPhoneNumber() { return PhoneNumber; }
        public ContactSummaryModel setPhoneNumber(String value) { this.PhoneNumber = value; return this; }
        public UUID getContactTypeId() { return ContactTypeId; }
        public ContactSummaryModel setContactTypeId(UUID value) { this.ContactTypeId = value; return this; }
        public String getProfilePhotoUrl() { return ProfilePhotoUrl; }
        public ContactSummaryModel setProfilePhotoUrl(String value) { this.ProfilePhotoUrl = value; return this; }
        public String getProfilePhotoThumbnailUrl() { return ProfilePhotoThumbnailUrl; }
        public ContactSummaryModel setProfilePhotoThumbnailUrl(String value) { this.ProfilePhotoThumbnailUrl = value; return this; }
        public String getDescription() { return Description; }
        public ContactSummaryModel setDescription(String value) { this.Description = value; return this; }
        public String getEmploymentIndustry() { return EmploymentIndustry; }
        public ContactSummaryModel setEmploymentIndustry(String value) { this.EmploymentIndustry = value; return this; }
        public String getEmploymentRole() { return EmploymentRole; }
        public ContactSummaryModel setEmploymentRole(String value) { this.EmploymentRole = value; return this; }
        public String getEmploymentGeographicArea() { return EmploymentGeographicArea; }
        public ContactSummaryModel setEmploymentGeographicArea(String value) { this.EmploymentGeographicArea = value; return this; }
        public String getTimezoneName() { return TimezoneName; }
        public ContactSummaryModel setTimezoneName(String value) { this.TimezoneName = value; return this; }
        public String getPrimaryAddress() { return PrimaryAddress; }
        public ContactSummaryModel setPrimaryAddress(String value) { this.PrimaryAddress = value; return this; }
        public Boolean getIsRemovedContact() { return IsRemovedContact; }
        public ContactSummaryModel setIsRemovedContact(Boolean value) { this.IsRemovedContact = value; return this; }
    }

}

Java GetSlimContacts DTOs

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

HTTP + CSV

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/csv
Content-Type: text/csv
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/csv
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"}}}