Fix incorrectly keeping outdated update notices absent from the API endpoint (#27021)
parent
cfd2c6e28d
commit
8a6fa34040
|
@ -35,11 +35,13 @@ class SoftwareUpdateCheckService < BaseService
|
||||||
end
|
end
|
||||||
|
|
||||||
def process_update_notices!(update_notices)
|
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
|
# Clear notices that are not listed by the update server anymore
|
||||||
SoftwareUpdate.where.not(version: update_notices['updatesAvailable'].pluck('version')).delete_all
|
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
|
# Check if any of the notices is new, and issue notifications
|
||||||
known_versions = SoftwareUpdate.where(version: update_notices['updatesAvailable'].pluck('version')).pluck(:version)
|
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']) }
|
new_update_notices = update_notices['updatesAvailable'].filter { |notice| known_versions.exclude?(notice['version']) }
|
||||||
|
|
Reference in New Issue