external_environment_updater.rb
1.1 KB
module ExternalEnvironmentUpdater
require 'json'
require 'net/http'
require './app/models/external_environment'
def self.import_json
source = 'http://directory.noosfero.org/all.json'
begin
resp = Net::HTTP.get_response(URI.parse(source))
rescue Exception => ex
Rails.logger.error "Import External Environments Error: #{ex}"
end
JSON.parse(resp.body)
end
def self.process_data
data = import_json
if data.key?('sites')
data['sites'].each do |site|
if site.key?('name') && site.key?('url') && site.key?('id')
external_environment = ExternalEnvironment.find_or_create_by(identifier: site['id'])
external_environment.update(name: site['name'],
url: site['url'],
screenshot: site['screnshot'],
thumbnail: site['thumbnail'])
else
Rails.logger.error 'External environment JSON has site without name or url'
end
end
else
Rails.logger.error 'External environment JSON has no sites key'
end
end
end