From e6dfb91fcc40ea0df3f36cb50883859db4f7b4bc Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Wed, 10 Jun 2026 16:26:24 +0530 Subject: [PATCH] refactor: use SafeFetch for website branding page fetch (#14693) --- app/services/website_branding_service.rb | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/services/website_branding_service.rb b/app/services/website_branding_service.rb index 026b51e0e..178994d1e 100644 --- a/app/services/website_branding_service.rb +++ b/app/services/website_branding_service.rb @@ -37,12 +37,18 @@ class WebsiteBrandingService private def fetch_page - response = HTTParty.get(@url, follow_redirects: true, timeout: 15) - @http_status = response.code - return nil unless response.success? + body = nil + SafeFetch.fetch(@url, validate_content_type: false) do |result| + body = result.tempfile.read + end + @http_status = 200 + return nil if body.blank? - Nokogiri::HTML(response.body) - rescue StandardError => e + Nokogiri::HTML(body) + rescue SafeFetch::HttpError => e + @http_status = e.message.to_i + nil + rescue SafeFetch::Error => e Rails.logger.error "[WebsiteBranding] Failed to fetch #{@url}: #{e.message}" nil end