Builder

.Filter. Builder

Builder for creating an instance of a Filter.

Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // The profile property contains any of the selected values.
  const filter1 = new Filter.Builder().property("geo_city_name").containsAny(['barcelona', 'baku']).build();

  // The profile property does not contain any of the selected values.
  const filter2 = new Filter.Builder().property("geo_city_name").notContainsAny(['monaco city', 'hanoi']).build();
});

Functions

staticblueconic.api.data.domain.Filter.Builder.Builder#build()blueconic.api.data.domain.Filter

Builds the Filter based on the set properties.

Returns:
Type Description
blueconic.api.data.domain.Filter The constructed filter.

staticblueconic.api.data.domain.Filter.Builder.Builder#containsAll(values)blueconic.api.data.domain.Filter.Builder

Contains all of the values of the arguments.

Name Type Description
values Array.<String>

The values to match against.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // The profile property contains all the selected values.
  const filter1 = new Filter.Builder().property("geo_city_name").containsAll(['sochi', 'zandvoort']).build();

  // Include profiles that are part of all of the selected segments.
  const filter2 = new Filter.Builder().segments().containsAll([knownVisitorsSegment.id, allVisitorsSegment.id]).build();

  // Include profiles for which consent is unknown for all of the given objectives.
  const filter3 = new Filter.Builder().objectives(Filter.CONSENT_OPERATOR.UNKNOWN).containsAll(['objective1', 'objective2']).build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#containsAny(values)blueconic.api.data.domain.Filter.Builder

Contain at least one value of the arguments.

Name Type Description
values Array.<String>

The values to match against.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // The profile property contains any of the selected values.
  const filter1 = new Filter.Builder().property("geo_city_name").containsAny(['barcelona', 'baku']).build();

  // Include profiles that are part of any of the selected segments.
  const filter2 = new Filter.Builder().segments().containsAny([knownVisitorsSegment.id, allVisitorsSegment.id]).build();

  // Include profiles for which consent is unknown for any of the given objectives.
  const filter3 = new Filter.Builder().objectives(Filter.CONSENT_OPERATOR.UNKNOWN).containsAny(['objective1', 'objective2']).build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#empty()blueconic.api.data.domain.Filter.Builder

Can be set to make this a query that checks whether the value is empty.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // The profile property must be empty.
  const filter1 = new Filter.Builder().property("geo_city_name").empty().build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#groupProperty(propertyId)blueconic.api.data.domain.Filter.Builder

Specifies that this is a filter on a group property.

Name Type Description
propertyId String

The grouptype property id to filter on (e.g. store_name).

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // The group property contains any of the selected values.
  const filter1 = new Filter.Builder().property("favorite_store").groupProperty("store_name").containsAny(['Albert Heijn', 'Target']).build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#inRange(minRange, maxRange)blueconic.api.data.domain.Filter.Builder

Specifies the range (min / max) of the value of the property. The arguments can be null.

Name Type Description
minRange number

The the min value of the property.

maxRange number

The the max value of the property.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // Number minimal value of 8.
  const filter1 = new Filter.Builder().property("visits").inRange(8, null).build();

  // Number in range between 1 to 5.
  const filter2 = new Filter.Builder().property("visits").inRange(1, 5).build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#lastDays()blueconic.api.data.domain.Filter.Builder

Used with date properties to specify the last n days.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // Last 4 days.
  const filter1 = new Filter.Builder().property("firstvisit").lastDays(4).build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#nextDays(nextDays)blueconic.api.data.domain.Filter.Builder

Used with date properties to specify the next n days.

Name Type Description
nextDays number

Used with date properties to specify the next n days.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // In the next 4 days.
  const filter1 = new Filter.Builder().property("firstvisit").nextDays(4).build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#notContainsAll(values)blueconic.api.data.domain.Filter.Builder

Doesn't contain all of the values of the arguments.

Name Type Description
values String

The values to match against.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // The profile property does not contain all the selected values.
  const filter1 = new Filter.Builder().property("geo_city_name").notContainsAll(['boston', 'spa']).build();

  // Include profiles that are not part of all of the selected segments.
  const filter2 = new Filter.Builder().segments().notContainsAll([knownVisitorsSegment.id, allVisitorsSegment.id]).build();
})

