No hacer malabares con los nombres de dominio

Esta era toda la razón para las modificaciones hechas hasta ahora, no
tener que tener que determinar el dominio por si tiene o no tiene punto
final o contiene el dominio del sitio.
This commit is contained in:
f 2021-08-07 19:56:48 -03:00
parent 11e45bbc05
commit e14e53c2a1
2 changed files with 12 additions and 11 deletions

View file

@ -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

View file

@ -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,