# frozen_string_literal: true class WowPetAbilitiesWorker < 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::PetAbility.all return unless result.status_code == 200 result.abilities.each do |ability| wow_pet_ability = WowPetAbility.find_or_initialize_by(ability_id: ability.id) wow_pet_ability.href = ability.key.href # Localisation data locales.each do |locale| Mobility.with_locale(locale[0]) { wow_pet_ability.name = ability.name[locale[1]] } end wow_pet_ability.save WowPetAbilityDetailWorker.perform_async(wow_pet_ability.ability_id) if wow_pet_ability.persisted? end end end