class RouterInventoryWorker
    include Sidekiq::Worker

    def perform(ap_geo_loc)
        (ap_geo_loc || []).each do |x|
            unless x["public_ip"].blank?
                begin
                    address = Timeout::timeout(6) {
                        Net::HTTP.get(URI.parse(URI.escape(APPLICATION['defaults']["public_ip_url"]+"#{x['public_ip'].last}"))) }
                rescue
                    address = nil
                end
                save_router_inventory(address,x["_id"]["ap_mac"]) if (!"Not Found\n".eql?(address) && !address.blank?)
            end
        end
	end

    def save_router_inventory(address,ap_mac)
        ri = RouterInventory.where(mac_id: ap_mac).last
        address = JSON.parse(address)
        ri.country = address["country_name"]
        ri.city = address["city"]
        ri.zipcode = address["zipcode"]
        ri.latitude = address["latitude"]
        ri.longitude = address["longitude"]
        ri.region_name = address["region_name"]
        ri.save
    end
end