Sha256: a2ba0d83d054b198fb816b181474c2a38aeef18ca2de0fca25f3cb3c2ac86936
Contents?: true
Size: 556 Bytes
Versions: 4
Compression:
Stored size: 556 Bytes
Contents
module RailsSso class UpdateUser def initialize(data, options = {}) @id, @data = data['id'], data.except('id') @fields, @repository = options.values_at(:fields, :repository) end def call if user = repository.find_by_sso_id(id) repository.update(user, params) user else repository.create_with_sso_id(id, params) end end private attr_reader :id, :data, :repository def fields @fields.map(&:to_s) end def params data.slice(*fields) end end end
Version data entries
4 entries across 4 versions & 1 rubygems