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
- .customer_get(metadata) ⇒ Object
- .customer_set(internal_fields, *user_metadata) ⇒ Object
- .deep_merge(base, override) ⇒ Object
- .merge(internal, *user_metadata) ⇒ Object
- .metadata_fetch(metadata, key) ⇒ Object
- .metadata_key(key) ⇒ Object
- .stringify_keys(value) ⇒ Object
- .subscription_get(metadata) ⇒ Object
- .subscription_set(internal_fields, *user_metadata) ⇒ Object
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 |