add everything to manage reputations
This commit is contained in:
31
app/workers/wow_reputation_detail_worker.rb
Normal file
31
app/workers/wow_reputation_detail_worker.rb
Normal file
@@ -0,0 +1,31 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user