Skip to content

Commit

Permalink
Improve scores feed performance #1
Browse files Browse the repository at this point in the history
  • Loading branch information
alexTakeoff committed Jan 30, 2023
1 parent b1b3a07 commit 354c950
Show file tree
Hide file tree
Showing 8 changed files with 178 additions and 3 deletions.
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

139 changes: 139 additions & 0 deletions .idea/golfr_backend.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,7 @@ GEM

PLATFORMS
x86_64-darwin-20
x86_64-darwin-22

DEPENDENCIES
bootsnap (>= 1.4.4)
Expand Down
11 changes: 10 additions & 1 deletion app/controllers/api/scores_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,16 @@ class ScoresController < ApplicationController

def user_feed
scores = Score.all.order(played_at: :desc, id: :desc)
serialized_scores = scores.map(&:serialize)
users = User.all

users_map = {}
users.each do |user|
users_map[user.id] = user.name
end

serialized_scores = scores.map do |score|
score.serialize(users_map[score.user_id])
end

response = {
scores: serialized_scores,
Expand Down
4 changes: 2 additions & 2 deletions app/models/score.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ class Score < ApplicationRecord
validates :total_score, inclusion: { in: 54..120 }
validate :future_score

def serialize
def serialize(username)
{
id: id,
user_id: user_id,
user_name: user.name,
user_name: username,
total_score: total_score,
played_at: played_at,
}
Expand Down

0 comments on commit 354c950

Please sign in to comment.