add covenant
This commit is contained in:
@@ -24,6 +24,8 @@ class WowCharacterDetailWorker < WowSidekiqWorker
|
||||
wow_character.wow_guild = find_or_create_wow_guild(result.guild) if result.guild
|
||||
|
||||
wow_character.save
|
||||
|
||||
update_covenant_progress(wow_character, result.covenant_progress) if result.covenant_progress
|
||||
end
|
||||
|
||||
def find_or_create_wow_guild(guild)
|
||||
@@ -36,4 +38,13 @@ class WowCharacterDetailWorker < WowSidekiqWorker
|
||||
|
||||
wow_guild.persisted? ? wow_guild : nil
|
||||
end
|
||||
|
||||
def update_covenant_progress(wow_character, covenant_progress)
|
||||
wow_covenant_progress = wow_character.wow_covenant_progress || WowCovenantProgress.new(wow_character: wow_character)
|
||||
|
||||
wow_covenant_progress.renown_level = covenant_progress.renown_level
|
||||
wow_covenant_progress.wow_covenant = WowCovenant.find_by(covenant_id: covenant_progress.chosen_covenant.id)
|
||||
|
||||
wow_covenant_progress.save
|
||||
end
|
||||
end
|
||||
|
||||
@@ -23,7 +23,7 @@ class WowCharactersWorker < WowSidekiqWorker
|
||||
wow_char.wow_class = WowClass.where(class_id: character.playable_class.id).first
|
||||
wow_char.wow_race = WowRace.where(race_id: character.playable_race.id).first
|
||||
wow_char.user = user
|
||||
wow_char.account_id = account.map_id
|
||||
wow_char.account_id = account.id
|
||||
|
||||
locales.each do |locale|
|
||||
Mobility.with_locale(locale[0]) do
|
||||
|
||||
23
app/workers/wow_covenant_detail_worker.rb
Normal file
23
app/workers/wow_covenant_detail_worker.rb
Normal file
@@ -0,0 +1,23 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class WowCovenantDetailWorker < WowSidekiqWorker
|
||||
def perform(covenant_id)
|
||||
return unless (wow_covenant = WowCovenant.find_by(covenant_id: covenant_id))
|
||||
|
||||
RBattlenet.set_options(locale: 'all')
|
||||
result = RBattlenet::Wow::Covenant.find(covenant_id)
|
||||
|
||||
return unless result.status_code == 200
|
||||
|
||||
wow_covenant.media_id = result.media.id
|
||||
|
||||
# Localisation data
|
||||
locales.each do |locale|
|
||||
Mobility.with_locale(locale[0]) do
|
||||
wow_covenant.description = result.description[locale[1]]
|
||||
end
|
||||
end
|
||||
|
||||
wow_covenant.save
|
||||
end
|
||||
end
|
||||
24
app/workers/wow_covenants_worker.rb
Normal file
24
app/workers/wow_covenants_worker.rb
Normal file
@@ -0,0 +1,24 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class WowCovenantsWorker < WowSidekiqWorker
|
||||
def perform
|
||||
RBattlenet.authenticate(client_id: ENV['BLIZZARD_API_CLIENT_ID'], client_secret: ENV['BLIZZARD_API_CLIENT_SECRET'])
|
||||
RBattlenet.set_options(locale: 'all')
|
||||
result = RBattlenet::Wow::Covenant.all
|
||||
|
||||
return unless result.status_code == 200
|
||||
|
||||
result.covenants.each do |covenant|
|
||||
wow_covenant = WowCovenant.find_or_initialize_by(covenant_id: covenant.id)
|
||||
|
||||
# Localisation data
|
||||
locales.each do |locale|
|
||||
Mobility.with_locale(locale[0]) { wow_covenant.name = covenant.name[locale[1]] }
|
||||
end
|
||||
|
||||
wow_covenant.save
|
||||
|
||||
WowCovenantDetailWorker.perform_async(wow_covenant.covenant_id) if wow_covenant.persisted?
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user