foursquare2 1.8.1 → 1.8.2
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/Readme.md +2 -0
- data/VERSION +1 -1
- data/foursquare2.gemspec +43 -38
- data/lib/foursquare2/checkins.rb +29 -0
- data/lib/foursquare2/client.rb +1 -0
- data/lib/foursquare2/events.rb +21 -0
- data/lib/foursquare2/venues.rb +0 -2
- data/lib/foursquare2.rb +1 -0
- data/test/fixtures/{campaign_created.json → campaigns/campaign_created.json} +0 -0
- data/test/fixtures/{checkin.json → checkins/checkin.json} +0 -0
- data/test/fixtures/checkins/checkin_reply.json +30 -0
- data/test/fixtures/{friend_checkins.json → checkins/friend_checkins.json} +0 -0
- data/test/fixtures/checkins/post_created.json +30 -0
- data/test/fixtures/events/event.json +53 -0
- data/test/fixtures/events/event_categories.json +153 -0
- data/test/fixtures/{list.json → lists/list.json} +0 -0
- data/test/fixtures/{list_created.json → lists/list_created.json} +0 -0
- data/test/fixtures/{list_followed.json → lists/list_followed.json} +0 -0
- data/test/fixtures/{list_item.json → lists/list_item.json} +0 -0
- data/test/fixtures/{list_moved_item.json → lists/list_moved_item.json} +0 -0
- data/test/fixtures/{list_updated.json → lists/list_updated.json} +0 -0
- data/test/fixtures/{page.json → pages/page.json} +0 -0
- data/test/fixtures/{page_venues.json → pages/page_venues.json} +0 -0
- data/test/fixtures/{search_pages.json → pages/search_pages.json} +0 -0
- data/test/fixtures/{photo.json → photos/photo.json} +0 -0
- data/test/fixtures/{search_specials.json → specials/search_specials.json} +0 -0
- data/test/fixtures/{special.json → specials/special.json} +0 -0
- data/test/fixtures/{special_created.json → specials/special_created.json} +0 -0
- data/test/fixtures/{search_tips.json → tips/search_tips.json} +0 -0
- data/test/fixtures/{tip.json → tips/tip.json} +0 -0
- data/test/fixtures/{search_users.json → users/search_users.json} +0 -0
- data/test/fixtures/{user.json → users/user.json} +0 -0
- data/test/fixtures/{user_lists.json → users/user_lists.json} +0 -0
- data/test/fixtures/{user_mayorships.json → users/user_mayorships.json} +0 -0
- data/test/fixtures/{user_tips.json → users/user_tips.json} +0 -0
- data/test/fixtures/{explore_venues.json → venues/explore_venues.json} +0 -0
- data/test/fixtures/{managed_venues.json → venues/managed_venues.json} +0 -0
- data/test/fixtures/{no_venues_by_tip.json → venues/no_venues_by_tip.json} +0 -0
- data/test/fixtures/{search_venues.json → venues/search_venues.json} +0 -0
- data/test/fixtures/{search_venues_by_tip.json → venues/search_venues_by_tip.json} +0 -0
- data/test/fixtures/{suggest_completion_venues.json → venues/suggest_completion_venues.json} +0 -0
- data/test/fixtures/{venue.json → venues/venue.json} +0 -0
- data/test/fixtures/{venue_links.json → venues/venue_links.json} +0 -0
- data/test/fixtures/{venue_menus.json → venues/venue_menus.json} +0 -0
- data/test/fixtures/{venue_photos.json → venues/venue_photos.json} +0 -0
- data/test/fixtures/{venue_stats.json → venues/venue_stats.json} +0 -0
- data/test/fixtures/{venue_tips.json → venues/venue_tips.json} +0 -0
- data/test/test_campaigns.rb +1 -1
- data/test/test_checkins.rb +14 -2
- data/test/test_client.rb +1 -1
- data/test/test_events.rb +23 -0
- data/test/test_lists.rb +8 -8
- data/test/test_pages.rb +3 -3
- data/test/test_photos.rb +1 -1
- data/test/test_specials.rb +3 -3
- data/test/test_tips.rb +2 -2
- data/test/test_users.rb +9 -9
- data/test/test_venues.rb +16 -16
- metadata +68 -63
- data/test/fixtures/user_tips_empty.json +0 -11
data/Readme.md
CHANGED
|
@@ -72,6 +72,8 @@ See [the documentation](http://rubydoc.info/gems/foursquare2/frames) or [foursqu
|
|
|
72
72
|
client.recent_checkins
|
|
73
73
|
client.add_checkin
|
|
74
74
|
client.add_checkin_comment
|
|
75
|
+
client.add_checkin_post
|
|
76
|
+
client.add_checkin_reply
|
|
75
77
|
client.delete_checkin_comment
|
|
76
78
|
client.photo
|
|
77
79
|
client.add_photo
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.8.
|
|
1
|
+
1.8.2
|
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.8.
|
|
8
|
+
s.version = "1.8.2"
|
|
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 = "2012-
|
|
12
|
+
s.date = "2012-09-01"
|
|
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 = [
|
|
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
|
|
|
29
29
|
"lib/foursquare2/campaigns.rb",
|
|
30
30
|
"lib/foursquare2/checkins.rb",
|
|
31
31
|
"lib/foursquare2/client.rb",
|
|
32
|
+
"lib/foursquare2/events.rb",
|
|
32
33
|
"lib/foursquare2/lists.rb",
|
|
33
34
|
"lib/foursquare2/pages.rb",
|
|
34
35
|
"lib/foursquare2/photos.rb",
|
|
@@ -38,48 +39,52 @@ Gem::Specification.new do |s|
|
|
|
38
39
|
"lib/foursquare2/users.rb",
|
|
39
40
|
"lib/foursquare2/venues.rb",
|
|
40
41
|
"test/config.rb",
|
|
41
|
-
"test/fixtures/campaign_created.json",
|
|
42
|
-
"test/fixtures/checkin.json",
|
|
42
|
+
"test/fixtures/campaigns/campaign_created.json",
|
|
43
|
+
"test/fixtures/checkins/checkin.json",
|
|
44
|
+
"test/fixtures/checkins/checkin_reply.json",
|
|
45
|
+
"test/fixtures/checkins/friend_checkins.json",
|
|
46
|
+
"test/fixtures/checkins/post_created.json",
|
|
43
47
|
"test/fixtures/error.json",
|
|
44
48
|
"test/fixtures/error_template.json",
|
|
45
|
-
"test/fixtures/
|
|
46
|
-
"test/fixtures/
|
|
47
|
-
"test/fixtures/list.json",
|
|
48
|
-
"test/fixtures/list_created.json",
|
|
49
|
-
"test/fixtures/list_followed.json",
|
|
50
|
-
"test/fixtures/list_item.json",
|
|
51
|
-
"test/fixtures/list_moved_item.json",
|
|
52
|
-
"test/fixtures/list_updated.json",
|
|
53
|
-
"test/fixtures/
|
|
54
|
-
"test/fixtures/
|
|
55
|
-
"test/fixtures/
|
|
56
|
-
"test/fixtures/
|
|
57
|
-
"test/fixtures/
|
|
58
|
-
"test/fixtures/
|
|
59
|
-
"test/fixtures/
|
|
60
|
-
"test/fixtures/search_tips.json",
|
|
61
|
-
"test/fixtures/
|
|
62
|
-
"test/fixtures/
|
|
63
|
-
"test/fixtures/
|
|
64
|
-
"test/fixtures/
|
|
65
|
-
"test/fixtures/
|
|
66
|
-
"test/fixtures/
|
|
67
|
-
"test/fixtures/
|
|
68
|
-
"test/fixtures/
|
|
69
|
-
"test/fixtures/
|
|
70
|
-
"test/fixtures/
|
|
71
|
-
"test/fixtures/
|
|
72
|
-
"test/fixtures/
|
|
73
|
-
"test/fixtures/venue.json",
|
|
74
|
-
"test/fixtures/venue_links.json",
|
|
75
|
-
"test/fixtures/venue_menus.json",
|
|
76
|
-
"test/fixtures/venue_photos.json",
|
|
77
|
-
"test/fixtures/venue_stats.json",
|
|
78
|
-
"test/fixtures/venue_tips.json",
|
|
49
|
+
"test/fixtures/events/event.json",
|
|
50
|
+
"test/fixtures/events/event_categories.json",
|
|
51
|
+
"test/fixtures/lists/list.json",
|
|
52
|
+
"test/fixtures/lists/list_created.json",
|
|
53
|
+
"test/fixtures/lists/list_followed.json",
|
|
54
|
+
"test/fixtures/lists/list_item.json",
|
|
55
|
+
"test/fixtures/lists/list_moved_item.json",
|
|
56
|
+
"test/fixtures/lists/list_updated.json",
|
|
57
|
+
"test/fixtures/pages/page.json",
|
|
58
|
+
"test/fixtures/pages/page_venues.json",
|
|
59
|
+
"test/fixtures/pages/search_pages.json",
|
|
60
|
+
"test/fixtures/photos/photo.json",
|
|
61
|
+
"test/fixtures/specials/search_specials.json",
|
|
62
|
+
"test/fixtures/specials/special.json",
|
|
63
|
+
"test/fixtures/specials/special_created.json",
|
|
64
|
+
"test/fixtures/tips/search_tips.json",
|
|
65
|
+
"test/fixtures/tips/tip.json",
|
|
66
|
+
"test/fixtures/users/search_users.json",
|
|
67
|
+
"test/fixtures/users/user.json",
|
|
68
|
+
"test/fixtures/users/user_lists.json",
|
|
69
|
+
"test/fixtures/users/user_mayorships.json",
|
|
70
|
+
"test/fixtures/users/user_tips.json",
|
|
71
|
+
"test/fixtures/venues/explore_venues.json",
|
|
72
|
+
"test/fixtures/venues/managed_venues.json",
|
|
73
|
+
"test/fixtures/venues/no_venues_by_tip.json",
|
|
74
|
+
"test/fixtures/venues/search_venues.json",
|
|
75
|
+
"test/fixtures/venues/search_venues_by_tip.json",
|
|
76
|
+
"test/fixtures/venues/suggest_completion_venues.json",
|
|
77
|
+
"test/fixtures/venues/venue.json",
|
|
78
|
+
"test/fixtures/venues/venue_links.json",
|
|
79
|
+
"test/fixtures/venues/venue_menus.json",
|
|
80
|
+
"test/fixtures/venues/venue_photos.json",
|
|
81
|
+
"test/fixtures/venues/venue_stats.json",
|
|
82
|
+
"test/fixtures/venues/venue_tips.json",
|
|
79
83
|
"test/helper.rb",
|
|
80
84
|
"test/test_campaigns.rb",
|
|
81
85
|
"test/test_checkins.rb",
|
|
82
86
|
"test/test_client.rb",
|
|
87
|
+
"test/test_events.rb",
|
|
83
88
|
"test/test_lists.rb",
|
|
84
89
|
"test/test_pages.rb",
|
|
85
90
|
"test/test_photos.rb",
|
data/lib/foursquare2/checkins.rb
CHANGED
|
@@ -73,6 +73,35 @@ module Foursquare2
|
|
|
73
73
|
return_error_or_body(response, response.body.response)
|
|
74
74
|
end
|
|
75
75
|
|
|
76
|
+
# Add a post to a checkin.
|
|
77
|
+
#
|
|
78
|
+
# @param [String] checkin_id the ID of the checkin.
|
|
79
|
+
# @param [Hash] options
|
|
80
|
+
# @option options String :text - The text of the post, up to 200 characters.
|
|
81
|
+
# @option options String :url - Link for more details. This page will be opened in an embedded web view in the foursquare application, unless contentId is specified and a native link handler is registered and present. We support the following URL schemes: http, https, foursquare, mailto, tel, and sms.
|
|
82
|
+
# @option options String :contentId - Identifier for the post to be used in a native link, up to 50 characters. A url must also be specified in the request.
|
|
83
|
+
|
|
84
|
+
def add_checkin_post(checkin_id, options={})
|
|
85
|
+
response = connection.post do |req|
|
|
86
|
+
req.url "checkins/#{checkin_id}/addpost", options
|
|
87
|
+
end
|
|
88
|
+
return_error_or_body(response, response.body.response.post)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Add a reply to a checkin.
|
|
92
|
+
#
|
|
93
|
+
# @param [String] checkin_id the ID of the checkin.
|
|
94
|
+
# @param [Hash] options
|
|
95
|
+
# @option options String :text - The text of the post, up to 200 characters.
|
|
96
|
+
# @option options String :url - Link for more details. This page will be opened in an embedded web view in the foursquare application, unless contentId is specified and a native link handler is registered and present. We support the following URL schemes: http, https, foursquare, mailto, tel, and sms.
|
|
97
|
+
# @option options String :contentId - Identifier for the post to be used in a native link, up to 50 characters. A url must also be specified in the request.
|
|
98
|
+
|
|
99
|
+
def add_checkin_reply(checkin_id, options={})
|
|
100
|
+
response = connection.post do |req|
|
|
101
|
+
req.url "checkins/#{checkin_id}/reply", options
|
|
102
|
+
end
|
|
103
|
+
return_error_or_body(response, response.body.response.reply)
|
|
104
|
+
end
|
|
76
105
|
end
|
|
77
106
|
end
|
|
78
107
|
|
data/lib/foursquare2/client.rb
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Foursquare2
|
|
2
|
+
module Events
|
|
3
|
+
|
|
4
|
+
# Retrieve information about an event
|
|
5
|
+
#
|
|
6
|
+
# param [String] event_id The ID of the event
|
|
7
|
+
|
|
8
|
+
def event(event_id)
|
|
9
|
+
response = connection.get("events/#{event_id}")
|
|
10
|
+
return_error_or_body(response, response.body.response.event)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Retrieve information about all event categories.
|
|
14
|
+
|
|
15
|
+
def event_categories
|
|
16
|
+
response = connection.get("events/categories")
|
|
17
|
+
return_error_or_body(response, response.body.response.categories)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
end
|
data/lib/foursquare2/venues.rb
CHANGED
data/lib/foursquare2.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"code": 200,
|
|
4
|
+
"errorDetail": "Please provide an API version to avoid future errors.See http://bit.ly/vywCav",
|
|
5
|
+
"errorType": "deprecated"
|
|
6
|
+
},
|
|
7
|
+
"notifications": [
|
|
8
|
+
{
|
|
9
|
+
"item": {
|
|
10
|
+
"unreadCount": -1
|
|
11
|
+
},
|
|
12
|
+
"type": "notificationTray"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"response": {
|
|
16
|
+
"reply": {
|
|
17
|
+
"createdAt": 1346497989,
|
|
18
|
+
"id": "5041edc5e4b09ae79babd551",
|
|
19
|
+
"source": {
|
|
20
|
+
"detailUrl": "https://foursquare.com/device/app/SDDBI1SDSDEGVP3YUJGAJC0TRNCKCPA5WABTMYQ5OFBVDOLJ",
|
|
21
|
+
"icon": "https://foursquare.com/img/blank_app_16.png",
|
|
22
|
+
"id": "SDDBI1SDSDEGVP3YUJGAJC0TRNCKCPA5WABTMYQ5OFBVDOLJ",
|
|
23
|
+
"name": "Foursquare API documentation",
|
|
24
|
+
"photo": "https://foursquare.com/img/blank_app.png",
|
|
25
|
+
"url": "https://developer.foursquare.com"
|
|
26
|
+
},
|
|
27
|
+
"text": "Test"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"code": 200,
|
|
4
|
+
"errorDetail": "Please provide an API version to avoid future errors.See http://bit.ly/vywCav",
|
|
5
|
+
"errorType": "deprecated"
|
|
6
|
+
},
|
|
7
|
+
"notifications": [
|
|
8
|
+
{
|
|
9
|
+
"item": {
|
|
10
|
+
"unreadCount": -1
|
|
11
|
+
},
|
|
12
|
+
"type": "notificationTray"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"response": {
|
|
16
|
+
"post": {
|
|
17
|
+
"createdAt": 1346497204,
|
|
18
|
+
"id": "5041eab4e4b05127f7e64be6",
|
|
19
|
+
"source": {
|
|
20
|
+
"detailUrl": "https://foursquare.com/device/app/SDDBI1SDSDEGVP3YUJGAJC0TRNCKCPA5WABTMYQ5OFBVDOLJ",
|
|
21
|
+
"icon": "https://foursquare.com/img/blank_app_16.png",
|
|
22
|
+
"id": "SDDBI1SDSDEGVP3YUJGAJC0TRNCKCPA5WABTMYQ5OFBVDOLJ",
|
|
23
|
+
"name": "Foursquare API documentation",
|
|
24
|
+
"photo": "https://foursquare.com/img/blank_app.png",
|
|
25
|
+
"url": "https://developer.foursquare.com"
|
|
26
|
+
},
|
|
27
|
+
"text": "Test"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"code": 200
|
|
4
|
+
},
|
|
5
|
+
"notifications": [{
|
|
6
|
+
"type": "notificationTray",
|
|
7
|
+
"item": {
|
|
8
|
+
"unreadCount": -1
|
|
9
|
+
}
|
|
10
|
+
}],
|
|
11
|
+
"response": {
|
|
12
|
+
"event": {
|
|
13
|
+
"venueId": "4b108b9ef964a5208f7223e3",
|
|
14
|
+
"id": "4f98d496f6903e7ae2a3628c",
|
|
15
|
+
"name": "Marvel's The Avengers",
|
|
16
|
+
"foreignIds": {
|
|
17
|
+
"count": 0,
|
|
18
|
+
"items": []
|
|
19
|
+
},
|
|
20
|
+
"categories": [{
|
|
21
|
+
"id": "4dfb90c6bd413dd705e8f897",
|
|
22
|
+
"name": "Movies",
|
|
23
|
+
"pluralName": "Movies",
|
|
24
|
+
"shortName": "Movie",
|
|
25
|
+
"icon": {
|
|
26
|
+
"prefix": "https:\/\/foursquare.com\/img\/categories_v2\/arts_entertainment\/movietheater_",
|
|
27
|
+
"suffix": ".png"
|
|
28
|
+
},
|
|
29
|
+
"primary": true
|
|
30
|
+
}],
|
|
31
|
+
"hereNow": {
|
|
32
|
+
"count": 0,
|
|
33
|
+
"groups": [{
|
|
34
|
+
"type": "friends",
|
|
35
|
+
"name": "Friends here",
|
|
36
|
+
"count": 0,
|
|
37
|
+
"items": []
|
|
38
|
+
}, {
|
|
39
|
+
"type": "others",
|
|
40
|
+
"name": "Other people here",
|
|
41
|
+
"count": 0,
|
|
42
|
+
"items": []
|
|
43
|
+
}]
|
|
44
|
+
},
|
|
45
|
+
"allDay": true,
|
|
46
|
+
"date": 1336021200,
|
|
47
|
+
"stats": {
|
|
48
|
+
"checkinsCount": 128,
|
|
49
|
+
"usersCount": 125
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"code": 200
|
|
4
|
+
},
|
|
5
|
+
"response": {
|
|
6
|
+
"categories": [
|
|
7
|
+
{
|
|
8
|
+
"id": "4dfb90c6bd413dd705e8f897",
|
|
9
|
+
"name": "Movies",
|
|
10
|
+
"pluralName": "Movies",
|
|
11
|
+
"shortName": "Movie",
|
|
12
|
+
"icon": {
|
|
13
|
+
"prefix": "https://foursquare.com/img/categories_v2/arts_entertainment/movietheater_",
|
|
14
|
+
"suffix": ".png"
|
|
15
|
+
},
|
|
16
|
+
"categories": []
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "4e0a4b91bd41eda0d6092f89",
|
|
20
|
+
"name": "Music",
|
|
21
|
+
"pluralName": "Music",
|
|
22
|
+
"shortName": "Music",
|
|
23
|
+
"icon": {
|
|
24
|
+
"prefix": "https://foursquare.com/img/categories_v2/arts_entertainment/musicvenue_",
|
|
25
|
+
"suffix": ".png"
|
|
26
|
+
},
|
|
27
|
+
"categories": []
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "4e458e3bbd41d66894dbdecc",
|
|
31
|
+
"name": "Other",
|
|
32
|
+
"pluralName": "Other",
|
|
33
|
+
"shortName": "Other",
|
|
34
|
+
"icon": {
|
|
35
|
+
"prefix": "https://foursquare.com/img/categories_v2/event/default_",
|
|
36
|
+
"suffix": ".png"
|
|
37
|
+
},
|
|
38
|
+
"categories": []
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "4f59477b33bdcd006285c0e4",
|
|
42
|
+
"name": "Panels",
|
|
43
|
+
"pluralName": "Panels",
|
|
44
|
+
"shortName": "Panel",
|
|
45
|
+
"icon": {
|
|
46
|
+
"prefix": "https://foursquare.com/img/categories_v2/event/default_",
|
|
47
|
+
"suffix": ".png"
|
|
48
|
+
},
|
|
49
|
+
"categories": []
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "4e09f7a5bd41dc571bc3b1dc",
|
|
53
|
+
"name": "Sporting Events",
|
|
54
|
+
"pluralName": "Sporting Events",
|
|
55
|
+
"shortName": "Sport",
|
|
56
|
+
"icon": {
|
|
57
|
+
"prefix": "https://foursquare.com/img/categories_v2/event/default_",
|
|
58
|
+
"suffix": ".png"
|
|
59
|
+
},
|
|
60
|
+
"categories": [
|
|
61
|
+
{
|
|
62
|
+
"id": "4e132f48bd41026cd50e8f8e",
|
|
63
|
+
"name": "Baseball Games",
|
|
64
|
+
"pluralName": "Baseball Games",
|
|
65
|
+
"shortName": "Baseball",
|
|
66
|
+
"icon": {
|
|
67
|
+
"prefix": "https://foursquare.com/img/categories_v2/arts_entertainment/stadium_baseball_",
|
|
68
|
+
"suffix": ".png"
|
|
69
|
+
},
|
|
70
|
+
"categories": []
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "4e132f48bd41026cd50e8f91",
|
|
74
|
+
"name": "Basketball Games",
|
|
75
|
+
"pluralName": "Basketball Games",
|
|
76
|
+
"shortName": "Basketball",
|
|
77
|
+
"icon": {
|
|
78
|
+
"prefix": "https://foursquare.com/img/categories_v2/arts_entertainment/stadium_basketball_",
|
|
79
|
+
"suffix": ".png"
|
|
80
|
+
},
|
|
81
|
+
"categories": []
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "4e132f48bd41026cd50e8f8f",
|
|
85
|
+
"name": "Football Game",
|
|
86
|
+
"pluralName": "Football Game",
|
|
87
|
+
"shortName": "Football",
|
|
88
|
+
"icon": {
|
|
89
|
+
"prefix": "https://foursquare.com/img/categories_v2/arts_entertainment/stadium_football_",
|
|
90
|
+
"suffix": ".png"
|
|
91
|
+
},
|
|
92
|
+
"categories": []
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "4e1ca351bd4159e7d88bd90c",
|
|
96
|
+
"name": "Golf Tournaments",
|
|
97
|
+
"pluralName": "Golf Tournaments",
|
|
98
|
+
"shortName": "Golf",
|
|
99
|
+
"icon": {
|
|
100
|
+
"prefix": "https://foursquare.com/img/categories_v2/parks_outdoors/golfcourse_",
|
|
101
|
+
"suffix": ".png"
|
|
102
|
+
},
|
|
103
|
+
"categories": []
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "4e132f48bd41026cd50e8f90",
|
|
107
|
+
"name": "Hockey Games",
|
|
108
|
+
"pluralName": "Hockey Games",
|
|
109
|
+
"shortName": "Hockey",
|
|
110
|
+
"icon": {
|
|
111
|
+
"prefix": "https://foursquare.com/img/categories_v2/arts_entertainment/stadium_hockey_",
|
|
112
|
+
"suffix": ".png"
|
|
113
|
+
},
|
|
114
|
+
"categories": []
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "4e1dbf8dbd4146b989a9d9ee",
|
|
118
|
+
"name": "Races",
|
|
119
|
+
"pluralName": "Races",
|
|
120
|
+
"shortName": "Racing",
|
|
121
|
+
"icon": {
|
|
122
|
+
"prefix": "https://foursquare.com/img/categories_v2/arts_entertainment/racetrack_",
|
|
123
|
+
"suffix": ".png"
|
|
124
|
+
},
|
|
125
|
+
"categories": []
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"id": "4e173846bd41c6d19e8dd5a3",
|
|
129
|
+
"name": "Soccer Matches",
|
|
130
|
+
"pluralName": "Soccer Matches",
|
|
131
|
+
"shortName": "Soccer",
|
|
132
|
+
"icon": {
|
|
133
|
+
"prefix": "https://foursquare.com/img/categories_v2/arts_entertainment/stadium_soccer_",
|
|
134
|
+
"suffix": ".png"
|
|
135
|
+
},
|
|
136
|
+
"categories": []
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"id": "4e29cd20bd41a4ce124ac881",
|
|
140
|
+
"name": "Tennis Matches",
|
|
141
|
+
"pluralName": "Tennis Matches",
|
|
142
|
+
"shortName": "Tennis",
|
|
143
|
+
"icon": {
|
|
144
|
+
"prefix": "https://foursquare.com/img/categories_v2/arts_entertainment/stadium_tennis_",
|
|
145
|
+
"suffix": ".png"
|
|
146
|
+
},
|
|
147
|
+
"categories": []
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/test/test_campaigns.rb
CHANGED
|
@@ -8,7 +8,7 @@ class TestCampaigns < Test::Unit::TestCase
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
should "add a campaign" do
|
|
11
|
-
stub_post("https://api.foursquare.com/v2/campaigns/add?oauth_token=#{@client.oauth_token}&specialId=4bd876f886ba62b58a6e88b3", "campaign_created.json")
|
|
11
|
+
stub_post("https://api.foursquare.com/v2/campaigns/add?oauth_token=#{@client.oauth_token}&specialId=4bd876f886ba62b58a6e88b3", "campaigns/campaign_created.json")
|
|
12
12
|
campaign = @client.add_campaign(:specialId => '4bd876f886ba62b58a6e88b3')
|
|
13
13
|
campaign.special.id == "4bd876f886ba62b58a6e88b3"
|
|
14
14
|
end
|
data/test/test_checkins.rb
CHANGED
|
@@ -8,19 +8,31 @@ class TestCheckins < Test::Unit::TestCase
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
should "fetch info for a single checkin" do
|
|
11
|
-
stub_get("https://api.foursquare.com/v2/checkins/4d572bcc9e508cfab975189b?oauth_token=#{@client.oauth_token}", "checkin.json")
|
|
11
|
+
stub_get("https://api.foursquare.com/v2/checkins/4d572bcc9e508cfab975189b?oauth_token=#{@client.oauth_token}", "checkins/checkin.json")
|
|
12
12
|
checkin = @client.checkin('4d572bcc9e508cfab975189b')
|
|
13
13
|
checkin.venue.name.should == 'Bridgestone Arena'
|
|
14
14
|
checkin.user.firstName.should == 'Matt'
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
should "fetch recent checkins from friends"do
|
|
18
|
-
stub_get("https://api.foursquare.com/v2/checkins/recent?oauth_token=#{@client.oauth_token}&limit=2", "friend_checkins.json")
|
|
18
|
+
stub_get("https://api.foursquare.com/v2/checkins/recent?oauth_token=#{@client.oauth_token}&limit=2", "checkins/friend_checkins.json")
|
|
19
19
|
checkins = @client.recent_checkins(:limit => 2)
|
|
20
20
|
checkins.count.should == 2
|
|
21
21
|
checkins.first.venue.name.should == 'Buffalo Billiards'
|
|
22
22
|
checkins.last.user.firstName.should == 'David'
|
|
23
23
|
end
|
|
24
|
+
|
|
25
|
+
should "add a post to an existing checkin" do
|
|
26
|
+
stub_post("https://api.foursquare.com/v2/checkins/5041335de4b08d95c1591453/addpost?oauth_token=#{@client.oauth_token}&text=Test", "checkins/post_created.json")
|
|
27
|
+
post = @client.add_checkin_post('5041335de4b08d95c1591453', :text => "Test")
|
|
28
|
+
post.text.should == "Test"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
should "add a reply to an existing checkin" do
|
|
32
|
+
stub_post("https://api.foursquare.com/v2/checkins/5041eda9e4b0133020c2292c/reply?oauth_token=#{@client.oauth_token}&text=Test", "checkins/checkin_reply.json")
|
|
33
|
+
reply = @client.add_checkin_reply('5041eda9e4b0133020c2292c', :text => "Test")
|
|
34
|
+
reply.text.should == "Test"
|
|
35
|
+
end
|
|
24
36
|
end
|
|
25
37
|
|
|
26
38
|
end
|
data/test/test_client.rb
CHANGED
|
@@ -51,7 +51,7 @@ class TestClient < Test::Unit::TestCase
|
|
|
51
51
|
|
|
52
52
|
context "When returning a successful response" do
|
|
53
53
|
should "return the response body as a Hash." do
|
|
54
|
-
response = Faraday::Response.new(:body => fixture_file('search_venues.json', :parse => true))
|
|
54
|
+
response = Faraday::Response.new(:body => fixture_file('venues/search_venues.json', :parse => true))
|
|
55
55
|
client = Foursquare2::Client.new
|
|
56
56
|
|
|
57
57
|
subject = client.return_error_or_body(response, response.body.response)
|