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 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