Module: GetFluxly::Identity

Defined in:
lib/getfluxly/identity.rb

Overview

Input validators for track / identify / alias. Field names match the wire shape (snake_case) so callers don’t have to translate.

Class Method Summary collapse

Class Method Details

.require_alias!(user_id:, anonymous_id:, previous_id:) ⇒ Object

Raises:



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/getfluxly/identity.rb', line 18

def require_alias!(user_id:, anonymous_id:, previous_id:)
  if user_id.nil? || user_id.empty?
    raise GetFluxly::Error.new("alias requires user_id",
                               code: "validation_error")
  end

  return if anonymous_id || previous_id

  raise GetFluxly::Error.new(
    "alias requires anonymous_id or previous_id",
    code: "validation_error"
  )
end

.require_one_id!(anonymous_id:, external_id:, user_id:) ⇒ Object

Raises:



9
10
11
12
13
14
15
16
# File 'lib/getfluxly/identity.rb', line 9

def require_one_id!(anonymous_id:, external_id:, user_id:)
  return if anonymous_id || external_id || user_id

  raise GetFluxly::Error.new(
    "track / identify requires at least one of anonymous_id, external_id, user_id",
    code: "validation_error"
  )
end