Commit 882a106

mo khan <mo@mokhan.ca>
2016-05-03 17:18:43
search for multiple categories.
1 parent ead941b
Changed files (3)
app
models
bin
spec
app/models/gym.rb
@@ -29,13 +29,13 @@ class Gym < ActiveRecord::Base
     end
   end
 
-  def self.search_yelp(city: "Calgary", page: 1, page_size: 20)
+  def self.search_yelp(term: 'gym', city: "Calgary", categories: ['gyms'], page: 1, page_size: 20)
     offset = (page * page_size) - page_size
     Yelp.client.search(city, {
-      category_filter: 'gyms',
+      category_filter: categories.join(','),
       limit: page_size,
       offset: offset,
-      term: 'gym',
+      term: term,
     }).businesses.map do |result|
       Gym.new(
         name: result.name,
bin/yelp
@@ -3,7 +3,7 @@
 # bin/rails runner -e development bin/yelp
 #url='https://api.yelp.com/v2/search/?term=gym&location=Calgary&sort=2&limit=20&cc=CA&category_filter=gyms'
 #curl $url
-cities = ['Calgary', 'Edmonton']
+cities = ['Calgary', 'Edmonton', 'Portland', 'Victoria', 'Anaheim', 'San Diego', 'Seattle']
 cities.each do |city|
   (1..5).each do |page|
     puts "Searching #{city}, page: #{page}"
spec/models/gym_spec.rb
@@ -95,5 +95,13 @@ describe Gym do
       expect(results.count).to be > 0
       expect(results.first).to be_instance_of(Gym)
     end
+
+    it 'finds a college gym' do
+      expect(Gym.search_yelp(
+        term: 'SAIT',
+        city: "Calgary",
+        categories: ["gyms", "stadiumsarenas"]
+      ).map(&:name)).to match_array(["Sait Campus Centre"])
+    end
   end
 end