@@ -20,19 +20,21 @@ class Account < ApplicationRecord
2020 def self . from_omniauth ( auth )
2121 where ( provider : auth . provider , uid : auth . uid ) . first_or_create do |account |
2222 account . provider = auth . provider
23- account . name = auth . info . name
24- account . surname = auth . info . nickname
23+ account . name = account . auth_provider_name ( auth )
24+ account . surname = account . auth_provider_surname ( auth )
2525 account . uid = auth . uid
2626 account . email = auth . info . email
2727 account . password = Devise . friendly_token [ 0 , 20 ]
28- account . github_avatar ( auth )
28+ account . auth_provider_avatar ( auth )
2929 end
3030 end
3131
32- def github_avatar ( auth )
33- return unless auth . info . image . present?
32+ def auth_provider_avatar ( auth )
33+ image_url = auth . provider == :alfred ? auth . info . avatar_url : auth . info . image
3434
35- downloaded_image = URI . parse ( auth . info . image ) . open
35+ return unless image_url . present?
36+
37+ downloaded_image = URI . parse ( image_url ) . open
3638
3739 avatar . attach (
3840 io : downloaded_image ,
@@ -42,6 +44,14 @@ def github_avatar(auth)
4244 end
4345 # rubocop: enable Metrics/AbcSize
4446
47+ def auth_provider_name ( auth )
48+ auth . provider == :alfred ? auth . info . first_name : auth . info . name
49+ end
50+
51+ def auth_provider_surname ( auth )
52+ auth . provider == :alfred ? auth . info . last_name : auth . info . nickname
53+ end
54+
4555 def full_name
4656 "#{ surname } #{ name } "
4757 end
0 commit comments