From 2cda1dd542b20a47245cb8d28a4f6f8750c2284c Mon Sep 17 00:00:00 2001
From: Claire <claire.github-309c@sitedethib.com>
Date: Wed, 19 Jun 2024 18:59:37 +0200
Subject: [PATCH] Fix compatibility with Redis < 6.2 again (#30412)

---
 config/application.rb                        |  1 +
 lib/stoplight/redis_data_store_extensions.rb | 17 +++++++++++++++++
 2 files changed, 18 insertions(+)
 create mode 100644 lib/stoplight/redis_data_store_extensions.rb

diff --git a/config/application.rb b/config/application.rb
index 65407da05..5aca74fd1 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -49,6 +49,7 @@ require_relative '../lib/webpacker/manifest_extensions'
 require_relative '../lib/webpacker/helper_extensions'
 require_relative '../lib/rails/engine_extensions'
 require_relative '../lib/action_dispatch/remote_ip_extensions'
+require_relative '../lib/stoplight/redis_data_store_extensions'
 require_relative '../lib/active_record/database_tasks_extensions'
 require_relative '../lib/active_record/batches'
 require_relative '../lib/active_record/with_recursive'
diff --git a/lib/stoplight/redis_data_store_extensions.rb b/lib/stoplight/redis_data_store_extensions.rb
new file mode 100644
index 000000000..900748784
--- /dev/null
+++ b/lib/stoplight/redis_data_store_extensions.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+# Restore compatibility with Redis < 6.2
+
+module Stoplight
+  module DataStore
+    module RedisExtensions
+      def query_failures(light, transaction: @redis)
+        window_start = Time.now.to_i - light.window_size
+
+        transaction.zrevrangebyscore(failures_key(light), Float::INFINITY, window_start)
+      end
+    end
+  end
+end
+
+Stoplight::DataStore::Redis.prepend(Stoplight::DataStore::RedisExtensions)