teamsnap_rb 2.0.0.beta7 → 2.0.0.beta10
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/.gitignore +1 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/lib/teamsnap.rb +5 -1
- data/lib/teamsnap/client.rb +1 -0
- data/lib/teamsnap/item.rb +0 -2
- data/lib/teamsnap/version.rb +1 -1
- data/spec/cassettes/uploading_files/uploads_a_file.yml +69 -0
- data/spec/cassettes/uploading_files/uploads_a_tempfile.yml +69 -0
- data/spec/features/uploading_files_spec.rb +41 -0
- data/spec/teamsnap/item_spec.rb +19 -0
- data/support/teamsnap.png +0 -0
- metadata +54 -27
- checksums.yaml +0 -7
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -14,7 +14,7 @@ _Note: You'll need an OAuth2 Token from TeamSnap. Checkout our API docs
|
|
14
14
|
|
15
15
|
λ gem install teamsnap_rb
|
16
16
|
λ irb
|
17
|
-
TeamSnap.init(:
|
17
|
+
TeamSnap.init(:token => XXXXX)
|
18
18
|
=> true
|
19
19
|
|
20
20
|
# Now you have your base connection to the API under:
|
data/lib/teamsnap.rb
CHANGED
@@ -68,7 +68,11 @@ module TeamSnap
|
|
68
68
|
client.send(via, href, args)
|
69
69
|
when :patch, :post
|
70
70
|
client.send(via, href) do |req|
|
71
|
-
|
71
|
+
if args.values.any? { |a| a.kind_of?(File) || a.kind_of?(Tempfile) }
|
72
|
+
req.body = args
|
73
|
+
else
|
74
|
+
req.body = Oj.dump(args)
|
75
|
+
end
|
72
76
|
end
|
73
77
|
else
|
74
78
|
raise TeamSnap::Error.new("Don't know how to run `#{via}`")
|
data/lib/teamsnap/client.rb
CHANGED
data/lib/teamsnap/item.rb
CHANGED
data/lib/teamsnap/version.rb
CHANGED
@@ -0,0 +1,69 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://localhost:3000/members/upload_member_photo
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: member_id=6&file=teamsnap.png=image/png=/Users/dustinmccraw/shared_git/teamsnap_rb/support/teamsnap.png
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.9.2
|
12
|
+
Authorization:
|
13
|
+
- Bearer 7-js_frontend-dont_tell_the_cops
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Content-Type:
|
20
|
+
- application/vnd.collection+json
|
21
|
+
Content-Length:
|
22
|
+
- '12004'
|
23
|
+
X-Content-Type-Options:
|
24
|
+
- nosniff
|
25
|
+
ETag:
|
26
|
+
- '"5b4bde3a2610e78d31459af431f4652a"'
|
27
|
+
Cache-Control:
|
28
|
+
- max-age=0, private, must-revalidate
|
29
|
+
X-Request-Id:
|
30
|
+
- 13f5896b-0c63-4aae-89b4-2bb37a233924
|
31
|
+
X-Runtime:
|
32
|
+
- '8.808891'
|
33
|
+
Connection:
|
34
|
+
- keep-alive
|
35
|
+
Server:
|
36
|
+
- thin
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"collection":{"version":"3.292.6","href":"http://localhost:3000/members","rel":"members","template":{"data":[{"name":"first_name","value":null},{"name":"last_name","value":null},{"name":"gender","value":null},{"name":"position","value":null},{"name":"is_manager","value":null},{"name":"birthday","value":null},{"name":"hide_age","value":null,"deprecated":true,"prompt":"hide_age
|
40
|
+
is deprecated and will be removed in a future version, use is_age_hidden instead."},{"name":"is_age_hidden","value":null},{"name":"hide_address","value":null,"deprecated":true,"prompt":"hide_address
|
41
|
+
is deprecated and will be removed in a future version, use is_address_hidden
|
42
|
+
instead."},{"name":"is_address_hidden","value":null},{"name":"is_non_player","value":null},{"name":"address_street1","value":null},{"name":"address_street2","value":null},{"name":"address_city","value":null},{"name":"address_state","value":null},{"name":"address_zip","value":null},{"name":"jersey_number","value":null},{"name":"team_id","value":null},{"name":"is_ownership_pending","value":null},{"name":"type","value":"member"}]},"links":[{"rel":"assignments","href":"http://localhost:3000/assignments"},{"rel":"availabilities","href":"http://localhost:3000/availabilities"},{"rel":"broadcast_email_attachments","href":"http://localhost:3000/broadcast_email_attachments"},{"rel":"broadcast_emails","href":"http://localhost:3000/broadcast_emails"},{"rel":"broadcast_alerts","href":"http://localhost:3000/broadcast_alerts"},{"rel":"contact_email_addresses","href":"http://localhost:3000/contact_email_addresses"},{"rel":"contact_phone_numbers","href":"http://localhost:3000/contact_phone_numbers"},{"rel":"contacts","href":"http://localhost:3000/contacts"},{"rel":"custom_data","href":"http://localhost:3000/custom_data"},{"rel":"custom_fields","href":"http://localhost:3000/custom_fields"},{"rel":"league_custom_data","href":"http://localhost:3000/league_custom_data"},{"rel":"league_custom_fields","href":"http://localhost:3000/league_custom_fields"},{"rel":"forum_posts","href":"http://localhost:3000/forum_posts"},{"rel":"forum_subscriptions","href":"http://localhost:3000/forum_subscriptions"},{"rel":"forum_topics","href":"http://localhost:3000/forum_topics"},{"rel":"league_registrant_documents","href":"http://localhost:3000/league_registrant_documents"},{"rel":"member_balances","href":"http://localhost:3000/member_balances"},{"rel":"member_email_addresses","href":"http://localhost:3000/member_email_addresses"},{"rel":"member_files","href":"http://localhost:3000/member_files"},{"rel":"member_links","href":"http://localhost:3000/member_links"},{"rel":"member_payments","href":"http://localhost:3000/member_payments"},{"rel":"member_phone_numbers","href":"http://localhost:3000/member_phone_numbers"},{"rel":"member_preferences","href":"http://localhost:3000/members_preferences"},{"rel":"member_statistics","href":"http://localhost:3000/member_statistics"},{"rel":"message_data","href":"http://localhost:3000/message_data"},{"rel":"messages","href":"http://localhost:3000/messages"},{"rel":"statistic_data","href":"http://localhost:3000/statistic_data"},{"rel":"team","href":"http://localhost:3000/teams"},{"rel":"team_media","href":"http://localhost:3000/team_media"},{"rel":"team_medium_comments","href":"http://localhost:3000/team_medium_comments"},{"rel":"tracked_item_statuses","href":"http://localhost:3000/tracked_item_statuses"},{"rel":"user","href":"http://localhost:3000/users"},{"rel":"root","href":"http://localhost:3000/"},{"rel":"self","href":"http://localhost:3000/members/upload_member_photo"}],"queries":[{"rel":"search","href":"http://localhost:3000/members/search","data":[{"name":"team_id","value":null},{"name":"user_id","value":null},{"name":"id","value":null},{"name":"page_size","value":null,"prompt":"The
|
43
|
+
number of items to return for each page. Sending this parameter with the query
|
44
|
+
will enable paging for the returned collection."},{"name":"page_number","value":null,"prompt":"The
|
45
|
+
number of the page to be returned. This requires that paging be turned on
|
46
|
+
by also providing the page_size parameter."}]},{"rel":"managers","href":"http://localhost:3000/members/managers","data":[{"name":"team_id","value":null}]},{"rel":"personas","href":"http://localhost:3000/members/personas","prompt":"Given
|
47
|
+
a user ID, returns members directly associated with the user as well as members
|
48
|
+
associated with the user via a shared access contact.","data":[{"name":"user_id","value":null}]},{"rel":"owner","href":"http://localhost:3000/members/owner","data":[{"name":"team_id","value":null}]},{"rel":"commissioners","href":"http://localhost:3000/members/commissioners","prompt":"BETA:
|
49
|
+
(this query is subject to change or suddenly disappear) Given a a team_id
|
50
|
+
or division_id, returns all members that are commissioners of the divisions
|
51
|
+
that the team is in.","data":[{"name":"team_id","value":null},{"name":"division_id","value":null}]},{"rel":"importable_members","href":"http://localhost:3000/members/importable_members","prompt":"Given
|
52
|
+
a user ID, returns all members associated with user''s active season teams. If
|
53
|
+
include_archived_teams (boolean) parameter is supplied, members associated
|
54
|
+
with archived teams will be returned as well.","data":[{"name":"user_id","value":null},{"name":"include_archived_teams","value":null}]}],"commands":[{"rel":"disable_member","href":"http://localhost:3000/members/disable_member","data":[{"name":"member_id","value":null}]},{"rel":"upload_member_photo","href":"http://localhost:3000/members/upload_member_photo","data":[{"name":"member_id","value":null},{"name":"file","value":null},{"name":"x","value":null},{"name":"y","value":null},{"name":"width","value":null},{"name":"height","value":null}]},{"rel":"remove_member_photo","href":"http://localhost:3000/members/remove_member_photo","data":[{"name":"member_id","value":null}]},{"rel":"generate_member_thumbnail","href":"http://localhost:3000/members/generate_member_thumbnail","data":[{"name":"member_id","value":null},{"name":"x","value":null},{"name":"y","value":null},{"name":"width","value":null},{"name":"height","value":null}]},{"rel":"import_from_team","href":"http://localhost:3000/members/import_from_team","prompt":"Given
|
55
|
+
source_member_ids (array) and a destination_team_id, source members and related
|
56
|
+
member data will be imported to the destination team. Newly created members
|
57
|
+
will be returned.","data":[{"name":"source_member_ids","value":null},{"name":"destination_team_id","value":null},{"name":"send_invites","value":null,"prompt":"Whether
|
58
|
+
or not to create and send invitations for each imported member. Valid values
|
59
|
+
are either ''true'' or ''false'' and will default to ''false''"}]}],"items":[{"href":"http://localhost:3000/members/6","data":[{"name":"id","value":6},{"name":"type","value":"member"},{"name":"address_city","value":null},{"name":"address_state","value":null},{"name":"address_street1","value":null},{"name":"address_street2","value":null},{"name":"address_zip","value":null},{"name":"birthday","value":""},{"name":"first_name","value":"Plato"},{"name":"gender","value":null},{"name":"has_facebook_post_scores_enabled","value":false},{"name":"hide_address","value":null,"deprecated":true,"prompt":"hide_address
|
60
|
+
is deprecated and will be removed in a future version, use is_address_hidden
|
61
|
+
instead."},{"name":"is_address_hidden","value":null},{"name":"hide_age","value":null,"deprecated":true,"prompt":"hide_age
|
62
|
+
is deprecated and will be removed in a future version, use is_age_hidden instead."},{"name":"is_age_hidden","value":null},{"name":"is_commissioner","value":false},{"name":"invitation_code","value":null},{"name":"invitation_declined","value":null},{"name":"is_activated","value":true},{"name":"is_pushable","value":false},{"name":"is_alertable","value":true},{"name":"is_emailable","value":true},{"name":"is_invitable","value":false},{"name":"is_invited","value":false},{"name":"is_manager","value":false},{"name":"is_non_player","value":false},{"name":"is_owner","value":false},{"name":"is_ownership_pending","value":null},{"name":"jersey_number","value":null},{"name":"last_logged_in_at","value":null,"deprecated":true,"prompt":"%{field}
|
63
|
+
is deprecated and has been removed. Continued use of %{field} is not recommended
|
64
|
+
it will no longer be stored."},{"name":"last_name","value":"Player"},{"name":"position","value":null},{"name":"team_id","value":1},{"name":"user_id","value":9},{"name":"updated_at","value":"2016-07-13T23:25:59Z","type":"DateTime"},{"name":"created_at","value":"2016-07-13T23:22:19Z","type":"DateTime"}],"links":[{"rel":"assignments","href":"http://localhost:3000/assignments/search?member_id=6"},{"rel":"availabilities","href":"http://localhost:3000/availabilities/search?member_id=6"},{"rel":"broadcast_email_attachments","href":"http://localhost:3000/broadcast_email_attachments/search?member_id=6"},{"rel":"broadcast_emails","href":"http://localhost:3000/broadcast_emails/search?member_id=6"},{"rel":"broadcast_alerts","href":"http://localhost:3000/broadcast_alerts/search?member_id=6"},{"rel":"contact_email_addresses","href":"http://localhost:3000/contact_email_addresses/search?member_id=6"},{"rel":"contact_phone_numbers","href":"http://localhost:3000/contact_phone_numbers/search?member_id=6"},{"rel":"contacts","href":"http://localhost:3000/contacts/search?member_id=6"},{"rel":"custom_data","href":"http://localhost:3000/custom_data/search?member_id=6"},{"rel":"custom_fields","href":"http://localhost:3000/custom_fields/search?team_id=1"},{"rel":"league_custom_data","href":"http://localhost:3000/league_custom_data/search?member_id=6"},{"rel":"league_custom_fields","href":"http://localhost:3000/league_custom_fields/search?team_id=1"},{"rel":"forum_posts","href":"http://localhost:3000/forum_posts/search?member_id=6"},{"rel":"forum_subscriptions","href":"http://localhost:3000/forum_subscriptions/search?member_id=6"},{"rel":"forum_topics","href":"http://localhost:3000/forum_topics/search?team_id=1"},{"rel":"league_registrant_documents","href":"http://localhost:3000/league_registrant_documents/search?member_id=6"},{"rel":"member_balances","href":"http://localhost:3000/member_balances/search?member_id=6"},{"rel":"member_email_addresses","href":"http://localhost:3000/member_email_addresses/search?member_id=6"},{"rel":"member_files","href":"http://localhost:3000/member_files/search?member_id=6"},{"rel":"member_links","href":"http://localhost:3000/member_links/search?member_id=6"},{"rel":"member_payments","href":"http://localhost:3000/member_payments/search?member_id=6"},{"rel":"member_phone_numbers","href":"http://localhost:3000/member_phone_numbers/search?member_id=6"},{"rel":"member_photo","href":"http://9720728c11b014fc3f7c-401599d8c2efd31ed32bcf970d759503.r67.cf1.rackcdn.com/roster_full_photos/6/original/84f7e666-5078-4f0c-8826-02f3bbb3c00d.png"},{"rel":"member_photo_file","href":"http://localhost:3000/member_photo_files/6"},{"rel":"member_photos","href":"http://localhost:3000/member_photos/search?member_id=6"},{"rel":"member_preferences","href":"http://localhost:3000/members_preferences/6"},{"rel":"member_statistics","href":"http://localhost:3000/member_statistics/search?member_id=6"},{"rel":"member_thumbnail","href":"http://9720728c11b014fc3f7c-401599d8c2efd31ed32bcf970d759503.r67.cf1.rackcdn.com/roster_thumb_photos/6/thumb/84f7e666-5078-4f0c-8826-02f3bbb3c00d.png"},{"rel":"message_data","href":"http://localhost:3000/message_data/search?member_id=6"},{"rel":"messages","href":"http://localhost:3000/messages/search?member_id=6"},{"rel":"statistic_data","href":"http://localhost:3000/statistic_data/search?member_id=6"},{"rel":"team","href":"http://localhost:3000/teams/1"},{"rel":"team_media","href":"http://localhost:3000/team_media/search?member_id=6"},{"rel":"team_medium_comments","href":"http://localhost:3000/team_medium_comments/search?member_id=6"},{"rel":"tracked_item_statuses","href":"http://localhost:3000/tracked_item_statuses/search?member_id=6"},{"rel":"user","href":"http://localhost:3000/users/9"}],"rel":"member-6"}]}}'
|
65
|
+
http_version: '1.1'
|
66
|
+
adapter_metadata:
|
67
|
+
effective_url: http://localhost:3000/members/upload_member_photo
|
68
|
+
recorded_at: Wed, 13 Jul 2016 23:25:59 GMT
|
69
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,69 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://localhost:3000/members/upload_member_photo
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: member_id=6&file=teamsnap20160713-50680-1ujs61o.png=image/png=/var/folders/0j/9mlhhlrx76n7pb4dl9gw3gm00000gn/T/teamsnap20160713-50680-1ujs61o.png
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.9.2
|
12
|
+
Authorization:
|
13
|
+
- Bearer 7-js_frontend-dont_tell_the_cops
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Content-Type:
|
20
|
+
- application/vnd.collection+json
|
21
|
+
Content-Length:
|
22
|
+
- '12004'
|
23
|
+
X-Content-Type-Options:
|
24
|
+
- nosniff
|
25
|
+
ETag:
|
26
|
+
- '"868df086ded166bbecec45c32d69b23e"'
|
27
|
+
Cache-Control:
|
28
|
+
- max-age=0, private, must-revalidate
|
29
|
+
X-Request-Id:
|
30
|
+
- a8ec1a52-cce3-40c7-b71a-6fd02d135ac7
|
31
|
+
X-Runtime:
|
32
|
+
- '24.489467'
|
33
|
+
Connection:
|
34
|
+
- keep-alive
|
35
|
+
Server:
|
36
|
+
- thin
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"collection":{"version":"3.292.6","href":"http://localhost:3000/members","rel":"members","template":{"data":[{"name":"first_name","value":null},{"name":"last_name","value":null},{"name":"gender","value":null},{"name":"position","value":null},{"name":"is_manager","value":null},{"name":"birthday","value":null},{"name":"hide_age","value":null,"deprecated":true,"prompt":"hide_age
|
40
|
+
is deprecated and will be removed in a future version, use is_age_hidden instead."},{"name":"is_age_hidden","value":null},{"name":"hide_address","value":null,"deprecated":true,"prompt":"hide_address
|
41
|
+
is deprecated and will be removed in a future version, use is_address_hidden
|
42
|
+
instead."},{"name":"is_address_hidden","value":null},{"name":"is_non_player","value":null},{"name":"address_street1","value":null},{"name":"address_street2","value":null},{"name":"address_city","value":null},{"name":"address_state","value":null},{"name":"address_zip","value":null},{"name":"jersey_number","value":null},{"name":"team_id","value":null},{"name":"is_ownership_pending","value":null},{"name":"type","value":"member"}]},"links":[{"rel":"assignments","href":"http://localhost:3000/assignments"},{"rel":"availabilities","href":"http://localhost:3000/availabilities"},{"rel":"broadcast_email_attachments","href":"http://localhost:3000/broadcast_email_attachments"},{"rel":"broadcast_emails","href":"http://localhost:3000/broadcast_emails"},{"rel":"broadcast_alerts","href":"http://localhost:3000/broadcast_alerts"},{"rel":"contact_email_addresses","href":"http://localhost:3000/contact_email_addresses"},{"rel":"contact_phone_numbers","href":"http://localhost:3000/contact_phone_numbers"},{"rel":"contacts","href":"http://localhost:3000/contacts"},{"rel":"custom_data","href":"http://localhost:3000/custom_data"},{"rel":"custom_fields","href":"http://localhost:3000/custom_fields"},{"rel":"league_custom_data","href":"http://localhost:3000/league_custom_data"},{"rel":"league_custom_fields","href":"http://localhost:3000/league_custom_fields"},{"rel":"forum_posts","href":"http://localhost:3000/forum_posts"},{"rel":"forum_subscriptions","href":"http://localhost:3000/forum_subscriptions"},{"rel":"forum_topics","href":"http://localhost:3000/forum_topics"},{"rel":"league_registrant_documents","href":"http://localhost:3000/league_registrant_documents"},{"rel":"member_balances","href":"http://localhost:3000/member_balances"},{"rel":"member_email_addresses","href":"http://localhost:3000/member_email_addresses"},{"rel":"member_files","href":"http://localhost:3000/member_files"},{"rel":"member_links","href":"http://localhost:3000/member_links"},{"rel":"member_payments","href":"http://localhost:3000/member_payments"},{"rel":"member_phone_numbers","href":"http://localhost:3000/member_phone_numbers"},{"rel":"member_preferences","href":"http://localhost:3000/members_preferences"},{"rel":"member_statistics","href":"http://localhost:3000/member_statistics"},{"rel":"message_data","href":"http://localhost:3000/message_data"},{"rel":"messages","href":"http://localhost:3000/messages"},{"rel":"statistic_data","href":"http://localhost:3000/statistic_data"},{"rel":"team","href":"http://localhost:3000/teams"},{"rel":"team_media","href":"http://localhost:3000/team_media"},{"rel":"team_medium_comments","href":"http://localhost:3000/team_medium_comments"},{"rel":"tracked_item_statuses","href":"http://localhost:3000/tracked_item_statuses"},{"rel":"user","href":"http://localhost:3000/users"},{"rel":"root","href":"http://localhost:3000/"},{"rel":"self","href":"http://localhost:3000/members/upload_member_photo"}],"queries":[{"rel":"search","href":"http://localhost:3000/members/search","data":[{"name":"team_id","value":null},{"name":"user_id","value":null},{"name":"id","value":null},{"name":"page_size","value":null,"prompt":"The
|
43
|
+
number of items to return for each page. Sending this parameter with the query
|
44
|
+
will enable paging for the returned collection."},{"name":"page_number","value":null,"prompt":"The
|
45
|
+
number of the page to be returned. This requires that paging be turned on
|
46
|
+
by also providing the page_size parameter."}]},{"rel":"managers","href":"http://localhost:3000/members/managers","data":[{"name":"team_id","value":null}]},{"rel":"personas","href":"http://localhost:3000/members/personas","prompt":"Given
|
47
|
+
a user ID, returns members directly associated with the user as well as members
|
48
|
+
associated with the user via a shared access contact.","data":[{"name":"user_id","value":null}]},{"rel":"owner","href":"http://localhost:3000/members/owner","data":[{"name":"team_id","value":null}]},{"rel":"commissioners","href":"http://localhost:3000/members/commissioners","prompt":"BETA:
|
49
|
+
(this query is subject to change or suddenly disappear) Given a a team_id
|
50
|
+
or division_id, returns all members that are commissioners of the divisions
|
51
|
+
that the team is in.","data":[{"name":"team_id","value":null},{"name":"division_id","value":null}]},{"rel":"importable_members","href":"http://localhost:3000/members/importable_members","prompt":"Given
|
52
|
+
a user ID, returns all members associated with user''s active season teams. If
|
53
|
+
include_archived_teams (boolean) parameter is supplied, members associated
|
54
|
+
with archived teams will be returned as well.","data":[{"name":"user_id","value":null},{"name":"include_archived_teams","value":null}]}],"commands":[{"rel":"disable_member","href":"http://localhost:3000/members/disable_member","data":[{"name":"member_id","value":null}]},{"rel":"upload_member_photo","href":"http://localhost:3000/members/upload_member_photo","data":[{"name":"member_id","value":null},{"name":"file","value":null},{"name":"x","value":null},{"name":"y","value":null},{"name":"width","value":null},{"name":"height","value":null}]},{"rel":"remove_member_photo","href":"http://localhost:3000/members/remove_member_photo","data":[{"name":"member_id","value":null}]},{"rel":"generate_member_thumbnail","href":"http://localhost:3000/members/generate_member_thumbnail","data":[{"name":"member_id","value":null},{"name":"x","value":null},{"name":"y","value":null},{"name":"width","value":null},{"name":"height","value":null}]},{"rel":"import_from_team","href":"http://localhost:3000/members/import_from_team","prompt":"Given
|
55
|
+
source_member_ids (array) and a destination_team_id, source members and related
|
56
|
+
member data will be imported to the destination team. Newly created members
|
57
|
+
will be returned.","data":[{"name":"source_member_ids","value":null},{"name":"destination_team_id","value":null},{"name":"send_invites","value":null,"prompt":"Whether
|
58
|
+
or not to create and send invitations for each imported member. Valid values
|
59
|
+
are either ''true'' or ''false'' and will default to ''false''"}]}],"items":[{"href":"http://localhost:3000/members/6","data":[{"name":"id","value":6},{"name":"type","value":"member"},{"name":"address_city","value":null},{"name":"address_state","value":null},{"name":"address_street1","value":null},{"name":"address_street2","value":null},{"name":"address_zip","value":null},{"name":"birthday","value":""},{"name":"first_name","value":"Plato"},{"name":"gender","value":null},{"name":"has_facebook_post_scores_enabled","value":false},{"name":"hide_address","value":null,"deprecated":true,"prompt":"hide_address
|
60
|
+
is deprecated and will be removed in a future version, use is_address_hidden
|
61
|
+
instead."},{"name":"is_address_hidden","value":null},{"name":"hide_age","value":null,"deprecated":true,"prompt":"hide_age
|
62
|
+
is deprecated and will be removed in a future version, use is_age_hidden instead."},{"name":"is_age_hidden","value":null},{"name":"is_commissioner","value":false},{"name":"invitation_code","value":null},{"name":"invitation_declined","value":null},{"name":"is_activated","value":true},{"name":"is_pushable","value":false},{"name":"is_alertable","value":true},{"name":"is_emailable","value":true},{"name":"is_invitable","value":false},{"name":"is_invited","value":false},{"name":"is_manager","value":false},{"name":"is_non_player","value":false},{"name":"is_owner","value":false},{"name":"is_ownership_pending","value":null},{"name":"jersey_number","value":null},{"name":"last_logged_in_at","value":null,"deprecated":true,"prompt":"%{field}
|
63
|
+
is deprecated and has been removed. Continued use of %{field} is not recommended
|
64
|
+
it will no longer be stored."},{"name":"last_name","value":"Player"},{"name":"position","value":null},{"name":"team_id","value":1},{"name":"user_id","value":9},{"name":"updated_at","value":"2016-07-13T23:27:13Z","type":"DateTime"},{"name":"created_at","value":"2016-07-13T23:22:19Z","type":"DateTime"}],"links":[{"rel":"assignments","href":"http://localhost:3000/assignments/search?member_id=6"},{"rel":"availabilities","href":"http://localhost:3000/availabilities/search?member_id=6"},{"rel":"broadcast_email_attachments","href":"http://localhost:3000/broadcast_email_attachments/search?member_id=6"},{"rel":"broadcast_emails","href":"http://localhost:3000/broadcast_emails/search?member_id=6"},{"rel":"broadcast_alerts","href":"http://localhost:3000/broadcast_alerts/search?member_id=6"},{"rel":"contact_email_addresses","href":"http://localhost:3000/contact_email_addresses/search?member_id=6"},{"rel":"contact_phone_numbers","href":"http://localhost:3000/contact_phone_numbers/search?member_id=6"},{"rel":"contacts","href":"http://localhost:3000/contacts/search?member_id=6"},{"rel":"custom_data","href":"http://localhost:3000/custom_data/search?member_id=6"},{"rel":"custom_fields","href":"http://localhost:3000/custom_fields/search?team_id=1"},{"rel":"league_custom_data","href":"http://localhost:3000/league_custom_data/search?member_id=6"},{"rel":"league_custom_fields","href":"http://localhost:3000/league_custom_fields/search?team_id=1"},{"rel":"forum_posts","href":"http://localhost:3000/forum_posts/search?member_id=6"},{"rel":"forum_subscriptions","href":"http://localhost:3000/forum_subscriptions/search?member_id=6"},{"rel":"forum_topics","href":"http://localhost:3000/forum_topics/search?team_id=1"},{"rel":"league_registrant_documents","href":"http://localhost:3000/league_registrant_documents/search?member_id=6"},{"rel":"member_balances","href":"http://localhost:3000/member_balances/search?member_id=6"},{"rel":"member_email_addresses","href":"http://localhost:3000/member_email_addresses/search?member_id=6"},{"rel":"member_files","href":"http://localhost:3000/member_files/search?member_id=6"},{"rel":"member_links","href":"http://localhost:3000/member_links/search?member_id=6"},{"rel":"member_payments","href":"http://localhost:3000/member_payments/search?member_id=6"},{"rel":"member_phone_numbers","href":"http://localhost:3000/member_phone_numbers/search?member_id=6"},{"rel":"member_photo","href":"http://9720728c11b014fc3f7c-401599d8c2efd31ed32bcf970d759503.r67.cf1.rackcdn.com/roster_full_photos/6/original/baacbd9f-07ba-4260-bb93-0da0c5533f60.png"},{"rel":"member_photo_file","href":"http://localhost:3000/member_photo_files/6"},{"rel":"member_photos","href":"http://localhost:3000/member_photos/search?member_id=6"},{"rel":"member_preferences","href":"http://localhost:3000/members_preferences/6"},{"rel":"member_statistics","href":"http://localhost:3000/member_statistics/search?member_id=6"},{"rel":"member_thumbnail","href":"http://9720728c11b014fc3f7c-401599d8c2efd31ed32bcf970d759503.r67.cf1.rackcdn.com/roster_thumb_photos/6/thumb/baacbd9f-07ba-4260-bb93-0da0c5533f60.png"},{"rel":"message_data","href":"http://localhost:3000/message_data/search?member_id=6"},{"rel":"messages","href":"http://localhost:3000/messages/search?member_id=6"},{"rel":"statistic_data","href":"http://localhost:3000/statistic_data/search?member_id=6"},{"rel":"team","href":"http://localhost:3000/teams/1"},{"rel":"team_media","href":"http://localhost:3000/team_media/search?member_id=6"},{"rel":"team_medium_comments","href":"http://localhost:3000/team_medium_comments/search?member_id=6"},{"rel":"tracked_item_statuses","href":"http://localhost:3000/tracked_item_statuses/search?member_id=6"},{"rel":"user","href":"http://localhost:3000/users/9"}],"rel":"member-6"}]}}'
|
65
|
+
http_version: '1.1'
|
66
|
+
adapter_metadata:
|
67
|
+
effective_url: http://localhost:3000/members/upload_member_photo
|
68
|
+
recorded_at: Wed, 13 Jul 2016 23:27:13 GMT
|
69
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "teamsnap"
|
3
|
+
|
4
|
+
RSpec.describe "uploading files", :vcr => true do
|
5
|
+
let(:client_id) { "classic" }
|
6
|
+
let(:client_secret) { "dont_tell_the_cops" }
|
7
|
+
|
8
|
+
let(:client) {
|
9
|
+
TeamSnap::Client.new({
|
10
|
+
:url => ROOT_TEST_URL,
|
11
|
+
:token => "7-js_frontend-dont_tell_the_cops"
|
12
|
+
})
|
13
|
+
}
|
14
|
+
|
15
|
+
before(:all) do
|
16
|
+
VCR.use_cassette("apiv3-init") do
|
17
|
+
TeamSnap.init(
|
18
|
+
:url => ROOT_TEST_URL,
|
19
|
+
:client_id => "classic",
|
20
|
+
:client_secret => "dont_tell_the_cops"
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it "uploads a file" do
|
26
|
+
file = File.open("support/teamsnap.png", "r")
|
27
|
+
response = TeamSnap::Member
|
28
|
+
.upload_member_photo(client, :member_id => "6", :file => file)
|
29
|
+
expect(response.first).to be_a(TeamSnap::Member)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "uploads a tempfile" do
|
33
|
+
file = File.open("support/teamsnap.png", "r")
|
34
|
+
tempfile = Tempfile.open(["teamsnap",".png"])
|
35
|
+
tempfile.write(file.read)
|
36
|
+
|
37
|
+
response = TeamSnap::Member
|
38
|
+
.upload_member_photo(client, :member_id => "6", :file => tempfile)
|
39
|
+
expect(response.first).to be_a(TeamSnap::Member)
|
40
|
+
end
|
41
|
+
end
|
data/spec/teamsnap/item_spec.rb
CHANGED
@@ -194,5 +194,24 @@ RSpec.describe "teamsnap__item", :vcr => true do
|
|
194
194
|
expect(item.id).to eq(11)
|
195
195
|
expect(item.new_attr).to eq("new_value")
|
196
196
|
end
|
197
|
+
|
198
|
+
it "handles array values" do
|
199
|
+
collection = {
|
200
|
+
:items => [
|
201
|
+
{
|
202
|
+
:href => "http://localhost:3000/teams/10",
|
203
|
+
:data => [
|
204
|
+
{:name => "id", :value => 10},
|
205
|
+
{:name => "type", :value => "team"},
|
206
|
+
{:name => "array", :value => ["value", "value2"]}
|
207
|
+
]
|
208
|
+
}
|
209
|
+
]
|
210
|
+
}
|
211
|
+
|
212
|
+
item = TeamSnap::Item.load_items(TeamSnap.root_client, collection)[0]
|
213
|
+
expect(item.class).to eq(TeamSnap::Team)
|
214
|
+
expect(item.array).to eq(["value", "value2"])
|
215
|
+
end
|
197
216
|
end
|
198
217
|
end
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teamsnap_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.beta10
|
5
|
+
prerelease: 6
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Shane Emmons
|
@@ -9,132 +10,150 @@ authors:
|
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2016-
|
13
|
+
date: 2016-07-15 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: rake
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
|
-
- -
|
20
|
+
- - ! '>='
|
19
21
|
- !ruby/object:Gem::Version
|
20
22
|
version: '0'
|
21
23
|
type: :development
|
22
24
|
prerelease: false
|
23
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
24
27
|
requirements:
|
25
|
-
- -
|
28
|
+
- - ! '>='
|
26
29
|
- !ruby/object:Gem::Version
|
27
30
|
version: '0'
|
28
31
|
- !ruby/object:Gem::Dependency
|
29
32
|
name: bundler
|
30
33
|
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
31
35
|
requirements:
|
32
|
-
- -
|
36
|
+
- - ~>
|
33
37
|
- !ruby/object:Gem::Version
|
34
38
|
version: 1.10.2
|
35
39
|
type: :development
|
36
40
|
prerelease: false
|
37
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
38
43
|
requirements:
|
39
|
-
- -
|
44
|
+
- - ~>
|
40
45
|
- !ruby/object:Gem::Version
|
41
46
|
version: 1.10.2
|
42
47
|
- !ruby/object:Gem::Dependency
|
43
48
|
name: rspec
|
44
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
45
51
|
requirements:
|
46
|
-
- -
|
52
|
+
- - ~>
|
47
53
|
- !ruby/object:Gem::Version
|
48
54
|
version: 3.2.0
|
49
55
|
type: :development
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
52
59
|
requirements:
|
53
|
-
- -
|
60
|
+
- - ~>
|
54
61
|
- !ruby/object:Gem::Version
|
55
62
|
version: 3.2.0
|
56
63
|
- !ruby/object:Gem::Dependency
|
57
64
|
name: vcr
|
58
65
|
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
59
67
|
requirements:
|
60
|
-
- -
|
68
|
+
- - ~>
|
61
69
|
- !ruby/object:Gem::Version
|
62
70
|
version: 2.9.3
|
63
71
|
type: :development
|
64
72
|
prerelease: false
|
65
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
66
75
|
requirements:
|
67
|
-
- -
|
76
|
+
- - ~>
|
68
77
|
- !ruby/object:Gem::Version
|
69
78
|
version: 2.9.3
|
70
79
|
- !ruby/object:Gem::Dependency
|
71
80
|
name: faraday
|
72
81
|
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
73
83
|
requirements:
|
74
|
-
- -
|
84
|
+
- - ~>
|
75
85
|
- !ruby/object:Gem::Version
|
76
86
|
version: 0.9.1
|
77
87
|
type: :runtime
|
78
88
|
prerelease: false
|
79
89
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
80
91
|
requirements:
|
81
|
-
- -
|
92
|
+
- - ~>
|
82
93
|
- !ruby/object:Gem::Version
|
83
94
|
version: 0.9.1
|
84
95
|
- !ruby/object:Gem::Dependency
|
85
96
|
name: typhoeus
|
86
97
|
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
87
99
|
requirements:
|
88
|
-
- -
|
100
|
+
- - ~>
|
89
101
|
- !ruby/object:Gem::Version
|
90
102
|
version: 0.7.1
|
91
103
|
type: :runtime
|
92
104
|
prerelease: false
|
93
105
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
94
107
|
requirements:
|
95
|
-
- -
|
108
|
+
- - ~>
|
96
109
|
- !ruby/object:Gem::Version
|
97
110
|
version: 0.7.1
|
98
111
|
- !ruby/object:Gem::Dependency
|
99
112
|
name: oj
|
100
113
|
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
101
115
|
requirements:
|
102
|
-
- -
|
116
|
+
- - ~>
|
103
117
|
- !ruby/object:Gem::Version
|
104
118
|
version: 2.11.4
|
105
119
|
type: :runtime
|
106
120
|
prerelease: false
|
107
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
108
123
|
requirements:
|
109
|
-
- -
|
124
|
+
- - ~>
|
110
125
|
- !ruby/object:Gem::Version
|
111
126
|
version: 2.11.4
|
112
127
|
- !ruby/object:Gem::Dependency
|
113
128
|
name: inflecto
|
114
129
|
requirement: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
115
131
|
requirements:
|
116
|
-
- -
|
132
|
+
- - ~>
|
117
133
|
- !ruby/object:Gem::Version
|
118
134
|
version: 0.0.2
|
119
135
|
type: :runtime
|
120
136
|
prerelease: false
|
121
137
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
122
139
|
requirements:
|
123
|
-
- -
|
140
|
+
- - ~>
|
124
141
|
- !ruby/object:Gem::Version
|
125
142
|
version: 0.0.2
|
126
143
|
- !ruby/object:Gem::Dependency
|
127
144
|
name: virtus
|
128
145
|
requirement: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
129
147
|
requirements:
|
130
|
-
- -
|
148
|
+
- - ~>
|
131
149
|
- !ruby/object:Gem::Version
|
132
150
|
version: 1.0.4
|
133
151
|
type: :runtime
|
134
152
|
prerelease: false
|
135
153
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
136
155
|
requirements:
|
137
|
-
- -
|
156
|
+
- - ~>
|
138
157
|
- !ruby/object:Gem::Version
|
139
158
|
version: 1.0.4
|
140
159
|
description: A gem to interact with TeamSnap's API
|
@@ -144,8 +163,8 @@ executables: []
|
|
144
163
|
extensions: []
|
145
164
|
extra_rdoc_files: []
|
146
165
|
files:
|
147
|
-
-
|
148
|
-
-
|
166
|
+
- .gitignore
|
167
|
+
- .travis.yml
|
149
168
|
- CHANGELOG.md
|
150
169
|
- Gemfile
|
151
170
|
- LICENSE
|
@@ -192,6 +211,9 @@ files:
|
|
192
211
|
- spec/cassettes/teamsnap_rb/_client_send/when_sent_a_known_via_/calls_POST_on_the_given_client.yml
|
193
212
|
- spec/cassettes/teamsnap_rb/_run/processes_the_response.yml
|
194
213
|
- spec/cassettes/teamsnap_rb/_server_error/Specifies_call_and_endpoint_that_was_unsuccessful.yml
|
214
|
+
- spec/cassettes/uploading_files/uploads_a_file.yml
|
215
|
+
- spec/cassettes/uploading_files/uploads_a_tempfile.yml
|
216
|
+
- spec/features/uploading_files_spec.rb
|
195
217
|
- spec/spec_helper.rb
|
196
218
|
- spec/teamsnap/apiv_spec.rb
|
197
219
|
- spec/teamsnap/client_spec.rb
|
@@ -199,31 +221,33 @@ files:
|
|
199
221
|
- spec/teamsnap/item_spec.rb
|
200
222
|
- spec/teamsnap/structure_spec.rb
|
201
223
|
- spec/teamsnap_spec.rb
|
224
|
+
- support/teamsnap.png
|
202
225
|
- teamsnap_rb.gemspec
|
203
226
|
- tmp/.gitignore
|
204
227
|
homepage: http://developer.teamsnap.com/
|
205
228
|
licenses:
|
206
229
|
- MIT
|
207
|
-
metadata: {}
|
208
230
|
post_install_message:
|
209
231
|
rdoc_options: []
|
210
232
|
require_paths:
|
211
233
|
- lib
|
212
234
|
required_ruby_version: !ruby/object:Gem::Requirement
|
235
|
+
none: false
|
213
236
|
requirements:
|
214
|
-
- -
|
237
|
+
- - ! '>='
|
215
238
|
- !ruby/object:Gem::Version
|
216
239
|
version: 1.9.3
|
217
240
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
241
|
+
none: false
|
218
242
|
requirements:
|
219
|
-
- -
|
243
|
+
- - ! '>'
|
220
244
|
- !ruby/object:Gem::Version
|
221
245
|
version: 1.3.1
|
222
246
|
requirements: []
|
223
247
|
rubyforge_project:
|
224
|
-
rubygems_version:
|
248
|
+
rubygems_version: 1.8.25
|
225
249
|
signing_key:
|
226
|
-
specification_version:
|
250
|
+
specification_version: 3
|
227
251
|
summary: A gem to interact with TeamSnap's API
|
228
252
|
test_files:
|
229
253
|
- spec/cassettes/apiv3-error.yml
|
@@ -256,6 +280,9 @@ test_files:
|
|
256
280
|
- spec/cassettes/teamsnap_rb/_client_send/when_sent_a_known_via_/calls_POST_on_the_given_client.yml
|
257
281
|
- spec/cassettes/teamsnap_rb/_run/processes_the_response.yml
|
258
282
|
- spec/cassettes/teamsnap_rb/_server_error/Specifies_call_and_endpoint_that_was_unsuccessful.yml
|
283
|
+
- spec/cassettes/uploading_files/uploads_a_file.yml
|
284
|
+
- spec/cassettes/uploading_files/uploads_a_tempfile.yml
|
285
|
+
- spec/features/uploading_files_spec.rb
|
259
286
|
- spec/spec_helper.rb
|
260
287
|
- spec/teamsnap/apiv_spec.rb
|
261
288
|
- spec/teamsnap/client_spec.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 6bbbfb0eb985d89e7009bf7956ceaab3147713ea
|
4
|
-
data.tar.gz: 05d0073aee1f78775dcd9ec7e4b529edf2f8b460
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: ce2af9e4cea53fdeb17012de5b81c570161276c26b910990ad6096c9b28166dd2bbafbdecc59c6b45524942bbb40e390e83e11a3f6147c4b542d2e8841d97da7
|
7
|
-
data.tar.gz: e5fc0b16bb19697e977f2f16f5cfda71bc9059e46db8a81bd62d14762b5821ee4888dfba8ae906945b58850060eb3eff6c9d8efabf74a0801505317cbbda854c
|