Skip to content

Commit 50bf058

Browse files
committed
Merge pull request #270 from rohitpaulk/remove-with_username
Remove `with_username` completely
2 parents 60dc5e0 + f9ef19d commit 50bf058

12 files changed

+20
-30
lines changed

app/controllers/achievements_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def award
2323
render_404
2424
else
2525
if @api_access.can_award?(award_params[:badge])
26-
user = User.with_username(award_params[provider], provider)
26+
user = User.find_by_provider_username(award_params[provider], provider)
2727
badge = badge_class_factory(award_params[:badge].to_s).new(user, Date.strptime(award_params[:date], '%m/%d/%Y'))
2828
badge.generate_fact!(award_params[:badge], award_params[provider], provider)
2929
unless user.nil?

app/controllers/users_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def autocomplete
144144

145145
def refresh
146146
refresh_params = params.permit(:username)
147-
user = User.with_username(refresh_params[:username])
147+
user = User.find_by_username(refresh_params[:username])
148148
RefreshUserJob.perform_async(user.id, true)
149149
flash[:notice] = "Queued #{refresh_params[:username]} for a refresh"
150150
redirect_to :back

app/helpers/application_helper.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module ApplicationHelper
22
include TweetButton
33
include SchemaOrgHelper
4-
4+
55
def link_twitter_path
66
'/auth/twitter'
77
end
@@ -161,7 +161,7 @@ def user_endorsements
161161
# https://twitter.com/#!/kennethkalmer/status/86392260555587584
162162
endorsements << [User.find_by_username('kennethkalmer'), "@coderwall really dishes out some neat achievements, hope this helps motivate even more folks to contribute to FOSS"]
163163

164-
# endorsements << [User.with_username('jeffhogan'), 'I really dig @coderwall...I see great potential in utilizing @coderwall for portfolio/linkedin/professional ref. for developers!']
164+
# endorsements << [User.find_by_username('jeffhogan'), 'I really dig @coderwall...I see great potential in utilizing @coderwall for portfolio/linkedin/professional ref. for developers!']
165165

166166
endorsements
167167
end

app/jobs/award_user_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class AwardUserJob
44
sidekiq_options queue: :user
55

66
def perform(username, badges)
7-
user = User.with_username(username)
7+
user = User.find_by_username(username)
88

99
if badges.first.is_a?(String)
1010
badges.map!(&:constantize)

app/jobs/build_activity_stream_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class BuildActivityStreamJob
44
sidekiq_options queue: :timeline
55

66
def perform(username)
7-
user = User.with_username(username)
7+
user = User.find_by_username(username)
88
user.build_repo_followed_activity!
99
end
1010
end

app/jobs/github_badge_org_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class GithubBadgeOrgJob
44
sidekiq_options queue: :github
55

66
def perform(username, action)
7-
user = User.with_username(username)
7+
user = User.find_by_username(username)
88
unless user.nil? or user.github.nil?
99
if action.to_sym == :add
1010
GithubBadge.new.add_all(user.badges, user.github)

app/jobs/seed_github_protips_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class SeedGithubProtipsJob
44
sidekiq_options queue: :github
55

66
def perform(username)
7-
user = User.with_username(username)
7+
user = User.find_by_username(username)
88
user.build_github_proptips_fast
99
end
1010
end

app/mailers/mail_preview.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class MailPreview < MailView
44
def popular_protips
55
from = 60.days.ago
66
to = 0.days.ago
7-
user = User.with_username(USERNAME)
7+
user = User.find_by_username(USERNAME)
88
REDIS.srem(ProtipMailer::CAMPAIGN_ID, user.id.to_s)
99
protips = ProtipMailer::Queries.popular_protips(from, to)
1010
ProtipMailer.popular_protips(user, protips, from, to).deliver

app/models/fact.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def tagged?(*required_tags)
5959

6060
def user
6161
service, username = self.owner.split(":")
62-
User.with_username(username, service)
62+
User.find_by_provider_username(username, service)
6363
end
6464
end
6565

app/models/user.rb

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -126,23 +126,13 @@ def near
126126
#TODO Kill
127127
scope :username_in, ->(usernames) { where(["UPPER(username) in (?)", usernames.collect(&:upcase)]) }
128128

129-
#TODO Kill
130-
def self.with_username(username, provider = :username)
129+
def self.find_by_provider_username(username, provider)
131130
return nil if username.nil?
132-
sql_injection_safe_where_clause = case provider.to_s
133-
when 'username', ''
134-
'username'
135-
when 'linkedin'
136-
'linkedin'
137-
when 'twitter'
138-
'twitter'
139-
when 'github'
140-
'github'
141-
else
142-
#A user could malicously pass in a provider, thats why we do the string matching above
143-
raise "Unkown provider type specified, unable to find user by username"
144-
end
145-
where(["UPPER(#{sql_injection_safe_where_clause}) = UPPER(?)", username]).first
131+
return self.find_by_username(username) if provider == ''
132+
unless %w{twitter linkedin github}.include?(provider)
133+
raise "Unkown provider type specified, unable to find user by username"
134+
end
135+
where(["UPPER(#{provider}) = UPPER(?)", username]).first
146136
end
147137

148138
# Todo State machine

lib/tasks/mailers.rake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ namespace :mailers do
22
task popular_protips: :environment do
33
from = 60.days.ago
44
to = 0.days.ago
5-
user = User.with_username('mcansky')
5+
user = User.find_by_username('mcansky')
66
protips = ProtipMailer::Queries.popular_protips(from, to)
77
ProtipMailer.popular_protips(user, protips, from, to).deliver
88
end

spec/controllers/users_controller_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,14 @@
8080
session[:referred_by] = 'asdfasdf'
8181
session['oauth.data'] = github_response
8282
post :create, user: { location: 'SF', username: 'testingReferredBy' }
83-
user = User.with_username('testingReferredBy')
83+
user = User.find_by_username('testingReferredBy')
8484
expect(user.referred_by).to eq('asdfasdf')
8585
end
8686

8787
it 'should not add referred by if not present' do
8888
session['oauth.data'] = github_response
8989
post :create, user: { location: 'SF', username: 'testingReferredBy' }
90-
user = User.with_username('testingReferredBy')
90+
user = User.find_by_username('testingReferredBy')
9191
expect(user.referred_by).to be_nil
9292
end
9393
end
@@ -96,7 +96,7 @@
9696
session[:utm_campaign] = 'asdfasdf'
9797
session['oauth.data'] = github_response
9898
post :create, user: { location: 'SF', username: 'testingUTM_campaign' }
99-
user = User.with_username('testingUTM_campaign')
99+
user = User.find_by_username('testingUTM_campaign')
100100
expect(user.utm_campaign).to eq('asdfasdf')
101101
end
102102

0 commit comments

Comments
 (0)