freshbooks-php-sdk

FilterBuilder implements BuilderInterface

Builder for making filtered list queries.

Tags
link
https://www.freshbooks.com/api/parameters

Table of Contents

Interfaces

BuilderInterface

Properties

$filters  : array<string|int, mixed>

Methods

__construct()  : void
Builder for making filtered list queries.
between()  : self
Filters results where the provided field is between two values.
boolean()  : self
Filters results where the field is equal to true or false.
build()  : string
Builds the query string parameters from the Builder.
datetime()  : self
Filters for entries that come before or after a particular time, as specified by the field.
equals()  : self
Filters results where the field is equal to the provided value.
inList()  : self
Filters if the provided field matches a value in a list.
like()  : self
Filters for a match contained within the field being searched. For example, "leaf" will Like-match "aleaf" and "leafy", but not "leav", and "leafs" would not Like-match "leaf".
convertBetweenKey()  : string
convertBetweenValue()  : string

Properties

Methods

__construct()

Builder for making filtered list queries.

public __construct() : void

between()

Filters results where the provided field is between two values.

public between(string $key[, mixed $min = null ][, mixed $max = null ]) : self

In general 'between' filters end in a _min or _max (as in amount_min or amount_max) or _date (as in start_date, end_date). If the provided field does not end in _min/_max or _date, then the appropriate _min/_max will be appended.

For date fields, you can pass the iso format 2020-10-17 or a datetime or date object, which will be converted to the proper string format.

Examples:

  • $filter->between('amount', 1, 10) will yield filters &search[amount_min]=1&search[amount_max]=10
  • $filter->between('amount_min', min: 1) will yield filter &search[amount_min]=1
  • $filter->between('amount_max', max: 10) will yield filter &search[amount_max]=10
  • $filter->between('start_date', min: '2020-10-17') will yield filter &search[start_date]=2020-10-17
  • $filter->between('start_date', min: new DateTime('2020-10-17')) will yield filter &search[start_date]=2020-10-17
Parameters
$key : string

The API response field to filter on

$min : mixed = null

(Optional) The value the field should be greater than (or equal to)

$max : mixed = null

(Optional) The value the field should be less than (or equal to)

Return values
self

The FilterBuilder instance

boolean()

Filters results where the field is equal to true or false.

public boolean(string $key, bool $value) : self

Example: $filter->boolean('active', false) will yield the filter &active=false

Parameters
$key : string

The API response field to filter on

$value : bool

true or false

Return values
self

The FilterBuilder instance

build()

Builds the query string parameters from the Builder.

public build([string $resourceName = null ]) : string
Parameters
$resourceName : string = null

The type of resource to generate the query string for. Eg. AccountingResource, ProjectsResource

Return values
string

The built query string

datetime()

Filters for entries that come before or after a particular time, as specified by the field.

public datetime(string $key, mixed $value) : self

Eg. "updated_since" on Time Entries will return time entries updated after the provided time.

If a string is provided, it must be in ISO 8601 format (eg. '2010-10-17T05:45:53')

Example: $filter->datetime('updated_since', '2020-10-17T07:03:01') will yield the filter &updated_since=2020-10-17T07:03:01

Similarly: $filter->datetime('updated_since', new DateTime('2020-10-17T07:03:01.012345Z', new DateTimeZone('UTC'))) will yield the same.

Parameters
$key : string

The API response field to filter on

$value : mixed

The DateTime object or ISO 8601 format string value

Return values
self

The FilterBuilder instance

equals()

Filters results where the field is equal to the provided value.

public equals(string $key, mixed $value) : self

Example: $filter->equals('username', 'Bob') will yield the filter &search[username]=Bob

Parameters
$key : string

The API response field to filter on

$value : mixed

The value the field should equal

Return values
self

The FilterBuilder instance

inList()

Filters if the provided field matches a value in a list.

public inList(string $key, array<string|int, mixed> $values) : self

Example: $filter->equals('username', 'Bob') will yield the filter &search[username]=Bob

Parameters
$key : string

The API response field to filter on

$values : array<string|int, mixed>
Return values
self

The FilterBuilder instance

like()

Filters for a match contained within the field being searched. For example, "leaf" will Like-match "aleaf" and "leafy", but not "leav", and "leafs" would not Like-match "leaf".

public like(string $key, mixed $value) : self
Parameters
$key : string

The API response field to filter on

$value : mixed

The value the field should contain

Return values
self

The FilterBuilder instance

convertBetweenKey()

private convertBetweenKey(string $key, string $suffix) : string
Parameters
$key : string
$suffix : string
Return values
string

convertBetweenValue()

private convertBetweenValue(mixed $value) : string
Parameters
$value : mixed
Return values
string

        
On this page

Search results