lib/sidekiq_unique_jobs/web.rb
# frozen_string_literal: true require_relative "web/helpers" module SidekiqUniqueJobs # Utility module to help manage unique keys in redis. # Useful for deleting keys that for whatever reason wasn't deleted # @author Mikael Henriksson <mikael@mhenrixon.com> module WebComplex method SidekiqUniqueJobs::Web::registered (138.4)
Method `registered` has 66 lines of code (exceeds 25 allowed). Consider refactoring.
Method `registered` has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring. def self.registered(app) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity app.helpers Web::Helpers Similar blocks of code found in 3 locations. Consider refactoring. app.get "/changelogs" do @filter = h(safe_url_params("filter") || "*") @filter = "*" if @filter == "" @count = h(safe_url_params("count") || 100).to_i @current_cursor = h(safe_url_params("cursor")).to_i @prev_cursor = h(safe_url_params("prev_cursor")).to_i @total_size, @next_cursor, @changelogs = changelog.page( cursor: @current_cursor, pattern: @filter, page_size: @count ) erb(unique_template(:changelogs)) end app.get "/changelogs/delete_all" do changelog.clear safe_redirect_to :changelogs end Similar blocks of code found in 3 locations. Consider refactoring. app.get "/locks" do @filter = h(safe_url_params("filter") || "*") @filter = "*" if @filter == "" @count = h(safe_url_params("count") || 100).to_i @current_cursor = h(safe_url_params("cursor")).to_i @prev_cursor = h(safe_url_params("prev_cursor")).to_i @total_size, @next_cursor, @locks = digests.page( cursor: @current_cursor, pattern: @filter, page_size: @count ) erb(unique_template(:locks)) end Similar blocks of code found in 3 locations. Consider refactoring. app.get "/expiring_locks" do @filter = h(safe_url_params("filter") || "*") @filter = "*" if @filter == "" @count = h(safe_url_params("count") || 100).to_i @current_cursor = h(safe_url_params("cursor")).to_i @prev_cursor = h(safe_url_params("prev_cursor")).to_i @total_size, @next_cursor, @locks = expiring_digests.page( cursor: @current_cursor, pattern: @filter, page_size: @count ) erb(unique_template(:locks)) end app.get "/locks/delete_all" do digests.delete_by_pattern("*", count: digests.count) expiring_digests.delete_by_pattern("*", count: digests.count) safe_redirect_to :locks end app.get "/locks/:digest" do @digest = h(safe_route_params(:digest)) @lock = SidekiqUniqueJobs::Lock.new(@digest) erb(unique_template(:lock)) end app.get "/locks/:digest/delete" do digests.delete_by_digest(h(safe_route_params(:digest))) expiring_digests.delete_by_digest(h(safe_route_params(:digest))) safe_redirect_to :locks end app.get "/locks/:digest/jobs/:job_id/delete" do @digest = h(safe_route_params(:digest)) @job_id = h(safe_route_params(:job_id)) @lock = SidekiqUniqueJobs::Lock.new(@digest) @lock.unlock(@job_id) safe_redirect_to "locks/#{@lock.key}" end end endend begin require "delegate" unless defined?(DelegateClass) require "sidekiq/web" unless defined?(Sidekiq::Web) if Sidekiq::MAJOR >= 8 Sidekiq::Web.configure do |config| config.register_extension(SidekiqUniqueJobs::Web, name: "unique_jobs", tab: ["Locks", "Expiring Locks", "Changelogs"], index: %w[locks/ expiring_locks/ changelogs/]) end else Sidekiq::Web.register(SidekiqUniqueJobs::Web) Sidekiq::Web.tabs["Locks"] = "locks" Sidekiq::Web.tabs["Expiring Locks"] = "expiring_locks" Sidekiq::Web.tabs["Changelogs"] = "changelogs" endrescue NameError, LoadError => e SidekiqUniqueJobs.logger.error(e)end