Class: Shimmer::Auth::Provider

Inherits:
Object
  • Object
show all
Defined in:
lib/shimmer/auth.rb

Direct Known Subclasses

AppleProvider, DevProvider, GoogleProvider

Defined Under Namespace

Classes: InvalidTokenError, UserDetails

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model) ⇒ Provider

Returns a new instance of Provider.



11
12
13
# File 'lib/shimmer/auth.rb', line 11

def initialize(model)
  @model = model
end

Instance Attribute Details

#modelObject (readonly)

Returns the value of attribute model.



8
9
10
# File 'lib/shimmer/auth.rb', line 8

def model
  @model
end

Instance Method Details

#create_device(user:, user_agent: nil, ip: nil) ⇒ Object



20
21
22
23
24
# File 'lib/shimmer/auth.rb', line 20

def create_device(user:, user_agent: nil, ip: nil)
  user.devices.create!(user_agent: user_agent).tap do |device|
    (user, device_id: device.id, user_agent: user_agent, ip: ip)
  end
end

#login(params:, user_agent: nil, ip: nil) ⇒ Object



15
16
17
18
# File 'lib/shimmer/auth.rb', line 15

def (params:, user_agent: nil, ip: nil)
  user = fetch_user request_details(params)
  create_device user: user, user_agent: user_agent, ip: ip
end