iachat/app/jobs/internal/check_new_versions_job.rb
Gabriel Jablonski dbb41df67e
fix: update GitHub versions link and version fetching (#105)
* fix: update GitHub versions link and version fetching

* test: specs

* chore: use timeout and log error

* refactor: redundant helper method
2025-08-28 10:50:03 -03:00

28 lines
858 B
Ruby

class Internal::CheckNewVersionsJob < ApplicationJob
queue_as :scheduled_jobs
def perform
return unless Rails.env.production?
latest_version = fetch_latest_github_release
::Redis::Alfred.set(::Redis::Alfred::LATEST_CHATWOOT_VERSION, latest_version) if latest_version.present?
end
private
def fetch_latest_github_release
response = HTTParty.get('https://api.github.com/repos/fazer-ai/chatwoot/releases/latest', timeout: 5)
unless response.success?
Rails.logger.error "Failed to fetch latest GitHub release: HTTP #{response.code} - #{response.body}"
return nil
end
response['tag_name']&.sub(/^v/, '')
rescue StandardError => e
Rails.logger.error "Failed to fetch latest GitHub release: #{e.message}"
nil
end
end
Internal::CheckNewVersionsJob.prepend_mod_with('Internal::CheckNewVersionsJob')