Billiecart API

<back to all web services

SearchAllEmployersRequest

Requires Authentication
Requires the role:manager
The following routes are available for this service:
GET/employers

export class GetOperationUnTenanted<TResponse> implements IHasGetOptions, IGet
{
    public embed?: string;

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

export class SearchOperationUnTenanted<TResponse> extends GetOperationUnTenanted<TResponse> implements IHasSearchOptions
{
    public distinct?: string;
    public limit?: number;
    public offset?: number;
    public sort?: string;
    public filter?: string;
    public search?: string;

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

export class SearchOperationTenanted<TResponse> extends SearchOperationUnTenanted<TResponse> implements ITenantedRequest
{
    public organisationId?: string;

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

export class BusinessDetails
{
    public tradingName?: string;
    public australianBusinessNumber?: string;
    public australianCompanyNumber?: string;

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

export class Contact
{
    public contactName?: string;
    public email?: string;
    public phoneNumber?: string;
    public preferredContactMethod?: string;

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

export class Address
{
    public addressLine1?: string;
    public addressLine2?: string;
    public suburb?: string;
    public stateTerritory?: string;
    public postcode?: string;

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

export class Employer implements IIdentifiableResource
{
    public name?: string;
    public businessDetails?: BusinessDetails;
    public contact?: Contact;
    public postalAddress?: Address;
    public physicalAddress?: Address;
    public id?: string;

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

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

export class Sorting
{
    public by?: string;
    public direction: SortDirection;

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

export class Filtering
{
    public fields?: string[];
    public search?: string;

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

export class SearchMetadata
{
    public total: number;
    public limit: number;
    public offset: number;
    public sort?: Sorting;
    public filter?: Filtering;

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

export class SearchAllEmployersResponse
{
    public responseStatus?: ResponseStatus;
    public employers?: Employer[];
    public metadata?: SearchMetadata;

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

export class SearchAllEmployersRequest extends SearchOperationTenanted<SearchAllEmployersResponse>
{

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

TypeScript SearchAllEmployersRequest 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.

GET /employers HTTP/1.1 
Host: staging-api.billiecart.com.au 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	},
	employers: 
	[
		{
			name: String,
			businessDetails: 
			{
				tradingName: String,
				australianBusinessNumber: String,
				australianCompanyNumber: String
			},
			contact: 
			{
				contactName: String,
				email: String,
				phoneNumber: String,
				preferredContactMethod: String
			},
			postalAddress: 
			{
				addressLine1: String,
				addressLine2: String,
				suburb: String,
				stateTerritory: String,
				postcode: String
			},
			physicalAddress: 
			{
				addressLine1: String,
				addressLine2: String,
				suburb: String,
				stateTerritory: String,
				postcode: String
			},
			id: String
		}
	],
	metadata: 
	{
		total: 0,
		limit: 0,
		offset: 0,
		sort: 
		{
			by: String,
			direction: Ascending
		},
		filter: 
		{
			fields: 
			[
				String
			],
			search: String
		}
	}
}