Files
site/app/workers/wow_reputation_detail_worker.rb

32 lines
1.1 KiB
Ruby

# frozen_string_literal: true
class WowReputationDetailWorker < WowSidekiqWorker
def perform(reputation_id)
return unless (wow_reputation = WowReputation.find_by(reputation_id: reputation_id))
RBattlenet.set_options(locale: 'all')
result = RBattlenet::Wow::ReputationFaction.find(reputation_id)
return unless result.status_code == 200
# Global data
wow_reputation.wow_reputation_tier = WowReputationTier.find_by(reputation_tier_id: result.reputation_tiers.id)
wow_reputation.faction = result.player_faction.type if result.player_faction
# If it's a meta faction
result.factions&.each do |faction|
wow_reputation.sub_wow_reputations << WowReputation.find_by(reputation_id: faction.id)
end
# Localisation data
locales.each do |locale|
Mobility.with_locale(locale[0]) do
wow_reputation.description = result.description[locale[1]] if result.description
wow_reputation.translated_faction = result.player_faction.name[locale[1]] if result.player_faction
end
end
wow_reputation.save
end
end