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 @@
module Gitlab
module Geo
class Fdw
class FileRegistryQueryBuilder < SimpleDelegator
attr_reader :query
def initialize(query = nil)
@query = query || base_query
super(query)
end
class FileRegistryQueryBuilder < BaseQueryBuilder
# rubocop:disable CodeReuse/ActiveRecord
def for_model(model)
reflect(
......@@ -39,12 +32,8 @@ module Gitlab
private
def base_query
::Geo::FileRegistry
end
def reflect(query)
self.class.new(query)
def base
::Geo::FileRegistry.select(file_registry_table[Arel.star])
end
def file_registry_table
......
......@@ -13,14 +13,7 @@
module Gitlab
module Geo
class Fdw
class ProjectRegistryQueryBuilder < SimpleDelegator
attr_reader :query
def initialize(query = nil)
@query = query || base_query
super(query)
end
class ProjectRegistryQueryBuilder < BaseQueryBuilder
# rubocop:disable CodeReuse/ActiveRecord
def registries_pending_verification
reflect(
......@@ -54,14 +47,10 @@ module Gitlab
private
def base_query
def base
::Geo::ProjectRegistry.select(project_registries_table[Arel.star])
end
def reflect(query)
self.class.new(query)
end
def project_registries_table
::Geo::ProjectRegistry.arel_table
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