add everything to manage reputations

This commit is contained in:
2021-05-01 00:22:15 +02:00
parent ca80fd55fa
commit d227cdc87c
30 changed files with 366 additions and 43 deletions

View 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