chore: Add down gem for Local file downloads (#2765)

- Add down gem to handle downloading files to host machine
- Remove the LocalResource class
- Introduce max limit for contact avatars send via SDK
This commit is contained in:
Sojan Jose
2021-08-11 16:40:28 +05:30
committed by GitHub
parent 29f54c1f26
commit 8daf1fe033
11 changed files with 47 additions and 93 deletions

View File

@@ -2,9 +2,12 @@ class ContactAvatarJob < ApplicationJob
queue_as :default
def perform(contact, avatar_url)
avatar_resource = LocalResource.new(avatar_url)
contact.avatar.attach(io: avatar_resource.file, filename: avatar_resource.tmp_filename, content_type: avatar_resource.encoding)
rescue *ExceptionList::URI_EXCEPTIONS, NoMethodError => e
avatar_file = Down.download(
avatar_url,
max_size: 15 * 1024 * 1024
)
contact.avatar.attach(io: avatar_file, filename: avatar_file.original_filename, content_type: avatar_file.content_type)
rescue Down::Error => e
Rails.logger.info "Exception: invalid avatar url #{avatar_url} : #{e.message}"
end
end

View File

@@ -45,8 +45,10 @@ class ContactIpLookupJob < ApplicationJob
def setup_vendor_db
base_url = 'https://download.maxmind.com/app/geoip_download'
source = URI.parse("#{base_url}?edition_id=GeoLite2-City&suffix=tar.gz&license_key=#{ENV['IP_LOOKUP_API_KEY']}").open
tar_extract = Gem::Package::TarReader.new(Zlib::GzipReader.open(source))
source_file = Down.download(
"#{base_url}?edition_id=GeoLite2-City&suffix=tar.gz&license_key=#{ENV['IP_LOOKUP_API_KEY']}"
)
tar_extract = Gem::Package::TarReader.new(Zlib::GzipReader.open(source_file))
tar_extract.rewind
tar_extract.each do |entry|