Class: Active::Services::ATS
- Defined in:
- lib/services/ats.rb,
lib/services/_ats.rb
Instance Attribute Summary collapse
-
#metadata_loaded ⇒ Object
readonly
Returns the value of attribute metadata_loaded.
Attributes inherited from IActivity
#asset_id, #asset_type_id, #data, #online_registration
Class Method Summary collapse
-
.find_by_id(id) ⇒ Object
EXAMPLE lazy load the data for some_crazy_method def some_crazy return @some_crazy unless @some_crazy.nil? @some_crazy = @data.split replace twist bla bla bla end.
Instance Method Summary collapse
- #address ⇒ Object
- #categories ⇒ Object
- #category ⇒ Object
- #contact_email ⇒ Object
- #contact_name ⇒ Object
- #contact_phone ⇒ Object
- #desc ⇒ Object
- #end_date ⇒ Object
- #end_time ⇒ Object
-
#initialize(data = {}, preload_metadata = false) ⇒ ATS
constructor
EXAMPLE Data hash “assetId”=>“A9EF9D79-F859-4443-A9BB-91E1833DF2D5”, “substitutionUrl”=>“1878023”, “city”=>“Antioch”, “contactName”=>“City of Antioch”, “trackbackurl”=>“www.active.com/page/Event_Details.htm?event_id=1878023&assetId=A9EF9D79-F859-4443-A9BB-91E1833DF2D5”, “category”=>“Activities”, “zip”=>“94531”, “userCommentText”=>nil, “location”=>“Multi-use Room (prewett) - Prewett Family Park & Center”, “latitude”=>“37.95761”, :asset_id=>“A9EF9D79-F859-4443-A9BB-91E1833DF2D5”, “searchWeight”=>“1”, “country”=>“United States”, “participationCriteria”=>“All”, “dma”=>“San Francisco - Oakland - San Jose”, “isSearchable”=>“true”, :asset_name=>“Fitness, Pilates Mat Class (16 Yrs. & Up)”, :substitution_url=>“1878023”, :asset_type_id=>“EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65”, “row”=>“1”, “image1”=>“”, “startDate”=>“2010-09-13”, “contactPhone”=>“925-779-7070”, :asset_type_name=>“Active.com Event Registration”, “onlineDonationAvailable”=>“0”, “avgUserRating”=>nil, “market”=>“San Francisco - Oakland - San Jose”, “assetTypeId”=>“EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65”, “assetName”=>“Fitness, Pilates Mat Class (16 Yrs. & Up)”, “channel”=>“Not Specified”, “seourl”=>“www.active.com/not-specified-recware-activities/antioch-ca/fitness-pilates-mat-class-16-yrs-and-up-2010”, :xmlns=>“api.asset.services.active.com”, :url=>“www.active.com/page/Event_Details.htm?event_id=1878023”, “mediaType”=>“Recware Activities”, “startTime”=>“18:15:00”, “endTime”=>“18:15:00”, “contactEmail”=>“[email protected]”, “eventResults”=>nil, “longitude”=>“-121.7936”, “endDate”=>“2010-09-13”, “onlineRegistrationAvailable”=>“true”, “onlineMembershipAvailable”=>“0”, “state”=>“California” “assetId”=>“D9A22F33-8A14-4175-8D5B-D11578212A98”, “substitutionUrl”=>“1847738”, “city”=>“Encino”, “contactName”=>“Lilliane Ballesteros”, “trackbackurl”=>“www.active.com/page/Event_Details.htm?event_id=1847738&assetId=D9A22F33-8A14-4175-8D5B-D11578212A98”, “category”=>“Activities”, “zip”=>“91406”, “userCommentText”=>nil, “location”=>“Balboa Park/Lake Balboa”, “latitude”=>“34.19933”, :asset_id=>“D9A22F33-8A14-4175-8D5B-D11578212A98”, “searchWeight”=>“1”, “country”=>“United States”, “participationCriteria”=>“All”, “dma”=>“Los Angeles”, “isSearchable”=>“1”, :asset_name=>“2nd Annual weSPARK 10K Run & 5K Run Walk”, :substitution_url=>“1847738”, :asset_type_id=>“EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65”, “row”=>“1”, “image1”=>“”, “startDate”=>“2010-11-14”, “contactPhone”=>“818-906-3022”, :asset_type_name=>“Active.com Event Registration”, “onlineDonationAvailable”=>“0”, “avgUserRating”=>nil, “market”=>“Los Angeles”, “assetTypeId”=>“EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65”, “assetName”=>“2nd Annual weSPARK 10K Run & 5K Run Walk”, “channel”=>[“Running”, “Walking”], “seourl”=>“www.active.com/running/encino-ca/2nd-annual-wespark-10k-run-and-5k-run-walk-2010”, :xmlns=>“api.asset.services.active.com”, :url=>“www.active.com/page/Event_Details.htm?event_id=1847738”, “mediaType”=>[“Event”, “Event\10K”, “Event\5K”], “startTime”=>“8:00:00”, “endTime”=>“8:00:00”, “contactEmail”=>“[email protected]”, “eventResults”=>nil, “longitude”=>“-118.4924”, “endDate”=>“2010-11-14”, “onlineRegistrationAvailable”=>“1”, “onlineMembershipAvailable”=>“0”, “state”=>“California”, “estParticipants”=>“1400”, “eventURL”=>“www.wespark.org”.
- #load_metadata ⇒ Object
- #source ⇒ Object
- #start_date ⇒ Object
- #start_time ⇒ Object
- #substitutionUrl ⇒ Object
- #title ⇒ Object
- #url ⇒ Object
- #user ⇒ Object
Methods inherited from IActivity
Constructor Details
#initialize(data = {}, preload_metadata = false) ⇒ ATS
EXAMPLE Data hash “assetId”=>“A9EF9D79-F859-4443-A9BB-91E1833DF2D5”, “substitutionUrl”=>“1878023”, “city”=>“Antioch”, “contactName”=>“City of Antioch”, “trackbackurl”=>“www.active.com/page/Event_Details.htm?event_id=1878023&assetId=A9EF9D79-F859-4443-A9BB-91E1833DF2D5”, “category”=>“Activities”, “zip”=>“94531”, “userCommentText”=>nil, “location”=>“Multi-use Room (prewett) - Prewett Family Park & Center”, “latitude”=>“37.95761”, :asset_id=>“A9EF9D79-F859-4443-A9BB-91E1833DF2D5”, “searchWeight”=>“1”, “country”=>“United States”, “participationCriteria”=>“All”, “dma”=>“San Francisco - Oakland - San Jose”, “isSearchable”=>“true”, :asset_name=>“Fitness, Pilates Mat Class (16 Yrs. & Up)”, :substitution_url=>“1878023”, :asset_type_id=>“EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65”, “row”=>“1”, “image1”=>“”, “startDate”=>“2010-09-13”, “contactPhone”=>“925-779-7070”, :asset_type_name=>“Active.com Event Registration”, “onlineDonationAvailable”=>“0”, “avgUserRating”=>nil, “market”=>“San Francisco - Oakland - San Jose”, “assetTypeId”=>“EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65”, “assetName”=>“Fitness, Pilates Mat Class (16 Yrs. & Up)”, “channel”=>“Not Specified”, “seourl”=>“www.active.com/not-specified-recware-activities/antioch-ca/fitness-pilates-mat-class-16-yrs-and-up-2010”, :xmlns=>“api.asset.services.active.com”, :url=>“www.active.com/page/Event_Details.htm?event_id=1878023”, “mediaType”=>“Recware Activities”, “startTime”=>“18:15:00”, “endTime”=>“18:15:00”, “contactEmail”=>“[email protected]”, “eventResults”=>nil, “longitude”=>“-121.7936”, “endDate”=>“2010-09-13”, “onlineRegistrationAvailable”=>“true”, “onlineMembershipAvailable”=>“0”, “state”=>“California” “assetId”=>“D9A22F33-8A14-4175-8D5B-D11578212A98”, “substitutionUrl”=>“1847738”, “city”=>“Encino”, “contactName”=>“Lilliane Ballesteros”, “trackbackurl”=>“www.active.com/page/Event_Details.htm?event_id=1847738&assetId=D9A22F33-8A14-4175-8D5B-D11578212A98”, “category”=>“Activities”, “zip”=>“91406”, “userCommentText”=>nil, “location”=>“Balboa Park/Lake Balboa”, “latitude”=>“34.19933”, :asset_id=>“D9A22F33-8A14-4175-8D5B-D11578212A98”, “searchWeight”=>“1”, “country”=>“United States”, “participationCriteria”=>“All”, “dma”=>“Los Angeles”, “isSearchable”=>“1”, :asset_name=>“2nd Annual weSPARK 10K Run & 5K Run Walk”, :substitution_url=>“1847738”, :asset_type_id=>“EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65”, “row”=>“1”, “image1”=>“”, “startDate”=>“2010-11-14”, “contactPhone”=>“818-906-3022”, :asset_type_name=>“Active.com Event Registration”, “onlineDonationAvailable”=>“0”, “avgUserRating”=>nil, “market”=>“Los Angeles”, “assetTypeId”=>“EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65”, “assetName”=>“2nd Annual weSPARK 10K Run & 5K Run Walk”, “channel”=>[“Running”, “Walking”], “seourl”=>“www.active.com/running/encino-ca/2nd-annual-wespark-10k-run-and-5k-run-walk-2010”, :xmlns=>“api.asset.services.active.com”, :url=>“www.active.com/page/Event_Details.htm?event_id=1847738”, “mediaType”=>[“Event”, “Event\10K”, “Event\5K”], “startTime”=>“8:00:00”, “endTime”=>“8:00:00”, “contactEmail”=>“[email protected]”, “eventResults”=>nil, “longitude”=>“-118.4924”, “endDate”=>“2010-11-14”, “onlineRegistrationAvailable”=>“1”, “onlineMembershipAvailable”=>“0”, “state”=>“California”, “estParticipants”=>“1400”, “eventURL”=>“www.wespark.org”
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/services/ats.rb', line 14 def initialize(data={},=false) # need to hold on to original data @data = data @asset_id = data[:asset_id] @url = data[:url] @asset_type_id = data[:asset_type_id] @title = data[:asset_name] if data[:asset_name] @substitution_url = data[:substitution_url] # @metadata_loaded = false # load_metadata if preload_metadata end |
Instance Attribute Details
#metadata_loaded ⇒ Object (readonly)
Returns the value of attribute metadata_loaded.
9 10 11 |
# File 'lib/services/ats.rb', line 9 def @metadata_loaded end |
Class Method Details
.find_by_id(id) ⇒ Object
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
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/services/ats.rb', line 157 def self.find_by_id(id) begin 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]) ats. return ats rescue Savon::SOAPFault => e raise ATSError, "Couldn't find activity with the id of #{id} error #{e.inspect}" return end end |
Instance Method Details
#address ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/services/ats.rb', line 61 def address # load_metadata unless @metadata_loaded @address = validated_address({ :name => @data["location"], :address => @data["address"], :city => @data["city"], :state => @data["state"], :zip => @data["zip"], :lat => @data["latitude"], :lng => @data["longitude"], :country => @data["country"] }) end |
#categories ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/services/ats.rb', line 51 def categories # load_metadata unless @metadata_loaded categories = @data["channel"] if categories.class==String [@data["channel"]] else @data["channel"] end end |
#category ⇒ Object
110 111 112 |
# File 'lib/services/ats.rb', line 110 def category categories.first end |
#contact_email ⇒ Object
128 129 130 131 |
# File 'lib/services/ats.rb', line 128 def contact_email # load_metadata unless @metadata_loaded @data["contactEmail"] if @data.has_key?("contactEmail") end |
#contact_name ⇒ Object
123 124 125 126 |
# File 'lib/services/ats.rb', line 123 def contact_name # load_metadata unless @metadata_loaded @data["contactName"] if @data.has_key?("contactName") end |
#contact_phone ⇒ Object
132 133 134 |
# File 'lib/services/ats.rb', line 132 def contact_phone @data["contactPhone"] if @data.has_key?("contactPhone") end |
#desc ⇒ Object
114 115 116 117 118 119 120 121 |
# File 'lib/services/ats.rb', line 114 def desc # load_metadata unless @metadata_loaded if @data.has_key?("allText") @data["allText"] elsif @data.has_key?("summary") @data["summary"] end end |
#end_date ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/services/ats.rb', line 92 def end_date # load_metadata unless @metadata_loaded if @data.has_key?("endDate") if @data.has_key?("endTime") (DateTime.parse "#{@data["endDate"]} #{@data["endTime"]}") else (DateTime.parse @data["endDate"]) end else nil end end |
#end_time ⇒ Object
105 106 107 |
# File 'lib/services/ats.rb', line 105 def end_time end_date end |
#load_metadata ⇒ Object
176 177 178 179 180 |
# File 'lib/services/ats.rb', line 176 def = ATS.(@asset_id) @data.merge! Hash.from_xml(.to_hash[:get_asset_metadata_response][:out])["importSource"]["asset"] @metadata_loaded=true end |
#source ⇒ Object
26 27 28 |
# File 'lib/services/ats.rb', line 26 def source :ats end |
#start_date ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/services/ats.rb', line 75 def start_date # load_metadata unless @metadata_loaded if @data.has_key?("startDate") if @data.has_key?("startTime") (DateTime.parse "#{@data["startDate"]} #{@data["startTime"]}") else (DateTime.parse @data["startDate"]) end else nil end end |
#start_time ⇒ Object
88 89 90 |
# File 'lib/services/ats.rb', line 88 def start_time start_date end |
#substitutionUrl ⇒ Object
136 137 138 |
# File 'lib/services/ats.rb', line 136 def substitutionUrl @data[:substitution_url] end |
#title ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/services/ats.rb', line 31 def title # load_metadata unless @metadata_loaded # if @data.has_key?("assetName") @data["assetName"] # else # @title # end end |
#url ⇒ Object
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/services/ats.rb', line 40 def url # load_metadata unless @metadata_loaded if @data.has_key?("seourl") @data["seourl"] elsif @data.has_key?("trackbackurl") @data["trackbackurl"] else @url end end |
#user ⇒ Object
140 141 142 143 144 145 146 147 |
# File 'lib/services/ats.rb', line 140 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 |