foursquare2 1.9.5 → 1.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/foursquare2.gemspec +9 -2
- data/lib/foursquare2.rb +1 -0
- data/lib/foursquare2/campaigns.rb +8 -0
- data/lib/foursquare2/client.rb +1 -0
- data/lib/foursquare2/venuegroups.rb +61 -0
- data/lib/foursquare2/venues.rb +9 -0
- data/test/fixtures/campaigns/campaign.json +33 -0
- data/test/fixtures/venuegroups/venuegroup.json +17 -0
- data/test/fixtures/venuegroups/venuegroup_add.json +17 -0
- data/test/fixtures/venuegroups/venuegroup_update.json +20 -0
- data/test/fixtures/venues/venue_hours.json +1 -0
- data/test/test_campaigns.rb +6 -0
- data/test/test_venuegroups.rb +29 -0
- data/test/test_venues.rb +6 -0
- metadata +10 -3
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.9.
|
|
1
|
+
1.9.6
|
data/foursquare2.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "foursquare2"
|
|
8
|
-
s.version = "1.9.
|
|
8
|
+
s.version = "1.9.6"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Matt Mueller", "Marco Moura"]
|
|
12
|
-
s.date = "2013-
|
|
12
|
+
s.date = "2013-04-14"
|
|
13
13
|
s.description = "Gives access to all endpoints in version 2 of foursquare's API with syntax that will be familiar to those who used the original foursquare gem by Jeremy Welch."
|
|
14
14
|
s.email = ["muellermr@gmail.com", "email@marcomoura.com"]
|
|
15
15
|
s.extra_rdoc_files = [
|
|
@@ -37,8 +37,10 @@ Gem::Specification.new do |s|
|
|
|
37
37
|
"lib/foursquare2/specials.rb",
|
|
38
38
|
"lib/foursquare2/tips.rb",
|
|
39
39
|
"lib/foursquare2/users.rb",
|
|
40
|
+
"lib/foursquare2/venuegroups.rb",
|
|
40
41
|
"lib/foursquare2/venues.rb",
|
|
41
42
|
"test/config.rb",
|
|
43
|
+
"test/fixtures/campaigns/campaign.json",
|
|
42
44
|
"test/fixtures/campaigns/campaign_created.json",
|
|
43
45
|
"test/fixtures/campaigns/campaigns_list.json",
|
|
44
46
|
"test/fixtures/checkins/checkin.json",
|
|
@@ -76,6 +78,9 @@ Gem::Specification.new do |s|
|
|
|
76
78
|
"test/fixtures/users/user_tips.json",
|
|
77
79
|
"test/fixtures/users/user_venuestats.json",
|
|
78
80
|
"test/fixtures/users/user_venuestats_friend_id.json",
|
|
81
|
+
"test/fixtures/venuegroups/venuegroup.json",
|
|
82
|
+
"test/fixtures/venuegroups/venuegroup_add.json",
|
|
83
|
+
"test/fixtures/venuegroups/venuegroup_update.json",
|
|
79
84
|
"test/fixtures/venues/explore_venues.json",
|
|
80
85
|
"test/fixtures/venues/managed_venues.json",
|
|
81
86
|
"test/fixtures/venues/no_venues_by_tip.json",
|
|
@@ -85,6 +90,7 @@ Gem::Specification.new do |s|
|
|
|
85
90
|
"test/fixtures/venues/trending_venues.json",
|
|
86
91
|
"test/fixtures/venues/venue.json",
|
|
87
92
|
"test/fixtures/venues/venue_herenow.json",
|
|
93
|
+
"test/fixtures/venues/venue_hours.json",
|
|
88
94
|
"test/fixtures/venues/venue_links.json",
|
|
89
95
|
"test/fixtures/venues/venue_menus.json",
|
|
90
96
|
"test/fixtures/venues/venue_photos.json",
|
|
@@ -101,6 +107,7 @@ Gem::Specification.new do |s|
|
|
|
101
107
|
"test/test_specials.rb",
|
|
102
108
|
"test/test_tips.rb",
|
|
103
109
|
"test/test_users.rb",
|
|
110
|
+
"test/test_venuegroups.rb",
|
|
104
111
|
"test/test_venues.rb"
|
|
105
112
|
]
|
|
106
113
|
s.homepage = "http://github.com/mattmueller/foursquare2"
|
data/lib/foursquare2.rb
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
module Foursquare2
|
|
2
2
|
module Campaigns
|
|
3
|
+
|
|
4
|
+
# Retrieve information about a campaign
|
|
5
|
+
#
|
|
6
|
+
# param [String] campaign_id The ID of the venue
|
|
7
|
+
def campaign(campaign_id)
|
|
8
|
+
response = connection.get("campaigns/#{campaign_id}")
|
|
9
|
+
return_error_or_body(response, response.body.response.campaign)
|
|
10
|
+
end
|
|
3
11
|
|
|
4
12
|
# Add a campaign
|
|
5
13
|
# Details on param options can be found at https://developer.foursquare.com/docs/campaigns/add
|
data/lib/foursquare2/client.rb
CHANGED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
module Foursquare2
|
|
2
|
+
module Venuegroups
|
|
3
|
+
|
|
4
|
+
# Retrieve information about a venuegroup
|
|
5
|
+
#
|
|
6
|
+
# param [String] group_id The ID of the venuegroup
|
|
7
|
+
|
|
8
|
+
def venuegroup(group_id)
|
|
9
|
+
response = connection.get("venuegroups/#{group_id}")
|
|
10
|
+
return_error_or_body(response, response.body.response.venueGroup)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Create a venue group. If the venueId parameter is specified,
|
|
14
|
+
# then the endpoint will add the specified venues to the venue group.
|
|
15
|
+
# If it is not possible to add all of the specified venues to the group,
|
|
16
|
+
# then creation of the venue group will fail entirely.
|
|
17
|
+
# @param [Hash] options
|
|
18
|
+
# @option options String :name - Required. The name to give the group.
|
|
19
|
+
# @option options String :venueId - Comma-delimited list of venue IDs to add to the group. If this parameter is not specified, then the venue group will initially be empty.
|
|
20
|
+
|
|
21
|
+
def add_venuegroup(options={})
|
|
22
|
+
response = connection.post do |req|
|
|
23
|
+
req.url "venuegroups/add", options
|
|
24
|
+
end
|
|
25
|
+
return_error_or_body(response, response.body.response.venueGroup)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Updates a venue group. At least one of the name and venueId parameters must be specified.
|
|
29
|
+
# @param [String] group_id - required The ID of the venue group to modify
|
|
30
|
+
# @param [Hash] options
|
|
31
|
+
# @option options String :name - If specified, the new name to give to the group.
|
|
32
|
+
# @option options String :venueId - If specified, a comma-delimited list of venue IDs that will become the new set of venue IDs for the group.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def venuegroup_update(group_id, options={})
|
|
36
|
+
response = connection.post do |req|
|
|
37
|
+
req.url "venuegroups/#{group_id}/update", options
|
|
38
|
+
end
|
|
39
|
+
return_error_or_body(response, response.body.response.venueGroup)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# List all venue groups owned by the user.
|
|
43
|
+
|
|
44
|
+
def list_venuegroup
|
|
45
|
+
response = connection.get do |req|
|
|
46
|
+
req.url "venuegroups/list"
|
|
47
|
+
end
|
|
48
|
+
return_error_or_body(response, response.body.response.venueGroups)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Delete a venue group.
|
|
52
|
+
# param [String] group_id - The ID of the venuegroup to delete.
|
|
53
|
+
|
|
54
|
+
def delete_venuegroup(group_id)
|
|
55
|
+
response = connection.post do |req|
|
|
56
|
+
req.url "venuegroups/#{group_id}/delete"
|
|
57
|
+
end
|
|
58
|
+
return_error_or_body(response, response.body.response)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
data/lib/foursquare2/venues.rb
CHANGED
|
@@ -246,5 +246,14 @@ module Foursquare2
|
|
|
246
246
|
end
|
|
247
247
|
return_error_or_body(response, response.body.response)
|
|
248
248
|
end
|
|
249
|
+
|
|
250
|
+
# Get venue hours information.
|
|
251
|
+
#
|
|
252
|
+
# param [String] venue_id The ID of the venue
|
|
253
|
+
|
|
254
|
+
def venue_hours(venue_id)
|
|
255
|
+
response = connection.get("venues/#{venue_id}/hours")
|
|
256
|
+
return_error_or_body(response, response.body.response)
|
|
257
|
+
end
|
|
249
258
|
end
|
|
250
259
|
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {"code": 200},
|
|
3
|
+
"response": {
|
|
4
|
+
"campaign": {
|
|
5
|
+
"id": "4e0deba2922e6f94b1410b79",
|
|
6
|
+
"venues": {
|
|
7
|
+
"count": 1,
|
|
8
|
+
"items": [
|
|
9
|
+
{
|
|
10
|
+
"id": "4e0deab3922e6f94b1410af3"
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"startsAt": 1309535356,
|
|
15
|
+
"startable": false,
|
|
16
|
+
"deleteable": false,
|
|
17
|
+
"requiresCodes": false,
|
|
18
|
+
"uploadInProgress": false,
|
|
19
|
+
"status": "active",
|
|
20
|
+
"special": {
|
|
21
|
+
"id": "4e0debea922e6f94b1410bb7",
|
|
22
|
+
"name": "Friends Special 7/1/2011",
|
|
23
|
+
"title": "Friends Special",
|
|
24
|
+
"text": "Check in with 2 friends and receive a free cowsy dungy clock!"
|
|
25
|
+
},
|
|
26
|
+
"timeZoneOffset": -240,
|
|
27
|
+
"venueGroups": {
|
|
28
|
+
"count": 0,
|
|
29
|
+
"items": [ ]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {"code": 200},
|
|
3
|
+
"response": {
|
|
4
|
+
"venuegroup": {
|
|
5
|
+
"id": "4e15cd13b61c42e7c54e5bb6",
|
|
6
|
+
"name": "Venues",
|
|
7
|
+
"venues": {
|
|
8
|
+
"count": 2,
|
|
9
|
+
"items": [
|
|
10
|
+
{
|
|
11
|
+
"id": "4b8c3d87f964a520f7c532e3"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "4d572bcc9e508cfab975189b"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"meta":{"code":200},"notifications":[{"type":"notificationTray","item":{"unreadCount":0}}],"response":{"hours":{"timeframes":[{"days":[1,2,3,4,5,6],"includesToday":true,"open":[{"start":"0700","end":"1900"}],"segments":[]},{"days":[7],"open":[{"start":"0800","end":"1800"}],"segments":[]}]},"popular":{"timeframes":[{"days":[3],"includesToday":true,"open":[{"start":"0600","end":"1500"}],"segments":[]},{"days":[4],"open":[{"start":"0600","end":"1600"}],"segments":[]},{"days":[5],"open":[{"start":"0600","end":"1700"}],"segments":[]},{"days":[6],"open":[{"start":"0700","end":"1700"}],"segments":[]},{"days":[7],"open":[{"start":"0800","end":"1600"}],"segments":[]},{"days":[1],"open":[{"start":"0700","end":"1600"}],"segments":[]},{"days":[2],"open":[{"start":"0700","end":"1500"}],"segments":[]}]}}}
|
data/test/test_campaigns.rb
CHANGED
|
@@ -8,6 +8,12 @@ class TestCampaigns < Test::Unit::TestCase
|
|
|
8
8
|
setup do
|
|
9
9
|
@client = foursquare_test_client
|
|
10
10
|
end
|
|
11
|
+
|
|
12
|
+
should "get a campaign" do
|
|
13
|
+
stub_get("https://api.foursquare.com/v2/campaigns/4e0deba2922e6f94b1410b79?oauth_token=#{@client.oauth_token}", "campaigns/campaign.json")
|
|
14
|
+
campaign = @client.campaign('4e0deba2922e6f94b1410b79')
|
|
15
|
+
campaign.id == "4e0deba2922e6f94b1410b79"
|
|
16
|
+
end
|
|
11
17
|
|
|
12
18
|
should "add a campaign" do
|
|
13
19
|
stub_post("https://api.foursquare.com/v2/campaigns/add?oauth_token=#{@client.oauth_token}&specialId=4bd876f886ba62b58a6e88b3", "campaigns/campaign_created.json")
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'helper'
|
|
2
|
+
|
|
3
|
+
class TestVenuegroups < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
context "When using the foursquare API and working with venuegroups" do
|
|
6
|
+
setup do
|
|
7
|
+
@client = foursquare_test_client
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
should "get a venuegroup" do
|
|
11
|
+
stub_get("https://api.foursquare.com/v2/venuegroups/4e15cd13b61c42e7c54e5bb6?oauth_token=#{@client.oauth_token}", "venuegroups/venuegroup.json")
|
|
12
|
+
venuegroup = @client.venuegroup('4e15cd13b61c42e7c54e5bb6')
|
|
13
|
+
venuegroup.id == "4e15cd13b61c42e7c54e5bb6"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
should "add a venuegroup" do
|
|
17
|
+
stub_post("https://api.foursquare.com/v2/venuegroups/add?oauth_token=#{@client.oauth_token}&name=Venues&venueId=4b8c3d87f964a520f7c532e3", "venuegroups/venuegroup_add.json")
|
|
18
|
+
venuegroup = @client.add_venuegroup(:name => 'Venues', :venueId => '4b8c3d87f964a520f7c532e3')
|
|
19
|
+
venuegroup.name == "Venues"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
should "update a venuegroup" do
|
|
23
|
+
stub_post("https://api.foursquare.com/v2/venuegroups/4e15cd13b61c42e7c54e5bb6/update?oauth_token=#{@client.oauth_token}?venueId=4b8c3d87f964a520f7c532e3,4d572bcc9e508cfab975189b", "venuegroups/venuegroup_update.json")
|
|
24
|
+
venuegroup = @client.venuegroup('4e15cd13b61c42e7c54e5bb6')
|
|
25
|
+
venuegroup.venues.count == 2
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
end
|
data/test/test_venues.rb
CHANGED
|
@@ -132,6 +132,12 @@ class TestVenues < Test::Unit::TestCase
|
|
|
132
132
|
response.stats.totalCheckins.should == 1
|
|
133
133
|
end
|
|
134
134
|
|
|
135
|
+
should "get hours from a venue" do
|
|
136
|
+
stub_get("https://api.foursquare.com/v2/venues/49d68c61f964a520e65c1fe3/hours?oauth_token=#{@client.oauth_token}", "venues/venue_hours.json")
|
|
137
|
+
response = @client.venue_hours('49d68c61f964a520e65c1fe3')
|
|
138
|
+
response.hours.timeframes.first.days.should == [1, 2, 3, 4, 5, 6]
|
|
139
|
+
end
|
|
140
|
+
|
|
135
141
|
context "and getting detailed stats for a venue not managed by user" do
|
|
136
142
|
should "raise a 'not authorized' API error" do
|
|
137
143
|
stub_get("https://api.foursquare.com/v2/venues/4ad4c04af964a52065f220e3/stats?oauth_token=#{@client.oauth_token}", nil,
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: foursquare2
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.9.
|
|
4
|
+
version: 1.9.6
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2013-
|
|
13
|
+
date: 2013-04-14 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: faraday
|
|
@@ -241,8 +241,10 @@ files:
|
|
|
241
241
|
- lib/foursquare2/specials.rb
|
|
242
242
|
- lib/foursquare2/tips.rb
|
|
243
243
|
- lib/foursquare2/users.rb
|
|
244
|
+
- lib/foursquare2/venuegroups.rb
|
|
244
245
|
- lib/foursquare2/venues.rb
|
|
245
246
|
- test/config.rb
|
|
247
|
+
- test/fixtures/campaigns/campaign.json
|
|
246
248
|
- test/fixtures/campaigns/campaign_created.json
|
|
247
249
|
- test/fixtures/campaigns/campaigns_list.json
|
|
248
250
|
- test/fixtures/checkins/checkin.json
|
|
@@ -280,6 +282,9 @@ files:
|
|
|
280
282
|
- test/fixtures/users/user_tips.json
|
|
281
283
|
- test/fixtures/users/user_venuestats.json
|
|
282
284
|
- test/fixtures/users/user_venuestats_friend_id.json
|
|
285
|
+
- test/fixtures/venuegroups/venuegroup.json
|
|
286
|
+
- test/fixtures/venuegroups/venuegroup_add.json
|
|
287
|
+
- test/fixtures/venuegroups/venuegroup_update.json
|
|
283
288
|
- test/fixtures/venues/explore_venues.json
|
|
284
289
|
- test/fixtures/venues/managed_venues.json
|
|
285
290
|
- test/fixtures/venues/no_venues_by_tip.json
|
|
@@ -289,6 +294,7 @@ files:
|
|
|
289
294
|
- test/fixtures/venues/trending_venues.json
|
|
290
295
|
- test/fixtures/venues/venue.json
|
|
291
296
|
- test/fixtures/venues/venue_herenow.json
|
|
297
|
+
- test/fixtures/venues/venue_hours.json
|
|
292
298
|
- test/fixtures/venues/venue_links.json
|
|
293
299
|
- test/fixtures/venues/venue_menus.json
|
|
294
300
|
- test/fixtures/venues/venue_photos.json
|
|
@@ -305,6 +311,7 @@ files:
|
|
|
305
311
|
- test/test_specials.rb
|
|
306
312
|
- test/test_tips.rb
|
|
307
313
|
- test/test_users.rb
|
|
314
|
+
- test/test_venuegroups.rb
|
|
308
315
|
- test/test_venues.rb
|
|
309
316
|
homepage: http://github.com/mattmueller/foursquare2
|
|
310
317
|
licenses:
|
|
@@ -321,7 +328,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
321
328
|
version: '0'
|
|
322
329
|
segments:
|
|
323
330
|
- 0
|
|
324
|
-
hash:
|
|
331
|
+
hash: -43746040217970609
|
|
325
332
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
326
333
|
none: false
|
|
327
334
|
requirements:
|