Module: BetterAuth::Stripe::Metadata

Defined in:
lib/better_auth/stripe/metadata.rb

Constant Summary collapse

UNSAFE_KEYS =
%w[__proto__ constructor prototype].freeze

Class Method Summary collapse

Class Method Details

.customer_get(metadata) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/better_auth/stripe/metadata.rb', line 27

def customer_get()
  {
    userId: (, "userId"),
    organizationId: (, "organizationId"),
    customerType: (, "customerType")
  }
end

.customer_set(internal_fields, *user_metadata) ⇒ Object



23
24
25
# File 'lib/better_auth/stripe/metadata.rb', line 23

def customer_set(internal_fields, *)
  merge(internal_fields, *)
end

.deep_merge(base, override) ⇒ Object



65
66
67
68
69
70
71
72
73
# File 'lib/better_auth/stripe/metadata.rb', line 65

def deep_merge(base, override)
  BetterAuth::Plugins.normalize_hash(base).merge(BetterAuth::Plugins.normalize_hash(override)) do |_key, old, new|
    if old.is_a?(Hash) && new.is_a?(Hash)
      deep_merge(old, new)
    else
      new
    end
  end
end

.merge(internal, *user_metadata) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/better_auth/stripe/metadata.rb', line 10

def merge(internal, *)
  .compact
    .reduce({}) do |acc, entry|
      next acc unless entry.respond_to?(:each)

      acc.merge(entry.each_with_object({}) do |(key, value), result|
         = (key)
        result[] = value unless UNSAFE_KEYS.include?()
      end)
    end
    .merge(internal.transform_keys { |key| (key) })
end

.metadata_fetch(metadata, key) ⇒ Object



59
60
61
62
63
# File 'lib/better_auth/stripe/metadata.rb', line 59

def (, key)
  return nil unless .respond_to?(:[])

  [key] || [key.to_sym] || [BetterAuth::Plugins.normalize_key(key)] || [BetterAuth::Plugins.normalize_key(key).to_s]
end

.metadata_key(key) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
# File 'lib/better_auth/stripe/metadata.rb', line 47

def (key)
  case BetterAuth::Plugins.normalize_key(key)
  when :user_id then "userId"
  when :organization_id then "organizationId"
  when :customer_type then "customerType"
  when :subscription_id then "subscriptionId"
  when :reference_id then "referenceId"
  else
    key.to_s
  end
end

.stringify_keys(value) ⇒ Object



75
76
77
78
79
80
81
82
# File 'lib/better_auth/stripe/metadata.rb', line 75

def stringify_keys(value)
  return value unless value.is_a?(Hash)

  value.each_with_object({}) do |(key, object), result|
    result[key.to_s] = object
    result[key.to_sym] = object
  end
end

.subscription_get(metadata) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/better_auth/stripe/metadata.rb', line 39

def subscription_get()
  {
    userId: (, "userId"),
    subscriptionId: (, "subscriptionId"),
    referenceId: (, "referenceId")
  }
end

.subscription_set(internal_fields, *user_metadata) ⇒ Object



35
36
37
# File 'lib/better_auth/stripe/metadata.rb', line 35

def subscription_set(internal_fields, *)
  merge(internal_fields, *)
end