Liking cljdoc? Tell your friends :D

wagoe.audience.ports

Port definitions for the wagoe-audience library.

Four protocols cover the full lifecycle:

IAudienceResolver — evaluate audiences and check membership IAudienceRepository — persist and retrieve audience definitions IAudienceCache — cache evaluated audience results IUserDataSource — query users for filter evaluation

Port definitions for the wagoe-audience library.

Four protocols cover the full lifecycle:

IAudienceResolver    — evaluate audiences and check membership
IAudienceRepository  — persist and retrieve audience definitions
IAudienceCache       — cache evaluated audience results
IUserDataSource      — query users for filter evaluation
raw docstring

IAudienceCachecljprotocol

Protocol for caching evaluated audience results.

Protocol for caching evaluated audience results.

get-cachedclj

(get-cached this audience-id)

Retrieve a cached SegmentResult for an audience.

Args: audience-id - keyword

Returns: SegmentResult map, or nil if not cached / expired

Retrieve a cached SegmentResult for an audience.

Args:
  audience-id - keyword

Returns:
  SegmentResult map, or nil if not cached / expired

invalidateclj

(invalidate this audience-id)

Remove a single cached audience result.

Args: audience-id - keyword

Returns: nil

Remove a single cached audience result.

Args:
  audience-id - keyword

Returns:
  nil

invalidate-allclj

(invalidate-all this)

Remove all cached audience results.

Returns: nil

Remove all cached audience results.

Returns:
  nil

put-cachedclj

(put-cached this audience-id result ttl-minutes)

Store a SegmentResult in cache with a TTL.

Args: audience-id - keyword result - SegmentResult map ttl-minutes - integer, cache lifetime in minutes

Returns: result

Store a SegmentResult in cache with a TTL.

Args:
  audience-id  - keyword
  result       - SegmentResult map
  ttl-minutes  - integer, cache lifetime in minutes

Returns:
  result
sourceraw docstring

IAudienceRepositorycljprotocol

Protocol for persisting and retrieving audience definitions.

Protocol for persisting and retrieving audience definitions.

delete-audienceclj

(delete-audience this audience-id)

Delete an audience definition by id.

Args: audience-id - keyword or UUID

Returns: nil

Delete an audience definition by id.

Args:
  audience-id - keyword or UUID

Returns:
  nil

find-audienceclj

(find-audience this audience-id)

Retrieve an audience definition by id.

Args: audience-id - keyword or UUID

Returns: AudienceDefinition map, or nil if not found

Retrieve an audience definition by id.

Args:
  audience-id - keyword or UUID

Returns:
  AudienceDefinition map, or nil if not found

list-audiencesclj

(list-audiences this)
(list-audiences this filters)

List all stored audience definitions, optionally filtered.

Args: filters - optional map with :tags :label-contains

Returns: Vector of AudienceDefinition maps

List all stored audience definitions, optionally filtered.

Args:
  filters - optional map with :tags :label-contains

Returns:
  Vector of AudienceDefinition maps

save-audienceclj

(save-audience this definition)

Persist an audience definition (insert or update).

Args: definition - AudienceDefinition map

Returns: saved definition map

Persist an audience definition (insert or update).

Args:
  definition - AudienceDefinition map

Returns:
  saved definition map
sourceraw docstring

IAudienceResolvercljprotocol

Protocol for evaluating audience membership.

Protocol for evaluating audience membership.

member?clj

(member? this audience-id user-id)

Quick membership check for a single user.

Args: audience-id - keyword user-id - UUID

Returns: boolean

Quick membership check for a single user.

Args:
  audience-id - keyword
  user-id     - UUID

Returns:
  boolean

resolve-audienceclj

(resolve-audience this audience-id)
(resolve-audience this audience-id opts)

Evaluate an audience and return the full result set.

Args: audience-id - keyword identifying the audience definition opts - optional map with :force-refresh? :as-of

Returns: SegmentResult map: {:user-ids #{...} :count n :cached? bool :evaluated-at inst}

Evaluate an audience and return the full result set.

Args:
  audience-id - keyword identifying the audience definition
  opts        - optional map with :force-refresh? :as-of

Returns:
  SegmentResult map: {:user-ids #{...} :count n :cached? bool :evaluated-at inst}
sourceraw docstring

IUserDataSourcecljprotocol

Protocol for querying user data during filter evaluation.

Protocol for querying user data during filter evaluation.

load-usersclj

(load-users this user-ids)

Load full user records by a set of UUIDs.

Args: user-ids - collection of UUID

Returns: Vector of user maps (kebab-case keys)

Load full user records by a set of UUIDs.

Args:
  user-ids - collection of UUID

Returns:
  Vector of user maps (kebab-case keys)

query-users-sqlclj

(query-users-sql this honeysql-clause)

Execute a HoneySQL query against the users table.

Args: honeysql-clause - HoneySQL map (select/where/join etc.)

Returns: Vector of user IDs (UUIDs)

Execute a HoneySQL query against the users table.

Args:
  honeysql-clause - HoneySQL map (select/where/join etc.)

Returns:
  Vector of user IDs (UUIDs)
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close