Return false if object does not respond to url (#5988)

Avoid error when the service returns a mostly valid oembed, but has no
url in it, causing a MethodError: undefined method `url'
for #<OEmbed::Response::Photo:0x000056505def9620>
master
Renato "Lond" Cerqueira 7 years ago committed by Eugen Rochko
parent fe180f18ff
commit 19257d91bf
  1. 1
      app/services/fetch_link_card_service.rb

@ -87,6 +87,7 @@ class FetchLinkCardService < BaseService
when 'link' when 'link'
@card.image = URI.parse(response.thumbnail_url) if response.respond_to?(:thumbnail_url) @card.image = URI.parse(response.thumbnail_url) if response.respond_to?(:thumbnail_url)
when 'photo' when 'photo'
return false unless response.respond_to?(:url)
@card.embed_url = response.url @card.embed_url = response.url
@card.width = response.width.presence || 0 @card.width = response.width.presence || 0
@card.height = response.height.presence || 0 @card.height = response.height.presence || 0

Loading…
Cancel
Save