staticblueconic.api.data.domain.Filter.Builder.Builder#notContainsAny(values)blueconic.api.data.domain.Filter.Builder

Doesn't contain any of the values of the arguments.

Name Type Description
values Array.<String>

The values to match against.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // The profile property does not contain any of the selected values.
  const filter1 = new Filter.Builder().property("geo_city_name").notContainsAny(['monaco city', 'hanoi']).build();

  // Include profiles that are not part of any of the selected segments.
  const filter2 = new Filter.Builder().segments().notContainsAny([knownVisitorsSegment.id, allVisitorsSegment.id]).build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#notEmpty()blueconic.api.data.domain.Filter.Builder

Can be set to make this a query that checks whether the value is not empty.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // The profile property must not be empty.
  const filter1 = new Filter.Builder().property("geo_city_name").notEmpty().build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#notInRange(minRange, maxRange)blueconic.api.data.domain.Filter.Builder

Specifies the inversed range (min / max) of the value of the property. The arguments can be null.

Name Type Description
minRange number

The the min value of the property.

maxRange number

The the max value of the property.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // Number outside of range 1 to 5.
  const filter1 = new Filter.Builder().property("visits").notInRange(1, 5).build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#notLastDays(lastDays)blueconic.api.data.domain.Filter.Builder

Used with date properties to specify the in in the last n days.

Name Type Description
lastDays number

Used with date properties to specify the inversed last n days.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // Not in the last 4 days.
  const filter1 = new Filter.Builder().property("firstvisit").notLastDays(4).build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#notNextDays(nextDays)blueconic.api.data.domain.Filter.Builder

Used with date properties to specify not the next n days.

Name Type Description
nextDays number

Used with date properties to specify the inversed next n days.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // Not in the next 4 days.
  const filter1 = new Filter.Builder().property("firstvisit").notNextDays(4).build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#objectives(consent)blueconic.api.data.domain.Filter.Builder

Specifies that this is a filter on objectives.

Name Type Description
consent String

The type of consent needed for the objectives. See Filter.CONSENT_OPERATOR for possible values.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // Include profiles for which consent is unknown for any of the given objectives.
  const filter1 = new Filter.Builder().objectives(Filter.CONSENT_OPERATOR.UNKNOWN).containsAny(['objective1', 'objective2']).build();

  // Include profiles for which consent is unknown for all of the given objectives.
  const filter2 = new Filter.Builder().objectives(Filter.CONSENT_OPERATOR.UNKNOWN).containsAll(['objective1', 'objective2']).build();

  // Include profiles for which consent is not needed or gave consent for all of the given objectives
  const filter3 = new Filter.Builder().objectives(Filter.CONSENT_OPERATOR.CONSENTED_OR_UNNEEDED).containsAll(['objective1', 'objective2']).build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#property(propertyId)blueconic.api.data.domain.Filter.Builder

Specifies that this is a filter on a profile property.

Name Type Description
propertyId String

The property id to filter on.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  const filter1 = new Filter.Builder().property("geo_city_name").build();
  const filter2 = new Filter.Builder().property("visits").build();
});

staticblueconic.api.data.domain.Filter.Builder.Builder#segments()blueconic.api.data.domain.Filter.Builder

Specifies that this is a filter on segments.

Returns:
Type Description
blueconic.api.data.domain.Filter.Builder The Builder object, which allows for method chaining.
Example
define([
  "blueconic/api/data/domain/Filter"
], function(Filter) {
  // Include profiles that are part of any of the selected segments.
  const filter1 = new Filter.Builder().segments().containsAny([knownVisitorsSegment.id, allVisitorsSegment.id]).build();

  // Include profiles that are not part of any of the selected segments.
  const filter2 = new Filter.Builder().segments().notContainsAny([knownVisitorsSegment.id, allVisitorsSegment.id]).build();

  // Include profiles that are part of all of the selected segments.
  const filter3 = new Filter.Builder().segments().containsAll([knownVisitorsSegment.id, allVisitorsSegment.id]).build();

  // Include profiles that are not part of all of the selected segments.
  const filter4 = new Filter.Builder().segments().notContainsAll([knownVisitorsSegment.id, allVisitorsSegment.id]).build();
});