Parrhesia.Protocol.Filter (parrhesia v0.12.0)

Copy Markdown

NIP-01 filter validation and matching.

Summary

Types

validation_error()

@type validation_error() ::
  :invalid_filters
  | :empty_filters
  | :too_many_filters
  | :invalid_filter
  | :invalid_filter_key
  | :invalid_ids
  | :invalid_authors
  | :invalid_kinds
  | :invalid_since
  | :invalid_until
  | :invalid_limit
  | :invalid_search
  | :too_many_tag_values
  | :invalid_tag_filter

Functions

error_message(reason)

@spec error_message(validation_error()) :: String.t()

matches_any?(event, filters)

@spec matches_any?(map(), [map()]) :: boolean()

matches_filter?(event, filter)

@spec matches_filter?(map(), map()) :: boolean()

validate_filter(filter)

@spec validate_filter(map()) :: :ok | {:error, validation_error()}

validate_filters(filters)

@spec validate_filters([map()]) :: :ok | {:error, validation_error()}