From b6a2e30d0340c1c462d0326890e26a17a37c03fa Mon Sep 17 00:00:00 2001 From: f Date: Sat, 28 Dec 2024 16:37:42 -0300 Subject: [PATCH 1/3] refactor: filtrar la lista completa --- app/controllers/api/v1/sites_controller.rb | 29 ++++++++++------------ 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/app/controllers/api/v1/sites_controller.rb b/app/controllers/api/v1/sites_controller.rb index 5fc9ac46..bebd03a8 100644 --- a/app/controllers/api/v1/sites_controller.rb +++ b/app/controllers/api/v1/sites_controller.rb @@ -14,7 +14,13 @@ module Api # Lista de nombres de dominios a emitir certificados def index - render json: sites_names.concat(alternative_names).concat(api_names).concat(www_names) + all_names = sites_names.concat(alternative_names).concat(api_names).concat(www_names).uniq.map do |name| + canonicalize name + end.reject do |name| + subdomain? name + end.uniq + + render json: all_names end private @@ -38,23 +44,18 @@ module Api end # Nombres de los sitios + # + # @param name [String] + # @return [Array] def sites_names - Site.all.order(:name).pluck(:name).map do |name| - canonicalize name - end.reject do |name| - subdomain? name - end + Site.all.order(:name).pluck(:name) end # Dominios alternativos # # @return [Array] def alternative_names - hostname_of(DeployAlternativeDomain.all).concat(hostname_of(DeployLocalizedDomain)).map do |name| - canonicalize name - end.reject do |name| - subdomain? name - end + hostname_of(DeployAlternativeDomain.all).concat(hostname_of(DeployLocalizedDomain)) end # Obtener todos los sitios con API habilitada, es decir formulario @@ -66,17 +67,13 @@ module Api .or(Site.where(colaboracion_anonima: true)) .pluck(:name).map do |name| "api.#{name}" - end.map do |name| - canonicalize name - end.reject do |name| - subdomain? name end end # Todos los dominios con WWW habilitado def www_names Site.where(id: DeployWww.all.pluck(:site_id)).pluck(:name).map do |name| - canonicalize "www.#{name}" + "www.#{name}" end end end From 529f4140ea0a3aee1b4c3a6a71c629eda593dd11 Mon Sep 17 00:00:00 2001 From: f Date: Sat, 28 Dec 2024 16:38:03 -0300 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20ignorar=20sitios=20de=20testing=20t?= =?UTF-8?q?ambi=C3=A9n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/v1/sites_controller.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/controllers/api/v1/sites_controller.rb b/app/controllers/api/v1/sites_controller.rb index bebd03a8..b1711d63 100644 --- a/app/controllers/api/v1/sites_controller.rb +++ b/app/controllers/api/v1/sites_controller.rb @@ -5,6 +5,7 @@ module Api # API para sitios class SitesController < BaseController SUBDOMAIN = ".#{Site.domain}" + TESTING_SUBDOMAIN = ".testing.#{Site.domain}" PARTS = Site.domain.split('.').count if Rails.env.production? @@ -18,6 +19,8 @@ module Api canonicalize name end.reject do |name| subdomain? name + end.reject do |name| + testing? name end.uniq render json: all_names @@ -43,6 +46,14 @@ module Api name.end_with?(SUBDOMAIN) && name.split('.').count == (PARTS + 1) end + # Es un dominio de prueba + # + # @param name [String] + # @return [Bool] + def testing?(name) + name.end_with?(TESTING_SUBDOMAIN) && name.split('.').count == (PARTS + 2) + end + # Nombres de los sitios # # @param name [String] From b4cd6cf09218fd6d7c0381ac2cbe1e41f58d16cc Mon Sep 17 00:00:00 2001 From: f Date: Sat, 28 Dec 2024 16:38:15 -0300 Subject: [PATCH 3/3] fix: no duplicar resultados de la consulta --- app/controllers/api/v1/sites_controller.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/v1/sites_controller.rb b/app/controllers/api/v1/sites_controller.rb index b1711d63..63cc8ea0 100644 --- a/app/controllers/api/v1/sites_controller.rb +++ b/app/controllers/api/v1/sites_controller.rb @@ -62,11 +62,12 @@ module Api Site.all.order(:name).pluck(:name) end - # Dominios alternativos + # Dominios alternativos, incluyendo todas las clases derivadas de + # esta. # # @return [Array] def alternative_names - hostname_of(DeployAlternativeDomain.all).concat(hostname_of(DeployLocalizedDomain)) + hostname_of(DeployAlternativeDomain.all) end # Obtener todos los sitios con API habilitada, es decir formulario