Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # app/model/image.rb
- def image_link(name_of_image)
- if File.exist? "/some/#{name_of_image}.jpg"
- path = "/some/#{name_of_image}.jpg"
- else
- external_image_link = external_api_call(name_of_image)
- DownloadImageWorker.perform_async(external_image_link) // perform it asynchronously
- external_image_link
- end
- photo = Photo.find_or_initialize_by(external_url: image_url)
- img_responce = Faraday.get do |req|
- req.url image_url
- if photo.etag
- req.headers['If-None-Match'] = photo.etag
- end
- end
- case img_responce.status
- when 200
- # This mean, image changes (or new)
- photo.update external_url: image_url,
- etag: img_responce.headers['etag'],
- image: StringIO.new(img_responce.body)
- when 304
- # This mean, image doesn't change
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement