Platform API

<back to all web services

GetContactRoleDetails

Get details of the specified contact role, including details of the contacts and organisations sharing it

Requires Authentication
The following routes are available for this service:
All Verbs/api/contactrole/{ContactRoleId}

export enum SortOrder
{
    Ascending = 'Ascending',
    Descending = 'Descending',
}

export class PagedModel
{
    /** @description Page Number to retrieve */
    // @ApiMember(DataType="int", Description="Page Number to retrieve", Name="PageNumber")
    public PageNumber: number;

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

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

    /** @description Sort Order - Ascending or Descending */
    // @ApiMember(DataType="int", Description="Sort Order - Ascending or Descending", Name="SortOrder")
    public SortOrder: SortOrder;

    public constructor(init?: Partial<PagedModel>) { (Object as any).assign(this, init); }
}

export class UserProfileSummaryModel
{
    /** @description User Profile Id */
    // @ApiMember(DataType="Guid", Description="User Profile Id", Name="UserProfileId")
    public UserProfileId: string;

    /** @description User linked to the profile */
    // @ApiMember(DataType="Guid", Description="User linked to the profile", Name="UserId")
    public UserId: string;

    /** @description Contact linked to the profile */
    // @ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId")
    public ContactId: string;

    /** @description User linked to the profile */
    // @ApiMember(DataType="string", Description="User linked to the profile", Name="UserName")
    public UserName: string;

    /** @description User Profile Name */
    // @ApiMember(DataType="string", Description="User Profile Name", Name="ProfileName")
    public ProfileName: string;

    /** @description 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 ContactFullName: string;

    /** @description 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 EmailAddress: string;

    /** @description Email signature of the contact linked to the profile */
    // @ApiMember(DataType="string", Description="Email signature of the contact linked to the profile", Name="EmailSignature")
    public EmailSignature: string;

    /** @description 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 MobileNumber: string;

    /** @description Phone number of the contact linked to the profile */
    // @ApiMember(DataType="string", Description="Phone number of the contact linked to the profile", Name="PhoneNumber")
    public PhoneNumber: string;

    /** @description 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 ContactTypeId: string;

    /** @description 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="ContactTypeName")
    public ContactTypeName: string;

    /** @description First name of the contact linked to the profile */
    // @ApiMember(DataType="string", Description="First name of the contact linked to the profile", Name="FirstName")
    public FirstName: string;

    /** @description Surname of the contact linked to the profile */
    // @ApiMember(DataType="string", Description="Surname of the contact linked to the profile", Name="Surname")
    public Surname: string;

    /** @description Title of contact linked to the profile */
    // @ApiMember(DataType="string", Description="Title of contact linked to the profile", Name="Title")
    public Title: string;

    /** @description Legal name of contact linked to the profile */
    // @ApiMember(DataType="string", Description="Legal name of contact linked to the profile", Name="LegalName")
    public LegalName: string;

    /** @description Trading name of contact linked to the profile */
    // @ApiMember(DataType="string", Description="Trading name of contact linked to the profile", Name="TradingName")
    public TradingName: string;

    /** @description Australian Business Number */
    // @ApiMember(DataType="string", Description="Australian Business Number", Name="Abn", ParameterType="query")
    public Abn: string;

    /** @description Australian Company Number */
    // @ApiMember(DataType="string", Description="Australian Company Number", Name="Acn", ParameterType="query")
    public Acn: string;

    /** @description Australian Registered Body Number */
    // @ApiMember(DataType="string", Description="Australian Registered Body Number", Name="Arbn", ParameterType="query")
    public Arbn: string;

    /** @description Indicates if the Contact is registered for GST. */
    // @ApiMember(DataType="bool", Description="Indicates if the Contact is registered for GST.", Name="GstRegistered", ParameterType="query")
    public GstRegistered: boolean;

    /** @description True if english is a secondary language for the contact. */
    // @ApiMember(DataType="bool", Description="True if english is a secondary language for the contact.", Name="ESL", ParameterType="query")
    public ESL: boolean;

    /** @description Language that is the primary language for the contact. */
    // @ApiMember(DataType="string", Description="Language that is the primary language for the contact.", Name="Language", ParameterType="query")
    public Language: string;

    /** @description True if an interpreter is required. */
    // @ApiMember(DataType="bool", Description="True if an interpreter is required.", Name="InterpreterRequired", ParameterType="query")
    public InterpreterRequired: boolean;

    /** @description Licensee specific notes about the contact. */
    // @ApiMember(DataType="string", Description="Licensee specific notes about the contact.", Name="LicenseeNotes", ParameterType="query")
    public LicenseeNotes: string;

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

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

    /** @description Profile photo id of contact linked to the profile */
    // @ApiMember(DataType="Guid", Description="Profile photo id of contact linked to the profile", Name="ProfileImageId")
    public ProfileImageId: string;

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

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

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

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

    /** @description The contacts timezone. */
    // @ApiMember(DataType="Guid", Description="The contacts timezone.", Name="Timezone", ParameterType="query")
    public Timezone: string;

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

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

    /** @description Is this an active contact? Or an inactive contact (deleted account)? */
    // @ApiMember(DataType="bool", Description="Is this an active contact? Or an inactive contact (deleted account)?", Name="IsActiveContact")
    public IsActiveContact: boolean;

    public constructor(init?: Partial<UserProfileSummaryModel>) { (Object as any).assign(this, init); }
}

export class ObjectShareModel
{
    public ObjectShareId: string;
    public ObjectId: string;
    public ObjectName: string;
    public Name: string;
    public Description: string;
    public Reference: string;
    public ContactId: string;
    public ContactName: string;
    public ContactType: string;
    public ContactImageUrlPrimary: string;
    public ContactImageUrlPrimaryThmbnail: string;
    public ShareStatusId: string;
    public ShareStatusName: string;

    public constructor(init?: Partial<ObjectShareModel>) { (Object as any).assign(this, init); }
}

export class ListItemFilterModel
{
    public ListItemFilterId: string;
    public FilterName: string;
    public ListId: string;
    public ListItemId: string;
    public ListItemIsInFilter: boolean;

    public constructor(init?: Partial<ListItemFilterModel>) { (Object as any).assign(this, init); }
}

export class ViewRoleModel extends PagedModel
{
    /** @description Role Id */
    // @ApiMember(DataType="Guid", Description="Role Id", IsRequired=true, Name="RoleId")
    public RoleId: string;

    /** @description Role Name */
    // @ApiMember(DataType="string", Description="Role Name", Name="RoleName")
    public RoleName: string;

    /** @description Role Connection Definition Id */
    // @ApiMember(DataType="Guid", Description="Role Connection Definition Id", Name="RoleConnectionDefinitionId")
    public RoleConnectionDefinitionId: string;

    /** @description Contact Types the Role applies to */
    // @ApiMember(DataType="List", Description="Contact Types the Role applies to", Name="ContactTypes")
    public ContactTypes: string[];

    /** @description Does the role require contacts to accept it? */
    // @ApiMember(DataType="bool", Description="Does the role require contacts to accept it?", Name="RequireContactsToAccept")
    public RequireContactsToAccept: boolean;

    public IsPlatformRole: boolean;
    public CanAddContacts: boolean;
    public CanShareRole: boolean;
    public CanEditRole: boolean;
    public CanEditContactTypes: boolean;
    public Contacts: UserProfileSummaryModel[];
    public ShareDetails: IList<ObjectShareModel>;
    public ListItemFilters: ListItemFilterModel[];
    public ContactIdOwner: string;
    public TotalItemCount: number;

    public constructor(init?: Partial<ViewRoleModel>) { super(init); (Object as any).assign(this, init); }
}

// @ApiResponse(Description="Details of the specified contact role, including details of the contacts and organisations sharing it")
export class GetContactRoleDetailsResponse
{
    public ContactRole: ViewRoleModel;
    public ResponseStatus: ResponseStatus;

    public constructor(init?: Partial<GetContactRoleDetailsResponse>) { (Object as any).assign(this, init); }
}

/** @description Get details of the specified contact role, including details of the contacts and organisations sharing it */
// @Api(Description="Get details of the specified contact role, including details of the contacts and organisations sharing it")
export class GetContactRoleDetails extends PagedModel
{
    /** @description The Contact Role Guid. Records retrieved will belong to this contact. */
    // @ApiMember(DataType="Guid", Description="The Contact Role Guid. Records retrieved will belong to this contact.", IsRequired=true, Name="ContactRoleId", ParameterType="query")
    public ContactRoleId: string;

    /** @description Text filter */
    // @ApiMember(DataType="string", Description="Text filter", Name="SearchText", ParameterType="query")
    public SearchText: string;

    public constructor(init?: Partial<GetContactRoleDetails>) { super(init); (Object as any).assign(this, init); }
}

TypeScript GetContactRoleDetails 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/contactrole/{ContactRoleId} HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	SearchText: String,
	PageNumber: 0,
	PageSize: 0,
	SortIndex: 0,
	SortOrder: Ascending
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ContactRole: 
	{
		RoleName: String,
		ContactTypes: 
		[
			00000000-0000-0000-0000-000000000000
		],
		RequireContactsToAccept: False,
		IsPlatformRole: False,
		CanAddContacts: False,
		CanShareRole: False,
		CanEditRole: False,
		CanEditContactTypes: False,
		Contacts: 
		[
			{
				UserName: String,
				ProfileName: String,
				ContactFullName: String,
				EmailAddress: String,
				EmailSignature: String,
				MobileNumber: String,
				PhoneNumber: String,
				ContactTypeName: String,
				FirstName: String,
				Surname: String,
				Title: String,
				LegalName: String,
				TradingName: String,
				Abn: String,
				Acn: String,
				Arbn: String,
				GstRegistered: False,
				ESL: False,
				Language: String,
				InterpreterRequired: False,
				LicenseeNotes: String,
				ProfilePhotoUrl: String,
				ProfilePhotoThumbnailUrl: String,
				Description: String,
				EmploymentIndustry: String,
				EmploymentRole: String,
				EmploymentGeographicArea: String,
				TimezoneName: String,
				PrimaryAddress: String,
				IsActiveContact: False
			}
		],
		ListItemFilters: 
		[
			{
				FilterName: String,
				ListItemIsInFilter: False
			}
		],
		TotalItemCount: 0,
		PageNumber: 0,
		PageSize: 0,
		SortIndex: 0,
		SortOrder: Ascending
	},
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}