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
Protocol for caching evaluated audience results.
Protocol for caching evaluated audience results.
(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
(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-all this)Remove all cached audience results.
Returns: nil
Remove all cached audience results. Returns: nil
(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
Protocol for persisting and retrieving audience definitions.
Protocol for persisting and retrieving audience definitions.
(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-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-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-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
Protocol for evaluating audience membership.
Protocol for evaluating audience membership.
(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-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}Protocol for querying user data during filter evaluation.
Protocol for querying user data during filter evaluation.
(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-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)
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |