diff --git a/app/controllers/api/v1/base_controller.rb b/app/controllers/api/v1/base_controller.rb index 649c607..a6dd81d 100644 --- a/app/controllers/api/v1/base_controller.rb +++ b/app/controllers/api/v1/base_controller.rb @@ -11,16 +11,17 @@ module Api private - # Realiza la inversa de Site#hostname + # Por retrocompatibilidad con la forma en que estábamos + # gestionando los hostnames históricamente, necesitamos poder + # encontrar el sitio a partir de cualquiera de sus hostnames. # - # TODO: El sitio sutty.nl no aplica a ninguno de estos y le - # tuvimos que poner 'sutty.nl..sutty.nl' para pasar el test. + # Aunque en realidad con el hostname a partir del Origin nos + # bastaría. + # + # TODO: Generar API v2 que use solo el hostname y no haya que + # pasar site_id como parámetro redundante. def site_id - @site_id ||= if params[:site_id].end_with? Site.domain - params[:site_id].sub(/\.#{Site.domain}\z/, '') - else - params[:site_id] + '.' - end + @site_id ||= Deploy.where(hostname: params[:site_id]).pluck(:site_id).first end # Referer diff --git a/test/controllers/api/v1/contact_controller_test.rb b/test/controllers/api/v1/contact_controller_test.rb index f84e015..95726ba 100644 --- a/test/controllers/api/v1/contact_controller_test.rb +++ b/test/controllers/api/v1/contact_controller_test.rb @@ -106,7 +106,7 @@ module Api test 'se puede enviar mensajes a dominios propios' do ActionMailer::Base.deliveries.clear - @site.update name: 'example.org.' + @site.update name: 'example' redirect = "#{@site.url}?thanks" @@ -114,8 +114,8 @@ module Api create :rol, site: @site end - get v1_site_contact_cookie_url(@site.hostname, **@host) - post v1_site_contact_url(site_id: @site.hostname, form: :contacto, **@host), + get v1_site_contact_cookie_url(@site.name, **@host) + post v1_site_contact_url(site_id: @site.name, form: :contacto, **@host), headers: { origin: @site.url }, params: { name: SecureRandom.hex,