Extract a base query builder

parent b7c7ac5d
# frozen_string_literal: true
module Gitlab
module Geo
class Fdw
class BaseQueryBuilder < SimpleDelegator
def initialize(query = nil)
@query = query || base
super(query)
end
private
attr_reader :query
def base
raise NotImplementedError
end
def reflect(query)
self.class.new(query)
end
end
end
end
end
...@@ -12,14 +12,7 @@ ...@@ -12,14 +12,7 @@
module Gitlab module Gitlab
module Geo module Geo
class Fdw class Fdw
class FileRegistryQueryBuilder < SimpleDelegator class FileRegistryQueryBuilder < BaseQueryBuilder
attr_reader :query
def initialize(query = nil)
@query = query || base_query
super(query)
end
# rubocop:disable CodeReuse/ActiveRecord # rubocop:disable CodeReuse/ActiveRecord
def for_model(model) def for_model(model)
reflect( reflect(
...@@ -39,12 +32,8 @@ module Gitlab ...@@ -39,12 +32,8 @@ module Gitlab
private private
def base_query def base
::Geo::FileRegistry ::Geo::FileRegistry.select(file_registry_table[Arel.star])
end
def reflect(query)
self.class.new(query)
end end
def file_registry_table def file_registry_table
......
...@@ -13,14 +13,7 @@ ...@@ -13,14 +13,7 @@
module Gitlab module Gitlab
module Geo module Geo
class Fdw class Fdw
class ProjectRegistryQueryBuilder < SimpleDelegator class ProjectRegistryQueryBuilder < BaseQueryBuilder
attr_reader :query
def initialize(query = nil)
@query = query || base_query
super(query)
end
# rubocop:disable CodeReuse/ActiveRecord # rubocop:disable CodeReuse/ActiveRecord
def registries_pending_verification def registries_pending_verification
reflect( reflect(
...@@ -54,14 +47,10 @@ module Gitlab ...@@ -54,14 +47,10 @@ module Gitlab
private private
def base_query def base
::Geo::ProjectRegistry.select(project_registries_table[Arel.star]) ::Geo::ProjectRegistry.select(project_registries_table[Arel.star])
end end
def reflect(query)
self.class.new(query)
end
def project_registries_table def project_registries_table
::Geo::ProjectRegistry.arel_table ::Geo::ProjectRegistry.arel_table
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment