From a73689dce40c264e33ead58ae26544ab55767089 Mon Sep 17 00:00:00 2001 From: Rodrigo Borba Date: Mon, 2 Mar 2026 15:35:05 -0300 Subject: [PATCH] =?UTF-8?q?fix:=20aumenta=20janela=20de=20atribui=C3=A7?= =?UTF-8?q?=C3=A3o=20para=2030min=20e=20sanitiza=20hostname=20no=20fronten?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - attribution_matcher_service: window 10min → 30min (mais realista para jornada do lead) - LandingHostsConfig.vue: strip automático de https://, www e trailing slash antes de salvar --- .../inbox/settingsPage/LandingHostsConfig.vue | 11 ++++++++++- app/services/leads/attribution_matcher_service.rb | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/LandingHostsConfig.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/LandingHostsConfig.vue index 45668be4a..12d0c361f 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/LandingHostsConfig.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/LandingHostsConfig.vue @@ -74,12 +74,21 @@ export default { async addHost() { if (!this.newHostname.trim()) return; this.isSaving = true; + + // Sanitiza: remove protocolo, www, barras e espaços + const cleanHostname = this.newHostname + .trim() + .toLowerCase() + .replace(/^https?:\/\//i, '') + .replace(/^www\./, '') + .replace(/\/.*$/, ''); + try { const { data } = await landingHostsApi.createHost( this.currentAccountId, this.inbox.id, { - hostname: this.newHostname.trim().toLowerCase(), + hostname: cleanHostname, unit_code: this.newUnitCode.trim().toUpperCase(), } ); diff --git a/app/services/leads/attribution_matcher_service.rb b/app/services/leads/attribution_matcher_service.rb index 720b2ec4d..0c0a8c540 100644 --- a/app/services/leads/attribution_matcher_service.rb +++ b/app/services/leads/attribution_matcher_service.rb @@ -25,7 +25,7 @@ class Leads::AttributionMatcherService def find_matching_click base_query = LeadClick .where(status: :clicked, inbox_id: @inbox_id) - .where('created_at > ?', 10.minutes.ago) + .where('created_at > ?', 30.minutes.ago) return base_query.where(ip: @inbound_ip).order(created_at: :desc).first if @inbound_ip.present?