Filter structure - iOS
The Filter structure provides the ability to configure filters that define the data to return in the return results of a REST endpoint query.
Filter - init(criteria criteriaList: [Criteria], sortBy: [Sort]? = nil, queryCategory: String? = nil)
Creates a filter based on one or more filter criteria that are OR'd together.
| Name | Type | Description |
|---|---|---|
| criteria | Array | Top level criteria conditions to group with OR connectors. |
| sortBy | String | Optional. Sort order of the return results. Possible values:
Default: asc |
| queryCategory | String | Optional. Name of the query category. Default: None |
| Type | Description |
|---|---|
| None |
The following example shows creating three separate criteria and when passed in, if any of those criteria are met, the record is passed back in the return results.
// All of criteria1 conditions must be met
let criteria1 = Criteria(conditions: …)
// OR all of criteria2 conditions must be met
let criteria2 = Criteria(conditions: …)
// OR all of criteria3 conditions must be met
let criteria3 = Criteria(conditions: …)
let filter = Filter(criterias: [criteria1, criteria2, criteria3])
Filter - init(conditions: [QueryProviding], sorts: [Sort]? = nil)
Creates a filter based on all specified conditions (AND'd together)
| Name | Type | Description |
|---|---|---|
| conditions | QueryProviding | Conditions to group with an AND connector.Possible values:
|
| sorts | String | Optional. Sort order of the return results. Possible values:
Default: asc |
| Type | Description |
|---|---|
| None |
The following code example shows how to call this function.
// Where the record is active
let condition1 = Condition.boolean(field: "active", .is(true))
// AND the date value of the SLA due field is on "today" or any date after today.
let condition2 = Condition.dateTime(field: "sla_due", .atOrAfter(0, .daysAgoStart))
let filter = Filter(conditions: [condition1, condition2])
Filter - init(query: String, queryCategory: String? = nil)
Creates a filter using a specified encoded query.
| Name | Type | Description |
|---|---|---|
| query | String | Encoded queryEncoded query to use to filter the records to return from the table. |
| queryCategory | String | Optional. Name of the query category to use for the query. |
| Type | Description |
|---|---|
| None |
The following code example shows how to call this function.
let query = "active=true^short_descriptionLIKEbroken"
let filter = Filter(query: query)
Filter - init(keywords: String? = nil, conditions: [Condition], sortBy: [Sort]? = nil)
Creates a filter based on specific keywords and conditions that are AND'd together.
| Name | Type | Description |
|---|---|---|
| keywords | String | Optional. Any specific word or phrase to search for. Default: nil - No specific word search. |
| conditions | String | Conditions to group with an AND connector.Possible values:
|
| sortBy | String | Optional. Sort order of the return results. Possible values:
Default: asc |
| Type | Description |
|---|---|
| None |
// Keyword that must be found in the record
let searchTerm = "…"
// AND the specified condition must be met
let condition1 = Condition.email(field: "state", .changesFrom("4"))
let filter = Filter(keywords: searchTerm, condition: condition1)