teamsnap_rb 2.0.0.beta7 → 2.0.0.beta10

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -20,6 +20,7 @@ pickle-email-*.html
20
20
  config/initializers/secret_token.rb
21
21
  config/*.yml
22
22
  .ruby-version
23
+ .ruby-gemset
23
24
  .rbenv-version
24
25
  /bin/stubs
25
26
  /bin
data/CHANGELOG.md CHANGED
@@ -30,3 +30,8 @@ v2.0.0.beta7
30
30
  ------
31
31
 
32
32
  - Add attibutes to an Item if it's missing them
33
+
34
+ v2.0.0.beta10
35
+ ------
36
+
37
+ - Allow uploading of Files or Tempfiles
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "simplecov", :require => false
3
+ gem "simplecov", "0.11.2", :require => false
4
4
  gem "coveralls", :require => false
5
5
  gem "pry", :require => false
6
6
  gem "awesome_print"
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(:client_id => XXXXX, :client_secret => XXXXX)
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
- req.body = Oj.dump(args)
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}`")
@@ -7,6 +7,7 @@ module TeamSnap
7
7
  :url => url,
8
8
  :parallel_manager => Typhoeus::Hydra.new
9
9
  ) do |c|
10
+ c.request :multipart
10
11
  c.request :teamsnap_auth_middleware, {
11
12
  :token => token,
12
13
  :client_id => client_id,
data/lib/teamsnap/item.rb CHANGED
@@ -70,8 +70,6 @@ module TeamSnap
70
70
  end
71
71
 
72
72
  def hashify(arr)
73
- Hash[*arr.flatten]
74
- rescue NoMethodError
75
73
  arr.inject({}) { |hash, (key, value)| hash[key] = value; hash }
76
74
  end
77
75
  end
@@ -1,3 +1,3 @@
1
1
  module TeamSnap
2
- VERSION = "2.0.0.beta7"
2
+ VERSION = "2.0.0.beta10"
3
3
  end
@@ -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
@@ -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.beta7
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-06-08 00:00:00.000000000 Z
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
- - ".gitignore"
148
- - ".travis.yml"
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: 2.6.3
248
+ rubygems_version: 1.8.25
225
249
  signing_key:
226
- specification_version: 4
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