lib/services/ats.rb in Active-0.0.22 vs lib/services/ats.rb in Active-0.0.23

- old
+ new

@@ -29,11 +29,11 @@ def title # load_metadata unless @metadata_loaded # if @data.has_key?("assetName") - @data["assetName"] + @data["assetName"] # else # @title # end end @@ -58,11 +58,11 @@ end end def address # load_metadata unless @metadata_loaded - @address = Hash.new({ + @address = validated_address({ :name => @data["location"], :address => @data["address"], :city => @data["city"], :state => @data["state"], :zip => @data["zip"], @@ -117,101 +117,113 @@ @data["allText"] elsif @data.has_key?("summary") @data["summary"] end end - + def contact_name # load_metadata unless @metadata_loaded @data["contactName"] if @data.has_key?("contactName") end def contact_email # load_metadata unless @metadata_loaded @data["contactEmail"] if @data.has_key?("contactEmail") end - + def contact_phone + @data["contactPhone"] if @data.has_key?("contactPhone") + end + def substitutionUrl @data[:substitution_url] end + def user + email = contact_email + u = User.new + u.email = email if Validators.email(email) + u.first_name = contact_name + u.phone = contact_phone + u + end + # EXAMPLE # lazy load the data for some_crazy_method # def some_crazy # return @some_crazy unless @some_crazy.nil? # @some_crazy = @data[:some_crazy_method_from_ats].split replace twist bla bla bla # end def self.find_by_id(id) begin - - # return self.get_asset_by_id(id) - search_hash = Digest::SHA1.hexdigest("ats_m_#{id}") - if Active.CACHE - cached_version = Active.CACHE.get(search_hash) - return cached_version if cached_version - end - c = Savon::Client.new("http://api.amp.active.com/asset-service/services/AssetService") c.request.headers["Api-Key"] = "6npky9t57235vps5cetm3s7k" - r = c.get_asset_metadata! do |soap| + r = c.get_asset_by_id! do |soap| soap.namespace = "http://api.asset.services.active.com" soap.body = "<context><userId></userId><applicationId></applicationId></context><assetId>#{id}</assetId>" end - ats = ATS.new(r.to_hash[:get_asset_metadata_response][:out]) - Active.CACHE.set(search_hash, ats) if Active.CACHE - return ats - + ats = ATS.new(r.to_hash[:get_asset_by_id_response][:out]) + ats.load_metadata + + return ats + rescue Savon::SOAPFault => e raise ATSError, "Couldn't find activity with the id of #{id} error #{e.inspect}" return end end - # def load_metadata - # metadata = ATS.get_asset_metadata(@asset_id) - # @data.merge! Hash.from_xml(metadata.to_hash[:get_asset_metadata_response][:out])["importSource"]["asset"] - # @metadata_loaded=true - # end + def load_metadata + metadata = ATS.get_asset_metadata(@asset_id) + @data.merge! Hash.from_xml(metadata.to_hash[:get_asset_metadata_response][:out])["importSource"]["asset"] + @metadata_loaded=true + end private + def self.get_asset_metadata(id) - search_hash = Digest::SHA1.hexdigest("ats_m_#{id}") - if Active.CACHE - cached_version = Active.CACHE.get(search_hash) - return cached_version if cached_version - end - c = Savon::Client.new("http://api.amp.active.com/asset-service/services/AssetService") c.request.headers["Api-Key"] = "6npky9t57235vps5cetm3s7k" r = c.get_asset_metadata! do |soap| soap.namespace = "http://api.asset.services.active.com" soap.body = "<context><userId></userId><applicationId></applicationId></context><assetId>#{id}</assetId>" end - ats = ATS.new(r.to_hash[:get_asset_metadata_response][:out]) - Active.CACHE.set(search_hash, ats) if Active.CACHE - return ats + # puts "===========" + # puts r.to_hash[:get_asset_metadata_response][:out].inspect + return r end + # + # def self.get_asset_metadata(id) + # search_hash = Digest::SHA1.hexdigest("ats_m_#{id}") + # if Active.CACHE + # cached_version = Active.CACHE.get(search_hash) + # return cached_version if cached_version + # end + # + # c = Savon::Client.new("http://api.amp.active.com/asset-service/services/AssetService") + # c.request.headers["Api-Key"] = "6npky9t57235vps5cetm3s7k" + # r = c.get_asset_metadata! do |soap| + # soap.namespace = "http://api.asset.services.active.com" + # soap.body = "<context><userId></userId><applicationId></applicationId></context><assetId>#{id}</assetId>" + # end + # ats = ATS.new(r.to_hash[:get_asset_metadata_response][:out]) + # Active.CACHE.set(search_hash, ats) if Active.CACHE + # return ats + # end + def self.get_asset_by_id(id) - search_hash = Digest::SHA1.hexdigest("ats_#{id}") - if Active.CACHE - cached_version = Active.CACHE.get(search_hash) - return cached_version if cached_version - end - c = Savon::Client.new("http://api.amp.active.com/asset-service/services/AssetService") c.request.headers["Api-Key"] = "6npky9t57235vps5cetm3s7k" r = c.get_asset_by_id! do |soap| soap.namespace = "http://api.asset.services.active.com" soap.body = "<context><userId></userId><applicationId></applicationId></context><assetId>#{id}</assetId>" end ats = ATS.new(r.to_hash[:get_asset_by_id_response][:out]) - Active.CACHE.set(search_hash, ats) if Active.CACHE return ats end - + end # end ats end end