gettyimages-api 2.0.0 → 3.0.1
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.
- checksums.yaml +5 -5
- data/.github/workflows/build.yml +35 -0
- data/.github/workflows/publish.yml +40 -0
- data/.gitignore +2 -0
- data/Gemfile +1 -1
- data/Makefile +5 -0
- data/README.md +31 -9
- data/gettyimages-api.gemspec +0 -1
- data/lib/Credentials.rb +18 -0
- data/lib/CustomRequest/CustomRequest.rb +10 -5
- data/lib/Downloads/DownloadImages.rb +8 -2
- data/lib/Downloads/DownloadVideos.rb +8 -2
- data/lib/GettyImagesApi/version.rb +1 -1
- data/lib/HttpHelper.rb +10 -9
- data/lib/Images/Images.rb +8 -2
- data/lib/Search/SearchImages.rb +11 -4
- data/lib/Search/SearchImagesCreative.rb +10 -3
- data/lib/Search/SearchImagesEditorial.rb +9 -2
- data/lib/Search/SearchVideos.rb +9 -2
- data/lib/Search/SearchVideosCreative.rb +9 -2
- data/lib/Search/SearchVideosEditorial.rb +8 -1
- data/lib/Videos/Videos.rb +8 -2
- metadata +6 -4
- data/lib/Example.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 997e7f50a48676a01163f288529a8e26129ff288e220593d4c33a240edad4ceb
|
4
|
+
data.tar.gz: a44a0e727ba765c23c4e44360088b27d9526283fd5b21dc230bb883a42542787
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c43ff3f1dbb02255792b2fc0dd6ef490a5de0a55975d249310cffb4d983efecef04654f962d14a171ae3d25dc29d9fb5152860a5513585c41d51a0ac0177bd19
|
7
|
+
data.tar.gz: 15bd7ce9133f5457429376fdbcf1db10127472224ff02ba9790dfb5f5f6c1c19a4ea2c8d1ed66657a5b1bcac4177910885b6de15698f755e26d4c7338fc09bab
|
@@ -0,0 +1,35 @@
|
|
1
|
+
name: Build
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master, actions ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
strategy:
|
14
|
+
matrix:
|
15
|
+
ruby-version: [ 2.5, 2.6, 2.7 ]
|
16
|
+
|
17
|
+
steps:
|
18
|
+
- uses: actions/checkout@v2
|
19
|
+
with:
|
20
|
+
fetch-depth: 0
|
21
|
+
|
22
|
+
- uses: ruby/setup-ruby@v1
|
23
|
+
with:
|
24
|
+
ruby-version: ${{ matrix.ruby-version }}
|
25
|
+
|
26
|
+
- name: 'Get Previous tag'
|
27
|
+
id: previoustag
|
28
|
+
uses: "WyriHaximus/github-action-get-previous-tag@v1"
|
29
|
+
|
30
|
+
- name: Set version
|
31
|
+
run: |
|
32
|
+
sed -i -e "s/0.0.0/${{ steps.previoustag.outputs.tag }}/" lib/GettyImagesApi/version.rb
|
33
|
+
cat lib/GettyImagesApi/version.rb
|
34
|
+
|
35
|
+
- run: make build
|
@@ -0,0 +1,40 @@
|
|
1
|
+
name: Publish
|
2
|
+
|
3
|
+
on:
|
4
|
+
release:
|
5
|
+
types: [released]
|
6
|
+
|
7
|
+
jobs:
|
8
|
+
test:
|
9
|
+
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v2
|
14
|
+
with:
|
15
|
+
fetch-depth: 0
|
16
|
+
|
17
|
+
- uses: ruby/setup-ruby@v1
|
18
|
+
with:
|
19
|
+
ruby-version: 2.5
|
20
|
+
|
21
|
+
- name: 'Get Previous tag'
|
22
|
+
id: previoustag
|
23
|
+
uses: "WyriHaximus/github-action-get-previous-tag@v1"
|
24
|
+
|
25
|
+
- name: Set version
|
26
|
+
run: |
|
27
|
+
sed -i -e "s/0.0.0/${{ steps.previoustag.outputs.tag }}/" lib/GettyImagesApi/version.rb
|
28
|
+
cat lib/GettyImagesApi/version.rb
|
29
|
+
|
30
|
+
- run: make build
|
31
|
+
|
32
|
+
- name: Publish to RubyGems
|
33
|
+
run: |
|
34
|
+
mkdir -p $HOME/.gem
|
35
|
+
touch $HOME/.gem/credentials
|
36
|
+
chmod 0600 $HOME/.gem/credentials
|
37
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
38
|
+
gem push gettyimages-api-${{ steps.previoustag.outputs.tag }}.gem
|
39
|
+
env:
|
40
|
+
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
data/Gemfile
CHANGED
data/Makefile
ADDED
data/README.md
CHANGED
@@ -1,16 +1,31 @@
|
|
1
1
|
# Getty Images API Ruby SDK
|
2
2
|
[](https://travis-ci.org/gettyimages/gettyimages-api_ruby)
|
3
|
-
Seamlessly integrate Getty Images' expansive digital content, powerful search technology, and rich metadata into your publishing tools, products and services!
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
- Download files using your Getty Images products (e.g., Editorial subscriptions, Easy Access, Thinkstock Subscriptions, and Image Packs).
|
8
|
-
- Custom Request functionality that allows user to call any endpoint.
|
4
|
+
## Introduction
|
5
|
+
This SDK makes using the Getty Images [API](http://developers.gettyimages.com) easy. It handles credential management, makes HTTP requests and is written with a fluent style in mind. For more info about the API, see the [Documentation](https://developers.gettyimages.com/api/).
|
9
6
|
|
10
|
-
|
7
|
+
* Search for images and videos from our extensive creative and editorial catalogs.
|
8
|
+
* Get image and video metadata.
|
9
|
+
* Download files using your Getty Images products (e.g., Editorial subscriptions, Easy Access, Thinkstock Subscriptions, and Image Packs).
|
10
|
+
* Custom Request functionality that allows user to call any endpoint.
|
11
11
|
|
12
|
-
|
13
|
-
|
12
|
+
## Help & Support
|
13
|
+
|
14
|
+
* [Getty Images API](http://developers.gettyimages.com/)
|
15
|
+
* [Issue Tracker](https://github.com/gettyimages/gettyimages-api_ruby/issues)
|
16
|
+
|
17
|
+
## Getting started
|
18
|
+
|
19
|
+
### Obtain an API Key
|
20
|
+
|
21
|
+
If you don't already have an API key, fill out and submit the [contact form](http://engage.gettyimages.com/api-contact) to be connected to our Sales team.
|
22
|
+
|
23
|
+
### Installing the ruby gem package
|
24
|
+
|
25
|
+
The SDK is available as a [ruby gem](https://rubygems.org/gems/gettyimages-api) package. Install in your workspace with:
|
26
|
+
```sh
|
27
|
+
gem install gettyimages-api
|
28
|
+
```
|
14
29
|
|
15
30
|
## Examples
|
16
31
|
|
@@ -135,8 +150,13 @@ result = apiClient
|
|
135
150
|
|
136
151
|
puts result["id"]
|
137
152
|
```
|
153
|
+
## Running Source Code
|
154
|
+
_Source code is only needed if you would like to contribute to the project. Otherwise, use the [ruby gem](https://rubygems.org/gems/gettyimages-api)_
|
138
155
|
|
139
|
-
|
156
|
+
### Requirements
|
157
|
+
|
158
|
+
- Ruby version >= 2.5
|
159
|
+
- [Bundler](http://bundler.io)
|
140
160
|
|
141
161
|
Install bundler and all dependencies
|
142
162
|
|
@@ -145,6 +165,8 @@ gem install bundler
|
|
145
165
|
bundle install
|
146
166
|
```
|
147
167
|
|
168
|
+
### Unit Tests
|
169
|
+
|
148
170
|
To execute all unit tests:
|
149
171
|
|
150
172
|
```sh
|
data/gettyimages-api.gemspec
CHANGED
@@ -6,7 +6,6 @@ require_relative 'lib/GettyImagesApi/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "gettyimages-api"
|
8
8
|
spec.version = GettyImagesApi::VERSION
|
9
|
-
spec.version = "#{spec.version}-alpha-#{ENV['TRAVIS_BUILD_NUMBER']}" if ENV['TRAVIS']
|
10
9
|
spec.authors = ["Getty Images"]
|
11
10
|
spec.email = ["developersupport@gettyimages.com"]
|
12
11
|
spec.summary = "Getty Images API SDK"
|
data/lib/Credentials.rb
CHANGED
@@ -13,18 +13,31 @@ class Credentials
|
|
13
13
|
attr_accessor :client_secret
|
14
14
|
attr_accessor :user_name
|
15
15
|
attr_accessor :password
|
16
|
+
attr_accessor :token_details
|
16
17
|
|
17
18
|
def initialize(args)
|
18
19
|
args.keys.each { |name| instance_variable_set "@" + name.to_s, args[name] }
|
20
|
+
@token_details = nil
|
19
21
|
end
|
20
22
|
|
21
23
|
def get_uri(path)
|
22
24
|
return URI.parse "#{Api_Host::API_BASE_URL}#{path}"
|
23
25
|
end
|
24
26
|
|
27
|
+
def token_has_expired()
|
28
|
+
if (!token_details.nil?) && (@token_details.has_key?("sdk_expire_time"))
|
29
|
+
return @token_details["sdk_expire_time"] < (Time.now - 300)
|
30
|
+
end
|
31
|
+
return true
|
32
|
+
end
|
33
|
+
|
25
34
|
# Get Access Token Using OAuth
|
26
35
|
def get_access_token
|
27
36
|
|
37
|
+
if (!token_has_expired())
|
38
|
+
return @token_details["access_token"]
|
39
|
+
end
|
40
|
+
|
28
41
|
# Determine OAuth Flow
|
29
42
|
case @credential_type
|
30
43
|
when OAuthGrantType::PASSWORD
|
@@ -62,6 +75,11 @@ class Credentials
|
|
62
75
|
if !res.is_a?(Net::HTTPSuccess)
|
63
76
|
raise res.code + ": " + result['error_description']
|
64
77
|
end
|
78
|
+
|
79
|
+
@token_details = result
|
80
|
+
expiry = token_details["expires_in"].to_i
|
81
|
+
@token_details["sdk_expire_time"] = Time.now + expiry
|
82
|
+
|
65
83
|
return result['access_token']
|
66
84
|
end
|
67
85
|
|
@@ -2,7 +2,7 @@ require_relative "../RequestBase.rb"
|
|
2
2
|
|
3
3
|
class CustomRequest < RequestBase
|
4
4
|
|
5
|
-
attr_accessor :method, :body, :route
|
5
|
+
attr_accessor :method, :body, :route, :headers
|
6
6
|
# @route = "/v3/"
|
7
7
|
|
8
8
|
def initialize(api_key, access_token)
|
@@ -13,13 +13,13 @@ class CustomRequest < RequestBase
|
|
13
13
|
def execute
|
14
14
|
case @method
|
15
15
|
when "GET"
|
16
|
-
return @http_helper.get(@route, @query_params)
|
16
|
+
return @http_helper.get(@route, @query_params, self.headers)
|
17
17
|
when "POST"
|
18
|
-
return @http_helper.post(@route, @query_params, self.body)
|
18
|
+
return @http_helper.post(@route, @query_params, self.body, self.headers)
|
19
19
|
when "PUT"
|
20
|
-
return @http_helper.put(@route, @query_params, self.body)
|
20
|
+
return @http_helper.put(@route, @query_params, self.body, self.headers)
|
21
21
|
when "DELETE"
|
22
|
-
return @http_helper.delete(@route, @query_params)
|
22
|
+
return @http_helper.delete(@route, @query_params, self.headers)
|
23
23
|
else
|
24
24
|
raise "No appropriate HTTP method found for this request."
|
25
25
|
end
|
@@ -60,4 +60,9 @@ class CustomRequest < RequestBase
|
|
60
60
|
return self
|
61
61
|
end
|
62
62
|
|
63
|
+
def with_headers(headers)
|
64
|
+
self.headers = headers
|
65
|
+
return self
|
66
|
+
end
|
67
|
+
|
63
68
|
end
|
@@ -2,7 +2,7 @@ require_relative "../RequestBase.rb"
|
|
2
2
|
|
3
3
|
class DownloadImages < RequestBase
|
4
4
|
|
5
|
-
attr_accessor :asset_id
|
5
|
+
attr_accessor :asset_id, :accept_language
|
6
6
|
|
7
7
|
API_ROUTE = "/v3/downloads/images" # mashery endpoint
|
8
8
|
QUERY_PARAMS_NAMES = ["file_type","height","product_id","product_type"]
|
@@ -23,10 +23,16 @@ class DownloadImages < RequestBase
|
|
23
23
|
return self
|
24
24
|
end
|
25
25
|
|
26
|
+
public
|
27
|
+
def with_accept_language(language)
|
28
|
+
@accept_language = {"Accept-Language" => language}
|
29
|
+
return self
|
30
|
+
end
|
31
|
+
|
26
32
|
def execute
|
27
33
|
build_query_params("auto_download", "false")
|
28
34
|
uri = API_ROUTE + "/" + self.asset_id
|
29
|
-
return @http_helper.post(uri, @query_params, nil)
|
35
|
+
return @http_helper.post(uri, @query_params, nil, accept_language)
|
30
36
|
end
|
31
37
|
|
32
38
|
end
|
@@ -2,7 +2,7 @@ require_relative "../RequestBase.rb"
|
|
2
2
|
|
3
3
|
class DownloadVideos < RequestBase
|
4
4
|
|
5
|
-
attr_accessor :asset_id
|
5
|
+
attr_accessor :asset_id, :accept_language
|
6
6
|
|
7
7
|
API_ROUTE = "/v3/downloads/videos" # mashery endpoint
|
8
8
|
QUERY_PARAMS_NAMES = ["product_id","size"]
|
@@ -23,10 +23,16 @@ class DownloadVideos < RequestBase
|
|
23
23
|
return self
|
24
24
|
end
|
25
25
|
|
26
|
+
public
|
27
|
+
def with_accept_language(language)
|
28
|
+
@accept_language = {"Accept-Language" => language}
|
29
|
+
return self
|
30
|
+
end
|
31
|
+
|
26
32
|
def execute
|
27
33
|
build_query_params("auto_download", "false")
|
28
34
|
uri = API_ROUTE + "/" + self.asset_id
|
29
|
-
return @http_helper.post(uri, @query_params, nil)
|
35
|
+
return @http_helper.post(uri, @query_params, nil, accept_language)
|
30
36
|
end
|
31
37
|
|
32
38
|
end
|
data/lib/HttpHelper.rb
CHANGED
@@ -20,7 +20,7 @@ class HttpHelper
|
|
20
20
|
return URI.parse "#{Api_Host::API_BASE_URL}#{path}"
|
21
21
|
end
|
22
22
|
|
23
|
-
def get(endpoint_path, query_params)
|
23
|
+
def get(endpoint_path, query_params, headers = nil)
|
24
24
|
|
25
25
|
uri = get_uri(endpoint_path)
|
26
26
|
#puts uri
|
@@ -29,11 +29,11 @@ class HttpHelper
|
|
29
29
|
end
|
30
30
|
#puts "REQUEST URI: #{uri.request_uri}"
|
31
31
|
req = Net::HTTP::Get.new uri.request_uri
|
32
|
-
return send uri, req, @api_key, @access_token
|
32
|
+
return send uri, req, @api_key, @access_token, headers
|
33
33
|
|
34
34
|
end
|
35
35
|
|
36
|
-
def post(endpoint_path, query_params, body)
|
36
|
+
def post(endpoint_path, query_params, body, headers = nil)
|
37
37
|
|
38
38
|
uri = get_uri(endpoint_path)
|
39
39
|
if !query_params.nil?
|
@@ -44,11 +44,11 @@ class HttpHelper
|
|
44
44
|
req["Content-Type"] = "application/json"
|
45
45
|
req.body = body.to_json
|
46
46
|
end
|
47
|
-
return send uri, req, @api_key, @access_token
|
47
|
+
return send uri, req, @api_key, @access_token, headers
|
48
48
|
|
49
49
|
end
|
50
50
|
|
51
|
-
def put(endpoint_path, query_params, body)
|
51
|
+
def put(endpoint_path, query_params, body, headers = nil)
|
52
52
|
|
53
53
|
uri = get_uri(endpoint_path)
|
54
54
|
if !query_params.nil?
|
@@ -59,18 +59,18 @@ class HttpHelper
|
|
59
59
|
req["Content-Type"] = "application/json"
|
60
60
|
req.body = body.to_json
|
61
61
|
end
|
62
|
-
return send uri, req, @api_key, @access_token
|
62
|
+
return send uri, req, @api_key, @access_token, headers
|
63
63
|
|
64
64
|
end
|
65
65
|
|
66
|
-
def delete(endpoint_path, query_params)
|
66
|
+
def delete(endpoint_path, query_params, headers = nil)
|
67
67
|
|
68
68
|
uri = get_uri(endpoint_path)
|
69
69
|
if !query_params.nil?
|
70
70
|
uri.query = URI.encode_www_form query_params
|
71
71
|
end
|
72
72
|
req = Net::HTTP::Delete.new uri.request_uri
|
73
|
-
return send uri, req, @api_key, @access_token
|
73
|
+
return send uri, req, @api_key, @access_token, headers
|
74
74
|
|
75
75
|
end
|
76
76
|
|
@@ -93,7 +93,7 @@ class HttpHelper
|
|
93
93
|
end
|
94
94
|
|
95
95
|
private
|
96
|
-
def send(uri, request, api_key, bearer_token = "")
|
96
|
+
def send(uri, request, api_key, bearer_token = "", headers)
|
97
97
|
|
98
98
|
# define HTTPS connection
|
99
99
|
https = Net::HTTP.new(uri.host, uri.port)
|
@@ -101,6 +101,7 @@ class HttpHelper
|
|
101
101
|
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
102
102
|
|
103
103
|
# define headers
|
104
|
+
request.initialize_http_header(headers)
|
104
105
|
request["User-Agent"] = "GettImagesApiSdk/#{GettyImagesApi::VERSION} (#{os} ; Ruby #{RUBY_VERSION})"
|
105
106
|
request["Api-Key"] = api_key
|
106
107
|
request["Authorization"] = "Bearer #{bearer_token}" unless bearer_token.empty?
|
data/lib/Images/Images.rb
CHANGED
@@ -2,7 +2,7 @@ require_relative "../RequestBase.rb"
|
|
2
2
|
|
3
3
|
class Images < RequestBase
|
4
4
|
|
5
|
-
attr_accessor :asset_id
|
5
|
+
attr_accessor :asset_id, :accept_language
|
6
6
|
|
7
7
|
API_ROUTE = "/v3/images" # mashery endpoint
|
8
8
|
QUERY_PARAMS_NAMES = ["ids","fields"]
|
@@ -24,10 +24,16 @@ class Images < RequestBase
|
|
24
24
|
return self
|
25
25
|
end
|
26
26
|
|
27
|
+
public
|
28
|
+
def with_accept_language(language)
|
29
|
+
@accept_language = {"Accept-Language" => language}
|
30
|
+
return self
|
31
|
+
end
|
32
|
+
|
27
33
|
public
|
28
34
|
def execute
|
29
35
|
self.asset_id.nil? ? uri = API_ROUTE : uri = API_ROUTE + "/" + self.asset_id
|
30
|
-
return @http_helper.get(uri, @query_params)
|
36
|
+
return @http_helper.get(uri, @query_params, @accept_language)
|
31
37
|
end
|
32
38
|
|
33
39
|
end
|
data/lib/Search/SearchImages.rb
CHANGED
@@ -2,9 +2,11 @@ require_relative "../RequestBase.rb"
|
|
2
2
|
|
3
3
|
class SearchImages < RequestBase
|
4
4
|
|
5
|
-
|
5
|
+
attr_accessor :accept_language
|
6
|
+
|
7
|
+
API_ROUTE = "/v3/search/images" # mashery endpoint
|
6
8
|
QUERY_PARAMS_NAMES = ["age_of_people","artists","collection_codes","collections_filter_type","color","compositions","embed_content_only","ethnicity","event_ids","exclude_nudity","fields",
|
7
|
-
"file_types","graphical_styles","keyword_ids","
|
9
|
+
"file_types","graphical_styles","keyword_ids","minimum_size","number_of_people","orientations","page","page_size","phrase","prestige_content_only","product_types",
|
8
10
|
"sort_order","specific_people"]
|
9
11
|
|
10
12
|
QUERY_PARAMS_NAMES.each do |key|
|
@@ -23,10 +25,15 @@ class SearchImages < RequestBase
|
|
23
25
|
end
|
24
26
|
return self
|
25
27
|
end
|
26
|
-
|
28
|
+
end
|
29
|
+
|
30
|
+
def with_accept_language(language)
|
31
|
+
@accept_language = {"Accept-Language" => language}
|
32
|
+
return self
|
33
|
+
end
|
27
34
|
|
28
35
|
def execute
|
29
|
-
return @http_helper.get(API_ROUTE, @query_params)
|
36
|
+
return @http_helper.get(API_ROUTE, @query_params, @accept_language)
|
30
37
|
end
|
31
38
|
|
32
39
|
end
|
@@ -2,9 +2,11 @@ require_relative "../RequestBase.rb"
|
|
2
2
|
|
3
3
|
class SearchImagesCreative < RequestBase
|
4
4
|
|
5
|
+
attr_accessor :accept_language
|
6
|
+
|
5
7
|
API_ROUTE = "/v3/search/images/creative" # mashery endpoint
|
6
8
|
QUERY_PARAMS_NAMES = ["age_of_people","artists","collection_codes","collections_filter_type","color","compositions","embed_content_only","ethnicity","exclude_nudity","fields","file_types",
|
7
|
-
"graphical_styles","keyword_ids","
|
9
|
+
"graphical_styles","keyword_ids","minimum_size","number_of_people","orientations","page","page_size","phrase","prestige_content_only","product_types",
|
8
10
|
"sort_order"]
|
9
11
|
|
10
12
|
QUERY_PARAMS_NAMES.each do |key|
|
@@ -23,10 +25,15 @@ class SearchImagesCreative < RequestBase
|
|
23
25
|
end
|
24
26
|
return self
|
25
27
|
end
|
26
|
-
|
28
|
+
end
|
29
|
+
|
30
|
+
def with_accept_language(language)
|
31
|
+
@accept_language = {"Accept-Language" => language}
|
32
|
+
return self
|
33
|
+
end
|
27
34
|
|
28
35
|
def execute
|
29
|
-
return @http_helper.get(API_ROUTE, @query_params)
|
36
|
+
return @http_helper.get(API_ROUTE, @query_params, @accept_language)
|
30
37
|
end
|
31
38
|
|
32
39
|
end
|
@@ -2,6 +2,8 @@ require_relative "../RequestBase.rb"
|
|
2
2
|
|
3
3
|
class SearchImagesEditorial < RequestBase
|
4
4
|
|
5
|
+
attr_accessor :accept_language
|
6
|
+
|
5
7
|
API_ROUTE = "/v3/search/images/editorial" # mashery endpoint
|
6
8
|
QUERY_PARAMS_NAMES = ["age_of_people","artists","collection_codes","collections_filter_type","compositions","editorial_segments","embed_content_only","end_date","entity_uris","ethnicity",
|
7
9
|
"event_ids","exclude_nudity","fields","file_types","graphical_styles","keyword_ids","minimum_quality_rank","minimum_size","number_of_people","orientations","page","page_size","phrase",
|
@@ -23,10 +25,15 @@ class SearchImagesEditorial < RequestBase
|
|
23
25
|
end
|
24
26
|
return self
|
25
27
|
end
|
26
|
-
|
28
|
+
end
|
27
29
|
|
30
|
+
def with_accept_language(language)
|
31
|
+
@accept_language = {"Accept-Language" => language}
|
32
|
+
return self
|
33
|
+
end
|
34
|
+
|
28
35
|
def execute
|
29
|
-
return @http_helper.get(API_ROUTE, @query_params)
|
36
|
+
return @http_helper.get(API_ROUTE, @query_params, @accept_language)
|
30
37
|
end
|
31
38
|
|
32
39
|
end
|
data/lib/Search/SearchVideos.rb
CHANGED
@@ -2,6 +2,8 @@ require_relative "../RequestBase.rb"
|
|
2
2
|
|
3
3
|
class SearchVideos < RequestBase
|
4
4
|
|
5
|
+
attr_accessor :accept_language
|
6
|
+
|
5
7
|
API_ROUTE = "/v3/search/videos" # mashery endpoint
|
6
8
|
QUERY_PARAMS_NAMES = ["age_of_people","collection_codes","collections_filter_type","editorial_video_types","exclude_nudity","fields","format_available","frame_rates",
|
7
9
|
"keyword_ids","license_models","page","page_size","phrase","product_types","sort_order","specific_people"]
|
@@ -22,10 +24,15 @@ class SearchVideos < RequestBase
|
|
22
24
|
end
|
23
25
|
return self
|
24
26
|
end
|
25
|
-
|
27
|
+
end
|
28
|
+
|
29
|
+
def with_accept_language(language)
|
30
|
+
@accept_language = {"Accept-Language" => language}
|
31
|
+
return self
|
32
|
+
end
|
26
33
|
|
27
34
|
def execute
|
28
|
-
return @http_helper.get(API_ROUTE, @query_params)
|
35
|
+
return @http_helper.get(API_ROUTE, @query_params, @accept_language)
|
29
36
|
end
|
30
37
|
|
31
38
|
end
|
@@ -2,6 +2,8 @@ require_relative "../RequestBase.rb"
|
|
2
2
|
|
3
3
|
class SearchVideosCreative < RequestBase
|
4
4
|
|
5
|
+
attr_accessor :accept_language
|
6
|
+
|
5
7
|
API_ROUTE = "/v3/search/videos/creative" # mashery endpoint
|
6
8
|
QUERY_PARAMS_NAMES = ["age_of_people","collection_codes","collections_filter_type","exclude_nudity","fields","format_available","frame_rates",
|
7
9
|
"keyword_ids","license_models","page","page_size","phrase","product_types","sort_order"]
|
@@ -22,10 +24,15 @@ class SearchVideosCreative < RequestBase
|
|
22
24
|
end
|
23
25
|
return self
|
24
26
|
end
|
25
|
-
|
27
|
+
end
|
28
|
+
|
29
|
+
def with_accept_language(language)
|
30
|
+
@accept_language = {"Accept-Language" => language}
|
31
|
+
return self
|
32
|
+
end
|
26
33
|
|
27
34
|
def execute
|
28
|
-
return @http_helper.get(API_ROUTE, @query_params)
|
35
|
+
return @http_helper.get(API_ROUTE, @query_params, @accept_language)
|
29
36
|
end
|
30
37
|
|
31
38
|
end
|
@@ -2,6 +2,8 @@ require_relative "../RequestBase.rb"
|
|
2
2
|
|
3
3
|
class SearchVideosEditorial < RequestBase
|
4
4
|
|
5
|
+
attr_accessor :accept_language
|
6
|
+
|
5
7
|
API_ROUTE = "/v3/search/videos/editorial" # mashery endpoint
|
6
8
|
QUERY_PARAMS_NAMES = ["age_of_people","collection_codes","collections_filter_type","editorial_video_types","entity_uris","exclude_nudity","fields","format_available","frame_rates",
|
7
9
|
"keyword_ids","page","page_size","phrase","product_types","sort_order","specific_people"]
|
@@ -24,8 +26,13 @@ class SearchVideosEditorial < RequestBase
|
|
24
26
|
end
|
25
27
|
end
|
26
28
|
|
29
|
+
def with_accept_language(language)
|
30
|
+
@accept_language = {"Accept-Language" => language}
|
31
|
+
return self
|
32
|
+
end
|
33
|
+
|
27
34
|
def execute
|
28
|
-
return @http_helper.get(API_ROUTE, @query_params)
|
35
|
+
return @http_helper.get(API_ROUTE, @query_params, @accept_language)
|
29
36
|
end
|
30
37
|
|
31
38
|
end
|
data/lib/Videos/Videos.rb
CHANGED
@@ -2,7 +2,7 @@ require_relative "../RequestBase.rb"
|
|
2
2
|
|
3
3
|
class Videos < RequestBase
|
4
4
|
|
5
|
-
attr_accessor :asset_id
|
5
|
+
attr_accessor :asset_id, :accept_language
|
6
6
|
|
7
7
|
API_ROUTE = "/v3/videos" # mashery endpoint
|
8
8
|
QUERY_PARAMS_NAMES = ["ids","fields"]
|
@@ -24,10 +24,16 @@ class Videos < RequestBase
|
|
24
24
|
return self
|
25
25
|
end
|
26
26
|
|
27
|
+
public
|
28
|
+
def with_accept_language(language)
|
29
|
+
@accept_language = {"Accept-Language" => language}
|
30
|
+
return self
|
31
|
+
end
|
32
|
+
|
27
33
|
public
|
28
34
|
def execute
|
29
35
|
self.asset_id.nil? ? uri = API_ROUTE : uri = API_ROUTE + "/" + self.asset_id
|
30
|
-
return @http_helper.get(uri, @query_params)
|
36
|
+
return @http_helper.get(uri, @query_params, @accept_language)
|
31
37
|
end
|
32
38
|
|
33
39
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gettyimages-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Getty Images
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -45,12 +45,15 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
+
- ".github/workflows/build.yml"
|
49
|
+
- ".github/workflows/publish.yml"
|
48
50
|
- ".gitignore"
|
49
51
|
- ".vscode/launch.json"
|
50
52
|
- ".vscode/tasks.json"
|
51
53
|
- Gemfile
|
52
54
|
- Gemfile.lock
|
53
55
|
- LICENSE
|
56
|
+
- Makefile
|
54
57
|
- README.md
|
55
58
|
- Rakefile
|
56
59
|
- gettyimages-api.gemspec
|
@@ -59,7 +62,6 @@ files:
|
|
59
62
|
- lib/CustomRequest/CustomRequest.rb
|
60
63
|
- lib/Downloads/DownloadImages.rb
|
61
64
|
- lib/Downloads/DownloadVideos.rb
|
62
|
-
- lib/Example.rb
|
63
65
|
- lib/GettyImagesApi/version.rb
|
64
66
|
- lib/HttpHelper.rb
|
65
67
|
- lib/Images/Images.rb
|
@@ -92,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
94
|
version: '0'
|
93
95
|
requirements: []
|
94
96
|
rubyforge_project:
|
95
|
-
rubygems_version: 2.
|
97
|
+
rubygems_version: 2.7.6.3
|
96
98
|
signing_key:
|
97
99
|
specification_version: 4
|
98
100
|
summary: Getty Images API SDK
|
data/lib/Example.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
require "pp"
|
2
|
-
require_relative "GettyImagesApi"
|
3
|
-
|
4
|
-
api_key = "api key"
|
5
|
-
api_secret = "api secret"
|
6
|
-
|
7
|
-
apiClient = GettyImagesApi.new(api_key, api_secret)
|
8
|
-
search_results = apiClient.search().images().creative()
|
9
|
-
.with_phrase("gorilla")
|
10
|
-
.with_response_fields(["id","title"])
|
11
|
-
.with_graphical_styles("illustration")
|
12
|
-
.with_graphical_styles(["fine_art","photography"])
|
13
|
-
.with_page(2)
|
14
|
-
.with_page_size(5)
|
15
|
-
.execute()
|
16
|
-
|
17
|
-
search_results["images"].each do | image |
|
18
|
-
puts "Id: #{image["id"]} Title: #{image["title"]}"
|
19
|
-
end
|
20
|
-
|
21
|
-
|