Class: Audiences::ExternalUser
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Audiences::ExternalUser
- Defined in:
- app/models/audiences/external_user.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.fetch(external_ids) ⇒ Object
13 14 15 16 17 18 |
# File 'app/models/audiences/external_user.rb', line 13 def self.fetch(external_ids) return [] unless external_ids.any? filter = Array(external_ids).map { "externalId eq #{_1}" }.join(" OR ") Audiences::Scim.resource(:Users).all(filter: filter) end |
.wrap(resources) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'app/models/audiences/external_user.rb', line 20 def self.wrap(resources) return [] unless resources&.any? attrs = resources.map do |data| { user_id: data["externalId"], data: data, created_at: Time.current, updated_at: Time.current } end unique_by = :user_id if connection.supports_insert_conflict_target? upsert_all(attrs, unique_by: unique_by) # rubocop:disable Rails/SkipsModelValidations where(user_id: attrs.pluck(:user_id)) end |
Instance Method Details
#as_json ⇒ Object
31 32 33 |
# File 'app/models/audiences/external_user.rb', line 31 def as_json(*) data.as_json end |