travis-api/lib/travis/model/user/oauth.rb
Aakriti Gupta 65f1a29d86 Move travis-core files from /vendor to /lib.
- Re-factor
- Remove code for notifications
- Remove addons
- Remove travis-core gem.
- Ignore logs directory only
- Move core tests to spec/lib
2016-07-20 11:22:25 +02:00

24 lines
743 B
Ruby

class User
module Oauth
class << self
def find_or_create_by(payload)
attrs = attributes_from(payload)
user = User.find_by_github_id(attrs['github_id'])
user ? user.update_attributes(attrs) : user = User.create!(attrs)
user
end
def attributes_from(payload)
{
'name' => payload['info']['name'],
'email' => payload['info']['email'],
'login' => payload['info']['nickname'],
'github_id' => payload['uid'].to_i,
'github_oauth_token' => payload['credentials']['token'],
'gravatar_id' => payload['extra']['raw_info']['gravatar_id']
}
end
end
end
end