shutterstock-v2 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +27 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +6 -0
  5. data/.travis.yml +6 -0
  6. data/Dockerfile +17 -0
  7. data/Gemfile +3 -0
  8. data/Guardfile +9 -0
  9. data/README.md +377 -0
  10. data/Rakefile +19 -0
  11. data/lib/client/auth.rb +48 -0
  12. data/lib/client/categories.rb +11 -0
  13. data/lib/client/category.rb +16 -0
  14. data/lib/client/client.rb +72 -0
  15. data/lib/client/collection.rb +151 -0
  16. data/lib/client/collections.rb +16 -0
  17. data/lib/client/configuration.rb +20 -0
  18. data/lib/client/contributor.rb +15 -0
  19. data/lib/client/driver.rb +38 -0
  20. data/lib/client/error.rb +20 -0
  21. data/lib/client/image.rb +139 -0
  22. data/lib/client/image_assets.rb +56 -0
  23. data/lib/client/image_size_details.rb +26 -0
  24. data/lib/client/images.rb +27 -0
  25. data/lib/client/license.rb +67 -0
  26. data/lib/client/licenses.rb +23 -0
  27. data/lib/client/model.rb +15 -0
  28. data/lib/client/models.rb +11 -0
  29. data/lib/client/request.rb +41 -0
  30. data/lib/client/subscription.rb +35 -0
  31. data/lib/client/subscription_allotment.rb +19 -0
  32. data/lib/client/subscription_license_format.rb +16 -0
  33. data/lib/client/subscription_license_formats.rb +12 -0
  34. data/lib/client/subscription_price.rb +13 -0
  35. data/lib/client/subscriptions.rb +37 -0
  36. data/lib/client/thumbnail.rb +17 -0
  37. data/lib/client/user.rb +68 -0
  38. data/lib/client/version.rb +3 -0
  39. data/lib/shutterstock-v2.rb +31 -0
  40. data/shutterstock-v2.gemspec +30 -0
  41. data/spec/cassettes/Shutterstock_Auth_get_access_token/returns_hash_with_access_token.yml +86 -0
  42. data/spec/cassettes/Shutterstock_Auth_get_authorize_url/returns_URL_to_redirect_user_to_passing_redirect_url_an.yml +48 -0
  43. data/spec/cassettes/Shutterstock_Categories/parses_params_correctly.yml +53 -0
  44. data/spec/cassettes/Shutterstock_Categories/returns_all_cats_for_an_image.yml +53 -0
  45. data/spec/cassettes/Shutterstock_Collection/add_image_adds_image_using_Image_new.yml +48 -0
  46. data/spec/cassettes/Shutterstock_Collection/add_image_adds_image_using_id.yml +48 -0
  47. data/spec/cassettes/Shutterstock_Collection/add_image_error_raises_error_if_collection_does_not_exist.yml +52 -0
  48. data/spec/cassettes/Shutterstock_Collection/create_creates_a_collection.yml +52 -0
  49. data/spec/cassettes/Shutterstock_Collection/destroy_destroys_a_collection.yml +93 -0
  50. data/spec/cassettes/Shutterstock_Collection/find_adds_an_image.yml +97 -0
  51. data/spec/cassettes/Shutterstock_Collection/find_converts_list_to_images.yml +101 -0
  52. data/spec/cassettes/Shutterstock_Collection/find_finds_a_collection_given_an_id.yml +52 -0
  53. data/spec/cassettes/Shutterstock_Collection/find_raises_error_for_invalid_collection_id.yml +50 -0
  54. data/spec/cassettes/Shutterstock_Collection/find_removes_an_image.yml +95 -0
  55. data/spec/cassettes/Shutterstock_Collection/list_returns_all_collections_for_the_current_user.yml +53 -0
  56. data/spec/cassettes/Shutterstock_Collection/remove_image_removes_image_using_Image_new.yml +46 -0
  57. data/spec/cassettes/Shutterstock_Collection/remove_image_removes_image_using_id.yml +46 -0
  58. data/spec/cassettes/Shutterstock_Collection/update_changes_the_name_of_a_collection.yml +97 -0
  59. data/spec/cassettes/Shutterstock_Collections/returns_all_collections_for_current_user.yml +53 -0
  60. data/spec/cassettes/Shutterstock_Image/fill_fills_all_details_of_current_image.yml +109 -0
  61. data/spec/cassettes/Shutterstock_Image/fills_all_details_of_current_image.yml +109 -0
  62. data/spec/cassettes/Shutterstock_Image/find_places_image_data_into_correct_fields.yml +56 -0
  63. data/spec/cassettes/Shutterstock_Image/find_places_more_image_data_into_correct_fields.yml +53 -0
  64. data/spec/cassettes/Shutterstock_Image/find_returns_an_Image_object.yml +56 -0
  65. data/spec/cassettes/Shutterstock_Image/finds_similar_images_given_an_image.yml +125 -0
  66. data/spec/cassettes/Shutterstock_Image/returns_an_Image_object.yml +56 -0
  67. data/spec/cassettes/Shutterstock_Image/returns_similar_images.yml +72 -0
  68. data/spec/cassettes/Shutterstock_Image/search_searches_for_images_based_on_searchterm.yml +73 -0
  69. data/spec/cassettes/Shutterstock_Image/search_searches_using_more_than_one_parameter.yml +77 -0
  70. data/spec/cassettes/Shutterstock_Image/searches_for_images_based_on_searchterm.yml +73 -0
  71. data/spec/cassettes/Shutterstock_Image/searches_using_more_than_one_parameter.yml +77 -0
  72. data/spec/cassettes/Shutterstock_Image/similar_finds_similar_images_given_an_image.yml +125 -0
  73. data/spec/cassettes/Shutterstock_Image/similar_returns_similar_images.yml +72 -0
  74. data/spec/cassettes/Shutterstock_ImageAssets/find_calculates_fields_correctly.yml +53 -0
  75. data/spec/cassettes/Shutterstock_ImageAssets/find_places_image_data_into_correct_fields.yml +53 -0
  76. data/spec/cassettes/Shutterstock_Images/fill_fills_details_of_all_images_in_list_all_images_now_have_keywords.yml +1144 -0
  77. data/spec/cassettes/Shutterstock_Images/returns_similar_images.yml +126 -0
  78. data/spec/cassettes/Shutterstock_License/license_editorial_acknowledgement_returns_error_if_requesting_an_image.yml +53 -0
  79. data/spec/cassettes/Shutterstock_License/license_editorial_acknowledgement_returns_licenced_image_if_ed_ack_is_.yml +52 -0
  80. data/spec/cassettes/Shutterstock_License/license_license_from_image_object_sends_editorial_acknowledgement_when.yml +160 -0
  81. data/spec/cassettes/Shutterstock_License/license_license_from_image_object_using_found_subscription.yml +108 -0
  82. data/spec/cassettes/Shutterstock_License/license_license_from_image_object_vector_image.yml +108 -0
  83. data/spec/cassettes/Shutterstock_License/license_multiple_licenses_multiple_images.yml +52 -0
  84. data/spec/cassettes/Shutterstock_License/license_multiple_licenses_multiple_images_from_Image_new.yml +52 -0
  85. data/spec/cassettes/Shutterstock_License/license_multiple_returns_error_in_Licenses_when_incorrect_image_used.yml +53 -0
  86. data/spec/cassettes/Shutterstock_License/license_single_licencing_same_image_twice_does_not_give_error.yml +101 -0
  87. data/spec/cassettes/Shutterstock_License/license_single_license_fails_when_subscription_doesn_t_allow.yml +49 -0
  88. data/spec/cassettes/Shutterstock_License/license_single_licenses_single_image.yml +52 -0
  89. data/spec/cassettes/Shutterstock_License/license_single_licenses_single_image_from_Image_new.yml +52 -0
  90. data/spec/cassettes/Shutterstock_License/license_single_licenses_single_image_from_hash.yml +52 -0
  91. data/spec/cassettes/Shutterstock_License/license_single_licenses_single_image_with_smaller_size.yml +52 -0
  92. data/spec/cassettes/Shutterstock_License/license_single_licenses_vector_image.yml +52 -0
  93. data/spec/cassettes/Shutterstock_License/license_single_licensing_same_image_twice_does_not_give_error.yml +101 -0
  94. data/spec/cassettes/Shutterstock_License/license_single_returns_error_when_incorrect_image_used.yml +103 -0
  95. data/spec/cassettes/Shutterstock_License/license_single_returns_error_when_incorrect_subscription_used.yml +53 -0
  96. data/spec/cassettes/Shutterstock_Models/parses_params_correctly.yml +53 -0
  97. data/spec/cassettes/Shutterstock_Models/returns_all_models_for_an_image.yml +53 -0
  98. data/spec/cassettes/Shutterstock_Subscription/allows_image_size_download_correctly_finds_if_image_size_is_possi.yml +59 -0
  99. data/spec/cassettes/Shutterstock_Subscription/new_parses_info_on_user_correctly.yml +59 -0
  100. data/spec/cassettes/Shutterstock_Subscription/new_returns_a_subscription_for_current_user.yml +59 -0
  101. data/spec/cassettes/Shutterstock_SubscriptionLicenseFormat/new_parses_info_correctly.yml +59 -0
  102. data/spec/cassettes/Shutterstock_SubscriptionLicenseFormat/new_returns_a_subscription_license_format_for_curren.yml +59 -0
  103. data/spec/cassettes/Shutterstock_Subscriptions/subscriptions_active_expired_total_subscriptions.yml +59 -0
  104. data/spec/cassettes/Shutterstock_Subscriptions/subscriptions_active_returns_only_active_subscriptions.yml +59 -0
  105. data/spec/cassettes/Shutterstock_Subscriptions/subscriptions_downloads_left_only_subscriptions_with_downloads_l.yml +59 -0
  106. data/spec/cassettes/Shutterstock_Subscriptions/subscriptions_expired_returns_only_expired_subscriptions.yml +59 -0
  107. data/spec/cassettes/Shutterstock_Subscriptions/subscriptions_find_subscription_for_image_size_finds_subs_to_use.yml +59 -0
  108. data/spec/cassettes/Shutterstock_Subscriptions/subscriptions_returns_all_subscriptions_for_current_user.yml +59 -0
  109. data/spec/cassettes/Shutterstock_User/find_parses_info_on_user_correctly.yml +52 -0
  110. data/spec/cassettes/Shutterstock_User/find_returns_object_for_current_user.yml +52 -0
  111. data/spec/client/auth_spec.rb +36 -0
  112. data/spec/client/categories_spec.rb +26 -0
  113. data/spec/client/category_spec.rb +16 -0
  114. data/spec/client/client_spec.rb +32 -0
  115. data/spec/client/collection_spec.rb +159 -0
  116. data/spec/client/collections_spec.rb +18 -0
  117. data/spec/client/configuration_spec.rb +10 -0
  118. data/spec/client/contributor_spec.rb +14 -0
  119. data/spec/client/driver_spec.rb +20 -0
  120. data/spec/client/image_assets_spec.rb +51 -0
  121. data/spec/client/image_size_details_spec.rb +33 -0
  122. data/spec/client/image_spec.rb +102 -0
  123. data/spec/client/images_spec.rb +31 -0
  124. data/spec/client/license_spec.rb +234 -0
  125. data/spec/client/model_spec.rb +14 -0
  126. data/spec/client/models_spec.rb +23 -0
  127. data/spec/client/request_spec.rb +79 -0
  128. data/spec/client/subscription_allotment_spec.rb +25 -0
  129. data/spec/client/subscription_license_format_spec.rb +29 -0
  130. data/spec/client/subscription_price_spec.rb +17 -0
  131. data/spec/client/subscription_spec.rb +60 -0
  132. data/spec/client/subscriptions_spec.rb +54 -0
  133. data/spec/client/thumbnail_spec.rb +21 -0
  134. data/spec/client/user_spec.rb +37 -0
  135. data/spec/spec_helper.rb +88 -0
  136. metadata +467 -0
