* Attempt number 1 * Fix rack_attack specs * Fix users_searches_users spec * Fix display_users_search_spec * Fix comment typo * Remove search:destroy task from cypress * Remove port 9300 from gitpod * Stub response in attack_spec
21 lines
627 B
Ruby
21 lines
627 B
Ruby
module RatingVotes
|
|
class AssignRatingWorker
|
|
include Sidekiq::Worker
|
|
|
|
sidekiq_options queue: :low_priority, retry: 10, lock: :until_executing
|
|
|
|
def perform(article_id, group = "experience_level")
|
|
article = Article.find_by(id: article_id)
|
|
return unless article
|
|
|
|
ratings = article.rating_votes.where(group: group).pluck(:rating)
|
|
average = ratings.sum / ratings.size
|
|
|
|
article.update_columns(
|
|
experience_level_rating: average,
|
|
experience_level_rating_distribution: ratings.max - ratings.min,
|
|
last_experience_level_rating_at: Time.current,
|
|
)
|
|
end
|
|
end
|
|
end
|