~cytrogen/masto-fe

7e7d6e695b5b7ef8d8c10b1d9ac79375ca1b8209 — Claire 2 years ago 1e2d497
Fix incorrectly keeping outdated update notices absent from the API endpoint (#27021)

1 files changed, 3 insertions(+), 1 deletions(-)

M app/services/software_update_check_service.rb
M app/services/software_update_check_service.rb => app/services/software_update_check_service.rb +3 -1
@@ 35,11 35,13 @@ class SoftwareUpdateCheckService < BaseService
  end

  def process_update_notices!(update_notices)
    return if update_notices.blank? || update_notices['updatesAvailable'].blank?
    return if update_notices.blank? || update_notices['updatesAvailable'].nil?

    # Clear notices that are not listed by the update server anymore
    SoftwareUpdate.where.not(version: update_notices['updatesAvailable'].pluck('version')).delete_all

    return if update_notices['updatesAvailable'].blank?

    # Check if any of the notices is new, and issue notifications
    known_versions = SoftwareUpdate.where(version: update_notices['updatesAvailable'].pluck('version')).pluck(:version)
    new_update_notices = update_notices['updatesAvailable'].filter { |notice| known_versions.exclude?(notice['version']) }