@@ -0,0 +1,3 @@
1
+ module Shutterstock
2
+ VERSION="0.0.1"
3
+ end
@@ -0,0 +1,31 @@
1
+ require 'equalizer'
2
+
3
+ module Shutterstock
4
+ require_relative './client/error'
5
+ require_relative './client/client'
6
+ require_relative './client/request'
7
+ require_relative './client/driver'
8
+ require_relative './client/configuration'
9
+ require_relative './client/images'
10
+ require_relative './client/image'
11
+ require_relative './client/collections'
12
+ require_relative './client/collection'
13
+ require_relative './client/contributor'
14
+ require_relative './client/models'
15
+ require_relative './client/model'
16
+ require_relative './client/categories'
17
+ require_relative './client/category'
18
+ require_relative './client/image_size_details'
19
+ require_relative './client/thumbnail'
20
+ require_relative './client/image_assets'
21
+ require_relative './client/user'
22
+ require_relative './client/subscriptions'
23
+ require_relative './client/subscription'
24
+ require_relative './client/subscription_license_formats'
25
+ require_relative './client/subscription_license_format'
26
+ require_relative './client/subscription_allotment'
27
+ require_relative './client/subscription_price'
28
+ require_relative './client/licenses'
29
+ require_relative './client/license'
30
+ require_relative './client/auth'
31
+ end
@@ -0,0 +1,30 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $:.unshift(lib) unless $:.include?(lib)
3
+ require 'client/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'shutterstock-v2'
7
+ s.version = Shutterstock::VERSION
8
+ s.summary = 'A ruby client to work with shutterstock API v2'
9
+ s.description = "see summary"
10
+ s.authors = ['David Peterson']
11
+ s.email = 'dp@vivitec.com.au'
12
+ s.files = `git ls-files`.split($/)
13
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
14
+ s.require_paths = ["lib"]
15
+ s.homepage = 'https://github.com/dippysan/shutterstock'
16
+ s.add_dependency "rspec"
17
+ s.add_dependency "equalizer"
18
+ s.add_dependency "faraday"
19
+ s.add_dependency "faraday_middleware"
20
+ s.add_development_dependency "pry"
21
+ s.add_development_dependency "pry-rescue"
22
+ s.add_development_dependency "pry-stack_explorer"
23
+ s.add_development_dependency "pry-nav"
24
+ s.add_development_dependency "vcr"
25
+ s.add_development_dependency "webmock"
26
+ s.add_development_dependency "rake"
27
+ s.add_development_dependency "guard"
28
+ s.add_development_dependency "guard-rspec"
29
+ s.add_development_dependency "rubocop"
30
+ end
@@ -0,0 +1,86 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.shutterstock.com/v2/oauth/access_token
6
+ body:
7
+ encoding: US-ASCII
8
+ string: grant_type=authorization_code&client_id=<SSTK_CLIENT_ID>&client_secret=<SSTK_CLIENT_SECRET>&code=Dc4nSMazdKkFtk7AyBkSG3&contributor=customer
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.10.1
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Fri, 13 Jan 2017 02:21:11 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf8
29
+ Content-Length:
30
+ - '356'
31
+ Connection:
32
+ - keep-alive
33
+ X-End-User-Request-Id:
34
+ - 4e53ab9a-2739-4ad6-a1d0-8673d971d31b
35
+ X-Shutterstock-Resource:
36
+ - "/oauth/access_token"
37
+ X-Shutterstock-App-Version:
38
+ - '1339'
39
+ X-Powered-By:
40
+ - Express
41
+ Content-Security-Policy:
42
+ - connect-src 'self' sdp-tagcollector.shutterstock.com https://bam.nr-data.net
43
+ https://api.segment.io; object-src 'self'; media-src 'self'; script-src 'self'
44
+ 'unsafe-inline' 'unsafe-eval' https://www.offset.com https://absinthe.shutterstock.com
45
+ https://absinthe.picdn.net https://secure.adnxs.com https://cdn.segment.com
46
+ https://tags.extole.com https://ajax.googleapis.com tagmanager.google.com
47
+ https://www.google.com https://www.gstatic.com www.googletagmanager.com www.google-analytics.com
48
+ https://ssl.google-analytics.com www.googleadservices.com js-agent.newrelic.com
49
+ https://bam.nr-data.net/ *.bounceexchange.com
50
+ X-Content-Security-Policy:
51
+ - connect-src 'self' sdp-tagcollector.shutterstock.com https://bam.nr-data.net
52
+ https://api.segment.io; object-src 'self'; media-src 'self'; script-src 'self'
53
+ 'unsafe-inline' 'unsafe-eval' https://www.offset.com https://absinthe.shutterstock.com
54
+ https://absinthe.picdn.net https://secure.adnxs.com https://cdn.segment.com
55
+ https://tags.extole.com https://ajax.googleapis.com tagmanager.google.com
56
+ https://www.google.com https://www.gstatic.com www.googletagmanager.com www.google-analytics.com
57
+ https://ssl.google-analytics.com www.googleadservices.com js-agent.newrelic.com
58
+ https://bam.nr-data.net/ *.bounceexchange.com
59
+ X-Webkit-Csp:
60
+ - connect-src 'self' sdp-tagcollector.shutterstock.com https://bam.nr-data.net
61
+ https://api.segment.io; object-src 'self'; media-src 'self'; script-src 'self'
62
+ 'unsafe-inline' 'unsafe-eval' https://www.offset.com https://absinthe.shutterstock.com
63
+ https://absinthe.picdn.net https://secure.adnxs.com https://cdn.segment.com
64
+ https://tags.extole.com https://ajax.googleapis.com tagmanager.google.com
65
+ https://www.google.com https://www.gstatic.com www.googletagmanager.com www.google-analytics.com
66
+ https://ssl.google-analytics.com www.googleadservices.com js-agent.newrelic.com
67
+ https://bam.nr-data.net/ *.bounceexchange.com
68
+ X-End-User-Country:
69
+ - 'null'
70
+ Set-Cookie:
71
+ - connect.sid=s%3A1VGtLG7aiimM3nXgFCyhk1Q3XBOpRVXi.MogVn6TzIRaWwGK7DcLGmOAGEKEmrPi4e5PBx%2B1EyL4;
72
+ Path=/; HttpOnly
73
+ - did=e072d58a-f7fc-4794-913a-7e09f787eef5; Max-Age=315360000; Domain=.shutterstock.com;
74
+ Path=/; Expires=Mon, 11 Jan 2027 02:21:11 GMT; HttpOnly
75
+ Etag:
76
+ - W/"2c1-Dn796RpiJTWHUELf0+W90w"
77
+ X-Shutterstock-Render-Time-Ms:
78
+ - '15'
79
+ Cache-Control:
80
+ - no-cache
81
+ body:
82
+ encoding: UTF-8
83
+ string: '{"access_token":"v2/OGNhZDA4OTUwZWU1MzNjMzM5OWQvMTE2NjM1MjA1L2N1c3RvbWVyLzIvMXdEdElwSjh6clFjRW1NVmpqcmNaVmxfcDBGVVFhR3ljM08yeWlJSGtlam5vQ09ZY1RQM3VNdXNOcVVnS1cxSFlCM1hPSDFCSHJnbmh4ckZkUEJJeEpzU2Q5ZlUzTUhEcjNIVmN2cURqZFdSaXNTMklMOHZTOUwyX285WnZUUVNRM0xoLTRaa2xiUW0xUmZvRXVRakxnMHNKRDNXU0dmekRCQzMwTmF0Z1J5RnlKdDJPcktPdDhtLW0tR3JtcFpz","token_type":"Bearer"}'
84
+ http_version:
85
+ recorded_at: Fri, 13 Jan 2017 02:21:11 GMT
86
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.shutterstock.com/v2/oauth/authorize?client_id=<SSTK_CLIENT_ID>&redirect_uri=http://localhost&response_type=code&scope=collections.view&state=test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.10.1
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 302
21
+ message: Found
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Fri, 13 Jan 2017 02:19:56 GMT
27
+ Content-Type:
28
+ - text/html
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ X-End-User-Request-Id:
34
+ - 39eae4e3-0632-4a47-9b7b-2299b12516af
35
+ X-Shutterstock-Resource:
36
+ - "/v2/oauth/authorize"
37
+ X-Shutterstock-App-Version:
38
+ - apitwo-742
39
+ Location:
40
+ - https://accounts.shutterstock.com/login?next=%2Foauth%2Fauthorize%3Fclient_id%3D<SSTK_CLIENT_ID>%26redirect_uri%3Dhttp%3A%2F%2Flocalhost%26response_type%3Dcode%26scope%3Dcollections.view%26state%3Dtest%26realm%3Dcustomer
41
+ body:
42
+ encoding: UTF-8
43
+ string: 'Moved Temporarily. Redirecting to https://accounts.shutterstock.com/login?next=%2Foauth%2Fauthorize%3Fclient_id%3D<SSTK_CLIENT_ID>%26redirect_uri%3Dhttp%3A%2F%2Flocalhost%26response_type%3Dcode%26scope%3Dcollections.view%26state%3Dtest%26realm%3Dcustomer
44
+
45
+ '
46
+ http_version:
47
+ recorded_at: Fri, 13 Jan 2017 02:19:56 GMT
48
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,53 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.shutterstock.com/v2/images/356308322
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.10.1
12
+ Authorization:
13
+ - Bearer <SSTK_ACCESS_TOKEN>
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Sun, 08 Jan 2017 00:39:27 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf8
29
+ Content-Length:
30
+ - '1794'
31
+ Connection:
32
+ - keep-alive
33
+ X-End-User-Request-Id:
34
+ - cb6f5665-fb37-4594-9521-7eec62b8a1c7
35
+ X-Shutterstock-Resource:
36
+ - "/v2/images/:id"
37
+ X-Shutterstock-App-Version:
38
+ - apitwo-739
39
+ Cache-Control:
40
+ - 'private; max-age: 60'
41
+ Etag:
42
+ - c409f7b27c1558af18f802e849c94d28
43
+ X-End-User-User-Id:
44
+ - "<SSTK_USER_ID>"
45
+ X-End-User-Client-Id:
46
+ - "<SSTK_CLIENT_ID>"
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"id":"356308322","added_date":"2015-12-29","aspect":1.498,"assets":{"small_jpg":{"display_name":"Small","dpi":72,"file_size":128000,"format":"jpg","height":334,"is_licensable":true,"width":500},"medium_jpg":{"display_name":"Med","dpi":300,"file_size":417792,"format":"jpg","height":668,"is_licensable":true,"width":1000},"huge_jpg":{"display_name":"Huge","dpi":300,"file_size":5781504,"format":"jpg","height":3691,"is_licensable":true,"width":5529},"huge_tiff":{"display_name":"Huge","dpi":300,"file_size":61222617,"format":"tiff","height":3691,"is_licensable":false,"width":5529},"preview":{"height":300,"url":"https://image.shutterstock.com/display_pic_with_logo/2396102/356308322/stock-photo-cute-asian-children-lying-on-white-bed-356308322.jpg","width":450},"small_thumb":{"height":67,"url":"https://thumb9.shutterstock.com/thumb_small/2396102/356308322/stock-photo-cute-asian-children-lying-on-white-bed-356308322.jpg","width":100},"large_thumb":{"height":100,"url":"https://thumb9.shutterstock.com/thumb_large/2396102/356308322/stock-photo-cute-asian-children-lying-on-white-bed-356308322.jpg","width":150}},"categories":[{"id":"13","name":"People"},{"id":"20","name":"NOT-CATEGORIZED"}],"contributor":{"id":"2396102"},"description":"Cute
50
+ asian children lying on white bed","image_type":"photo","is_adult":false,"has_model_release":true,"keywords":["asia","asian","background","bed","boy","brother","cheerful","child","childhood","cute","face","family","filter","friendship","fun","girl","happiness","happy","hug","japan","japanese","kid","korea","korean","laugh","little","look","love","lying","people","person","play","playful","portrait","sibling","sister","smile","toddler","two","vintage","white","young","youth"],"media_type":"image","models":[{"id":"17856134"},{"id":"15233887"}]}'
51
+ http_version:
52
+ recorded_at: Sun, 08 Jan 2017 00:39:27 GMT
53
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,53 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.shutterstock.com/v2/images/356308322
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.10.1
12
+ Authorization:
13
+ - Bearer <SSTK_ACCESS_TOKEN>
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Sun, 08 Jan 2017 00:39:26 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf8
29
+ Content-Length:
30
+ - '1794'
31
+ Connection:
32
+ - keep-alive
33
+ X-End-User-Request-Id:
34
+ - f244de02-6cdd-4da2-94a0-a993aa7dcc11
35
+ X-Shutterstock-Resource:
36
+ - "/v2/images/:id"
37
+ X-Shutterstock-App-Version:
38
+ - apitwo-739
39
+ Cache-Control:
40
+ - 'private; max-age: 60'
41
+ Etag:
42
+ - c409f7b27c1558af18f802e849c94d28
43
+ X-End-User-User-Id:
44
+ - "<SSTK_USER_ID>"
45
+ X-End-User-Client-Id:
46
+ - "<SSTK_CLIENT_ID>"
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"id":"356308322","added_date":"2015-12-29","aspect":1.498,"assets":{"small_jpg":{"display_name":"Small","dpi":72,"file_size":128000,"format":"jpg","height":334,"is_licensable":true,"width":500},"medium_jpg":{"display_name":"Med","dpi":300,"file_size":417792,"format":"jpg","height":668,"is_licensable":true,"width":1000},"huge_jpg":{"display_name":"Huge","dpi":300,"file_size":5781504,"format":"jpg","height":3691,"is_licensable":true,"width":5529},"huge_tiff":{"display_name":"Huge","dpi":300,"file_size":61222617,"format":"tiff","height":3691,"is_licensable":false,"width":5529},"preview":{"height":300,"url":"https://image.shutterstock.com/display_pic_with_logo/2396102/356308322/stock-photo-cute-asian-children-lying-on-white-bed-356308322.jpg","width":450},"small_thumb":{"height":67,"url":"https://thumb9.shutterstock.com/thumb_small/2396102/356308322/stock-photo-cute-asian-children-lying-on-white-bed-356308322.jpg","width":100},"large_thumb":{"height":100,"url":"https://thumb9.shutterstock.com/thumb_large/2396102/356308322/stock-photo-cute-asian-children-lying-on-white-bed-356308322.jpg","width":150}},"categories":[{"id":"13","name":"People"},{"id":"20","name":"NOT-CATEGORIZED"}],"contributor":{"id":"2396102"},"description":"Cute
50
+ asian children lying on white bed","image_type":"photo","is_adult":false,"has_model_release":true,"keywords":["asia","asian","background","bed","boy","brother","cheerful","child","childhood","cute","face","family","filter","friendship","fun","girl","happiness","happy","hug","japan","japanese","kid","korea","korean","laugh","little","look","love","lying","people","person","play","playful","portrait","sibling","sister","smile","toddler","two","vintage","white","young","youth"],"media_type":"image","models":[{"id":"17856134"},{"id":"15233887"}]}'
51
+ http_version:
52
+ recorded_at: Sun, 08 Jan 2017 00:39:26 GMT
53
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.shutterstock.com/v2/images/collections/23712632/items
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"items":[{"id":"123456987654321"}]}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.10.1
12
+ Authorization:
13
+ - Bearer <SSTK_ACCESS_TOKEN>
14
+ Content-Type:
15
+ - application/json
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - "*/*"
20
+ response:
21
+ status:
22
+ code: 204
23
+ message: No Content
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Date:
28
+ - Sun, 08 Jan 2017 03:26:41 GMT
29
+ Connection:
30
+ - keep-alive
31
+ X-End-User-Request-Id:
32
+ - 1663e6ac-71a0-43ec-8b0d-7910772af37c
33
+ X-Shutterstock-Resource:
34
+ - "/v2/images/collections/:id/items"
35
+ X-Shutterstock-App-Version:
36
+ - apitwo-739
37
+ Cache-Control:
38
+ - no-cache
39
+ X-End-User-User-Id:
40
+ - "<SSTK_USER_ID>"
41
+ X-End-User-Client-Id:
42
+ - "<SSTK_CLIENT_ID>"
43
+ body:
44
+ encoding: UTF-8
45
+ string: ''
46
+ http_version:
47
+ recorded_at: Sun, 08 Jan 2017 03:26:41 GMT
48
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.shutterstock.com/v2/images/collections/23712632/items
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"items":[{"id":"123456987654321"}]}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.10.1
12
+ Authorization:
13
+ - Bearer <SSTK_ACCESS_TOKEN>
14
+ Content-Type:
15
+ - application/json
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - "*/*"
20
+ response:
21
+ status:
22
+ code: 204
23
+ message: No Content
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Date:
28
+ - Sun, 08 Jan 2017 03:26:40 GMT
29
+ Connection:
30
+ - keep-alive
31
+ X-End-User-Request-Id:
32
+ - 6b654191-1961-488c-9c17-0a8be99ce9f5
33
+ X-Shutterstock-Resource:
34
+ - "/v2/images/collections/:id/items"
35
+ X-Shutterstock-App-Version:
36
+ - apitwo-739
37
+ Cache-Control:
38
+ - no-cache
39
+ X-End-User-User-Id:
40
+ - "<SSTK_USER_ID>"
41
+ X-End-User-Client-Id:
42
+ - "<SSTK_CLIENT_ID>"
43
+ body:
44
+ encoding: UTF-8
45
+ string: ''
46
+ http_version:
47
+ recorded_at: Sun, 08 Jan 2017 03:26:40 GMT
48
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.shutterstock.com/v2/images/collections/54321/items
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"items":[{"id":"123456987654321"}]}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.10.1
12
+ Authorization:
13
+ - Bearer <SSTK_ACCESS_TOKEN>
14
+ Content-Type:
15
+ - application/json
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - "*/*"
20
+ response:
21
+ status:
22
+ code: 404
23
+ message: Not Found
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Date:
28
+ - Sat, 07 Jan 2017 06:28:40 GMT
29
+ Content-Type:
30
+ - application/json; charset=utf8
31
+ Content-Length:
32
+ - '23'
33
+ Connection:
34
+ - keep-alive
35
+ X-End-User-Request-Id:
36
+ - f7fe0f26-f275-4c58-8e90-6ff0a0dd5aee
37
+ X-Shutterstock-Resource:
38
+ - "/v2/images/collections/:id/items"
39
+ X-Shutterstock-App-Version:
40
+ - apitwo-739
41
+ Cache-Control:
42
+ - no-cache
43
+ X-End-User-User-Id:
44
+ - "<SSTK_USER_ID>"
45
+ X-End-User-Client-Id:
46
+ - "<SSTK_CLIENT_ID>"
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"message":"Not Found"}'
50
+ http_version:
51
+ recorded_at: Sat, 07 Jan 2017 06:28:40 GMT
52
+ recorded_with: VCR 3.0.3