23 lines
		
	
	
	
		
			638 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			23 lines
		
	
	
	
		
			638 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| 
								 | 
							
								# frozen_string_literal: true
							 | 
						||
| 
								 | 
							
								# == Schema Information
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Table name: identities
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#  id         :integer          not null, primary key
							 | 
						||
| 
								 | 
							
								#  user_id    :integer
							 | 
						||
| 
								 | 
							
								#  provider   :string           default(""), not null
							 | 
						||
| 
								 | 
							
								#  uid        :string           default(""), not null
							 | 
						||
| 
								 | 
							
								#  created_at :datetime         not null
							 | 
						||
| 
								 | 
							
								#  updated_at :datetime         not null
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Identity < ApplicationRecord
							 | 
						||
| 
								 | 
							
								  belongs_to :user, dependent: :destroy
							 | 
						||
| 
								 | 
							
								  validates :uid, presence: true, uniqueness: { scope: :provider }
							 | 
						||
| 
								 | 
							
								  validates :provider, presence: true
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def self.find_for_oauth(auth)
							 | 
						||
| 
								 | 
							
								    find_or_create_by(uid: auth.uid, provider: auth.provider)
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								end
							 |