gettyimages-api 2.0.0
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 +7 -0
- data/.gitignore +14 -0
- data/.vscode/launch.json +65 -0
- data/.vscode/tasks.json +15 -0
- data/Gemfile +6 -0
- data/LICENSE +21 -0
- data/README.md +158 -0
- data/Rakefile +9 -0
- data/gettyimages-api.gemspec +25 -0
- data/lib/ApiClient.rb +88 -0
- data/lib/Credentials.rb +68 -0
- data/lib/CustomRequest/CustomRequest.rb +63 -0
- data/lib/Downloads/DownloadImages.rb +32 -0
- data/lib/Downloads/DownloadVideos.rb +32 -0
- data/lib/Example.rb +21 -0
- data/lib/GettyImagesApi/version.rb +3 -0
- data/lib/HttpHelper.rb +124 -0
- data/lib/Images/Images.rb +33 -0
- data/lib/RequestBase.rb +20 -0
- data/lib/Search/SearchImages.rb +33 -0
- data/lib/Search/SearchImagesCreative.rb +32 -0
- data/lib/Search/SearchImagesEditorial.rb +32 -0
- data/lib/Search/SearchVideos.rb +31 -0
- data/lib/Search/SearchVideosCreative.rb +31 -0
- data/lib/Search/SearchVideosEditorial.rb +31 -0
- data/lib/Videos/Videos.rb +33 -0
- data/lib/gettyimages-api.rb +1 -0
- metadata +99 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6b5c91bd5871d4cb8761930aeb093fe47a0c5d85
|
4
|
+
data.tar.gz: 644524093d4158f6f95c1dca4da520c5955e8dd6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c9f560e82439206b16671f81b5f76cfb158dea1217a1ab28282902053cb7288ce32adfd33f8dbefd54153301db0a715a183d55e3a26d1d529cf1f151f6535623
|
7
|
+
data.tar.gz: 9afd14e656e430f98c747d2418fdc6f72e564f8475b987ae8c09d04e137b6b173ffc65eba024d6fc63e31c1e4560f256300b0c2a4b6c814430f856056db7062e
|
data/.gitignore
ADDED
data/.vscode/launch.json
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
{
|
2
|
+
// Use IntelliSense to learn about possible attributes.
|
3
|
+
// Hover to view descriptions of existing attributes.
|
4
|
+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
5
|
+
"version": "0.2.0",
|
6
|
+
"configurations": [
|
7
|
+
{
|
8
|
+
"name": "Debug Local File",
|
9
|
+
"type": "Ruby",
|
10
|
+
"request": "launch",
|
11
|
+
"cwd": "${workspaceRoot}",
|
12
|
+
"program": "${file}",
|
13
|
+
"showDebuggerOutput": true
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"name": "Listen for rdebug-ide",
|
17
|
+
"type": "Ruby",
|
18
|
+
"request": "attach",
|
19
|
+
"cwd": "${workspaceRoot}",
|
20
|
+
"remoteHost": "127.0.0.1",
|
21
|
+
"remotePort": "1234",
|
22
|
+
"remoteWorkspaceRoot": "${workspaceRoot}"
|
23
|
+
},
|
24
|
+
{
|
25
|
+
"name": "Rails server",
|
26
|
+
"type": "Ruby",
|
27
|
+
"request": "launch",
|
28
|
+
"cwd": "${workspaceRoot}",
|
29
|
+
"program": "${workspaceRoot}/bin/rails",
|
30
|
+
"args": [
|
31
|
+
"server"
|
32
|
+
]
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"name": "RSpec - all",
|
36
|
+
"type": "Ruby",
|
37
|
+
"request": "launch",
|
38
|
+
"cwd": "${workspaceRoot}",
|
39
|
+
"program": "${workspaceRoot}/bin/rspec",
|
40
|
+
"args": [
|
41
|
+
"-I",
|
42
|
+
"${workspaceRoot}"
|
43
|
+
]
|
44
|
+
},
|
45
|
+
{
|
46
|
+
"name": "RSpec - active spec file only",
|
47
|
+
"type": "Ruby",
|
48
|
+
"request": "launch",
|
49
|
+
"cwd": "${workspaceRoot}",
|
50
|
+
"program": "${workspaceRoot}/bin/rspec",
|
51
|
+
"args": [
|
52
|
+
"-I",
|
53
|
+
"${workspaceRoot}",
|
54
|
+
"${file}"
|
55
|
+
]
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"name": "Cucumber",
|
59
|
+
"type": "Ruby",
|
60
|
+
"request": "launch",
|
61
|
+
"cwd": "${workspaceRoot}",
|
62
|
+
"program": "${workspaceRoot}/bin/cucumber"
|
63
|
+
}
|
64
|
+
]
|
65
|
+
}
|
data/.vscode/tasks.json
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
3
|
+
// for the documentation about the tasks.json format
|
4
|
+
"version": "2.0.0",
|
5
|
+
"tasks": [
|
6
|
+
{
|
7
|
+
"label": "test",
|
8
|
+
"type": "shell",
|
9
|
+
"command": "ruby",
|
10
|
+
"args": [
|
11
|
+
"./unit_tests/Run.rb"
|
12
|
+
],
|
13
|
+
}
|
14
|
+
]
|
15
|
+
}
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2014-2018 Getty Images
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,158 @@
|
|
1
|
+
# Getty Images API Ruby SDK
|
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
|
+
|
5
|
+
- Search for images and videos from our extensive creative and editorial catalogs.
|
6
|
+
- Get image and video metadata.
|
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.
|
9
|
+
|
10
|
+
## Requirements
|
11
|
+
|
12
|
+
- Ruby version >= 2.4
|
13
|
+
- [Bundler](http://bundler.io)
|
14
|
+
|
15
|
+
## Examples
|
16
|
+
|
17
|
+
### Search for one or more images
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
require 'gettyimages-api'
|
21
|
+
|
22
|
+
api_key = "API Key"
|
23
|
+
api_secret = "API Secret"
|
24
|
+
|
25
|
+
# create instance of the SDK
|
26
|
+
apiClient = ApiClient.new(api_key, api_secret)
|
27
|
+
result = apiClient
|
28
|
+
.search_images()
|
29
|
+
.with_phrase("gorilla")
|
30
|
+
.with_fields(["artist", "id", "title"])
|
31
|
+
.with_exclude_nudity("true")
|
32
|
+
.with_page(2)
|
33
|
+
.with_page_size(5)
|
34
|
+
.execute()
|
35
|
+
|
36
|
+
result["images"].each do | image |
|
37
|
+
puts "Id: #{image["id"]} Title: #{image["title"]}"
|
38
|
+
end
|
39
|
+
```
|
40
|
+
|
41
|
+
### Get detailed information for one image
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
require 'gettyimages-api'
|
45
|
+
|
46
|
+
api_key = "API Key"
|
47
|
+
api_secret = "API Secret"
|
48
|
+
|
49
|
+
# create instance of the SDK
|
50
|
+
apiClient = ApiClient.new(api_key, api_secret)
|
51
|
+
result = apiClient
|
52
|
+
.images()
|
53
|
+
.with_id("ASSET_ID")
|
54
|
+
.execute()
|
55
|
+
|
56
|
+
puts result
|
57
|
+
```
|
58
|
+
|
59
|
+
### Get detailed information for multiple images
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
require 'gettyimages-api'
|
63
|
+
|
64
|
+
api_key = "API Key"
|
65
|
+
api_secret = "API Secret"
|
66
|
+
|
67
|
+
# create instance of the SDK
|
68
|
+
apiClient = ApiClient.new(api_key, api_secret)
|
69
|
+
result = apiClient
|
70
|
+
.images()
|
71
|
+
.with_ids(["ASSET_ID_1", "ASSET_ID_2"])
|
72
|
+
.execute()
|
73
|
+
|
74
|
+
result["images"].each do | image |
|
75
|
+
puts image
|
76
|
+
end
|
77
|
+
```
|
78
|
+
|
79
|
+
### Download an image
|
80
|
+
|
81
|
+
```ruby
|
82
|
+
require 'gettyimages-api'
|
83
|
+
|
84
|
+
api_key = "API Key"
|
85
|
+
api_secret = "API Secret"
|
86
|
+
|
87
|
+
# create instance of the SDK
|
88
|
+
apiClient = ApiClient.new(api_key, api_secret)
|
89
|
+
result = apiClient
|
90
|
+
.download_images()
|
91
|
+
.with_id("ASSET_ID")
|
92
|
+
.execute()
|
93
|
+
|
94
|
+
puts result["uri"]
|
95
|
+
```
|
96
|
+
|
97
|
+
### Use the custom request functionality for GET request with query parameters
|
98
|
+
|
99
|
+
```ruby
|
100
|
+
require 'gettyimages-api'
|
101
|
+
|
102
|
+
api_key = "API Key"
|
103
|
+
api_secret = "API Secret"
|
104
|
+
|
105
|
+
# create instance of the SDK
|
106
|
+
apiClient = ApiClient.new(api_key, api_secret)
|
107
|
+
result = apiClient
|
108
|
+
.custom_request()
|
109
|
+
.with_method("GET")
|
110
|
+
.with_route("search/images")
|
111
|
+
.with_query_parameters({"phrase"=> "cat", "fields"=> ["artist", "id", "title"], "page" => 2})
|
112
|
+
.execute()
|
113
|
+
|
114
|
+
result["images"].each do | image |
|
115
|
+
puts "Id: #{image["id"]} Title: #{image["title"]}"
|
116
|
+
end
|
117
|
+
```
|
118
|
+
|
119
|
+
### Use the custom request functionality for POST request with body
|
120
|
+
|
121
|
+
```ruby
|
122
|
+
require 'gettyimages-api'
|
123
|
+
|
124
|
+
api_key = "API Key"
|
125
|
+
api_secret = "API Secret"
|
126
|
+
|
127
|
+
# create instance of the SDK
|
128
|
+
apiClient = ApiClient.new(api_key, api_secret)
|
129
|
+
result = apiClient
|
130
|
+
.custom_request()
|
131
|
+
.with_method("POST")
|
132
|
+
.with_route("boards")
|
133
|
+
.with_body({"name"=> "Board Name", "description" => "Board Description"})
|
134
|
+
.execute()
|
135
|
+
|
136
|
+
puts result["id"]
|
137
|
+
```
|
138
|
+
|
139
|
+
## Unit Tests
|
140
|
+
|
141
|
+
Install bundler and all dependencies
|
142
|
+
|
143
|
+
```sh
|
144
|
+
gem install bundler
|
145
|
+
bundle install
|
146
|
+
```
|
147
|
+
|
148
|
+
To execute all unit tests:
|
149
|
+
|
150
|
+
```sh
|
151
|
+
rake
|
152
|
+
```
|
153
|
+
|
154
|
+
To run one unit test file:
|
155
|
+
|
156
|
+
```sh
|
157
|
+
ruby unit_tests/FILENAME.rb
|
158
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require_relative 'lib/GettyImagesApi/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "gettyimages-api"
|
8
|
+
spec.version = GettyImagesApi::VERSION
|
9
|
+
spec.version = "#{spec.version}-alpha-#{ENV['TRAVIS_BUILD_NUMBER']}" if ENV['TRAVIS']
|
10
|
+
spec.authors = ["Getty Images"]
|
11
|
+
spec.email = ["developersupport@gettyimages.com"]
|
12
|
+
spec.summary = "Getty Images API SDK"
|
13
|
+
spec.description = "Getty Images API SDK"
|
14
|
+
spec.homepage = "https://github.com/gettyimages/gettyimages-api_ruby"
|
15
|
+
spec.license = "MIT"
|
16
|
+
gem_files = `git ls-files -z`.split("\x0")
|
17
|
+
gem_ignored_files = `git ls-files -z unit_tests/`.split("\x0")
|
18
|
+
spec.files = gem_files - gem_ignored_files - ['.travis.yml']
|
19
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
|
+
spec.require_paths = ["lib"]
|
21
|
+
|
22
|
+
spec.add_development_dependency "bundler"
|
23
|
+
spec.add_development_dependency "rake"
|
24
|
+
|
25
|
+
end
|
data/lib/ApiClient.rb
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
require_relative "Credentials"
|
2
|
+
require_relative "Search/SearchImages.rb"
|
3
|
+
require_relative "Search/SearchImagesCreative.rb"
|
4
|
+
require_relative "Search/SearchImagesEditorial.rb"
|
5
|
+
require_relative "Search/SearchVideos.rb"
|
6
|
+
require_relative "Search/SearchVideosCreative.rb"
|
7
|
+
require_relative "Search/SearchVideosEditorial.rb"
|
8
|
+
require_relative "Downloads/DownloadImages.rb"
|
9
|
+
require_relative "Downloads/DownloadVideos.rb"
|
10
|
+
require_relative "Images/Images.rb"
|
11
|
+
require_relative "Videos/Videos.rb"
|
12
|
+
require_relative "CustomRequest/CustomRequest.rb"
|
13
|
+
|
14
|
+
class ApiClient
|
15
|
+
|
16
|
+
# Initialize the Credentials to be used by the SDK
|
17
|
+
def initialize(api_key, api_secret, user_name = nil, password = nil)
|
18
|
+
|
19
|
+
@credentials = Credentials.new(
|
20
|
+
:credential_type => (user_name.nil?) || (password.nil?) ? OAuthGrantType::CLIENT_CREDENTIALS : OAuthGrantType::PASSWORD,
|
21
|
+
:client_key => api_key,
|
22
|
+
:client_secret => api_secret,
|
23
|
+
:user_name => user_name,
|
24
|
+
:password => password)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Get access token to be used by the SDK
|
28
|
+
def get_access_token
|
29
|
+
return @credentials.get_access_token
|
30
|
+
end
|
31
|
+
|
32
|
+
# Search for both creative and editorial images
|
33
|
+
def search_images()
|
34
|
+
return SearchImages.new(@credentials.client_key, @credentials.get_access_token)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Search for creative images
|
38
|
+
def search_images_creative()
|
39
|
+
return SearchImagesCreative.new(@credentials.client_key, @credentials.get_access_token)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Search for editorial images
|
43
|
+
def search_images_editorial()
|
44
|
+
return SearchImagesEditorial.new(@credentials.client_key, @credentials.get_access_token)
|
45
|
+
end
|
46
|
+
|
47
|
+
#Search for both creative and editorial videos
|
48
|
+
def search_videos()
|
49
|
+
return SearchVideos.new(@credentials.client_key, @credentials.get_access_token)
|
50
|
+
end
|
51
|
+
|
52
|
+
#Search for creative videos
|
53
|
+
def search_videos_creative()
|
54
|
+
return SearchVideosCreative.new(@credentials.client_key, @credentials.get_access_token)
|
55
|
+
end
|
56
|
+
|
57
|
+
#Search for editorial videos
|
58
|
+
def search_videos_editorial()
|
59
|
+
return SearchVideosEditorial.new(@credentials.client_key, @credentials.get_access_token)
|
60
|
+
end
|
61
|
+
|
62
|
+
#Get metadata for images
|
63
|
+
def images()
|
64
|
+
return Images.new(@credentials.client_key, @credentials.get_access_token)
|
65
|
+
end
|
66
|
+
|
67
|
+
#Get metadata for videos
|
68
|
+
def videos()
|
69
|
+
return Videos.new(@credentials.client_key, @credentials.get_access_token)
|
70
|
+
end
|
71
|
+
|
72
|
+
#Download an image
|
73
|
+
def download_images()
|
74
|
+
return DownloadImages.new(@credentials.client_key, @credentials.get_access_token)
|
75
|
+
end
|
76
|
+
|
77
|
+
#Download a video
|
78
|
+
def download_videos()
|
79
|
+
return DownloadVideos.new(@credentials.client_key, @credentials.get_access_token)
|
80
|
+
end
|
81
|
+
|
82
|
+
#Build a custom API request
|
83
|
+
def custom_request()
|
84
|
+
return CustomRequest.new(@credentials.client_key, @credentials.get_access_token)
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
|
data/lib/Credentials.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'net/https'
|
3
|
+
|
4
|
+
class OAuthGrantType
|
5
|
+
PASSWORD = 'password'
|
6
|
+
CLIENT_CREDENTIALS = 'client_credentials'
|
7
|
+
end
|
8
|
+
|
9
|
+
class Credentials
|
10
|
+
|
11
|
+
attr_accessor :credential_type
|
12
|
+
attr_accessor :client_key
|
13
|
+
attr_accessor :client_secret
|
14
|
+
attr_accessor :user_name
|
15
|
+
attr_accessor :password
|
16
|
+
|
17
|
+
def initialize(args)
|
18
|
+
args.keys.each { |name| instance_variable_set "@" + name.to_s, args[name] }
|
19
|
+
end
|
20
|
+
|
21
|
+
def get_uri(path)
|
22
|
+
return URI.parse "#{Api_Host::API_BASE_URL}#{path}"
|
23
|
+
end
|
24
|
+
|
25
|
+
# Get Access Token Using OAuth
|
26
|
+
def get_access_token
|
27
|
+
|
28
|
+
# Determine OAuth Flow
|
29
|
+
case @credential_type
|
30
|
+
when OAuthGrantType::PASSWORD
|
31
|
+
oauth_data = {
|
32
|
+
:grant_type => @credential_type,
|
33
|
+
:client_id => @client_key,
|
34
|
+
:client_secret => @client_secret,
|
35
|
+
:username => @user_name,
|
36
|
+
:password => @password }
|
37
|
+
when OAuthGrantType::CLIENT_CREDENTIALS
|
38
|
+
oauth_data = {
|
39
|
+
:grant_type => @credential_type,
|
40
|
+
:client_id => @client_key,
|
41
|
+
:client_secret => @client_secret }
|
42
|
+
else
|
43
|
+
puts 'Current OAuth flow only supports Resource Owner and Client Credentials'
|
44
|
+
end
|
45
|
+
|
46
|
+
# define endpoint
|
47
|
+
uri = get_uri '/oauth2/token'
|
48
|
+
|
49
|
+
# define HTTPS connection
|
50
|
+
https = Net::HTTP.new(uri.host, uri.port)
|
51
|
+
https.use_ssl = true
|
52
|
+
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
53
|
+
|
54
|
+
# define Request
|
55
|
+
req = Net::HTTP::Post.new uri.request_uri
|
56
|
+
req['Api-Key'] = @client_key
|
57
|
+
req.set_form_data oauth_data
|
58
|
+
|
59
|
+
res = https.request req
|
60
|
+
data = res.body
|
61
|
+
result = JSON.parse(data)
|
62
|
+
if !res.is_a?(Net::HTTPSuccess)
|
63
|
+
raise res.code + ": " + result['error_description']
|
64
|
+
end
|
65
|
+
return result['access_token']
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require_relative "../RequestBase.rb"
|
2
|
+
|
3
|
+
class CustomRequest < RequestBase
|
4
|
+
|
5
|
+
attr_accessor :method, :body, :route
|
6
|
+
# @route = "/v3/"
|
7
|
+
|
8
|
+
def initialize(api_key, access_token)
|
9
|
+
@route = "/v3/"
|
10
|
+
super(api_key, access_token)
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute
|
14
|
+
case @method
|
15
|
+
when "GET"
|
16
|
+
return @http_helper.get(@route, @query_params)
|
17
|
+
when "POST"
|
18
|
+
return @http_helper.post(@route, @query_params, self.body)
|
19
|
+
when "PUT"
|
20
|
+
return @http_helper.put(@route, @query_params, self.body)
|
21
|
+
when "DELETE"
|
22
|
+
return @http_helper.delete(@route, @query_params)
|
23
|
+
else
|
24
|
+
raise "No appropriate HTTP method found for this request."
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
def with_route(route)
|
30
|
+
@route += route
|
31
|
+
return self
|
32
|
+
end
|
33
|
+
|
34
|
+
def with_method(method)
|
35
|
+
@method = method
|
36
|
+
return self
|
37
|
+
end
|
38
|
+
|
39
|
+
def with_query_parameters(params)
|
40
|
+
params.each do |key,value|
|
41
|
+
if value.is_a?(Array)
|
42
|
+
value = value.join(",")
|
43
|
+
if !key.include? "id"
|
44
|
+
value.downcase!
|
45
|
+
end
|
46
|
+
params[key] = value
|
47
|
+
else
|
48
|
+
if (!key.include? "id") && (value.is_a?(String))
|
49
|
+
value.downcase!
|
50
|
+
end
|
51
|
+
params[key] = value
|
52
|
+
end
|
53
|
+
end
|
54
|
+
@query_params = params
|
55
|
+
return self
|
56
|
+
end
|
57
|
+
|
58
|
+
def with_body(body)
|
59
|
+
self.body = body
|
60
|
+
return self
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative "../RequestBase.rb"
|
2
|
+
|
3
|
+
class DownloadImages < RequestBase
|
4
|
+
|
5
|
+
attr_accessor :asset_id
|
6
|
+
|
7
|
+
API_ROUTE = "/v3/downloads/images" # mashery endpoint
|
8
|
+
QUERY_PARAMS_NAMES = ["file_type","height","product_id","product_type"]
|
9
|
+
|
10
|
+
QUERY_PARAMS_NAMES.each do |key|
|
11
|
+
define_method :"with_#{key}" do |value = true|
|
12
|
+
if (!key.include? "id") && (value.is_a?(String))
|
13
|
+
value.downcase!
|
14
|
+
end
|
15
|
+
build_query_params(key, value)
|
16
|
+
return self
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
public
|
21
|
+
def with_id(asset_id)
|
22
|
+
self.asset_id = asset_id
|
23
|
+
return self
|
24
|
+
end
|
25
|
+
|
26
|
+
def execute
|
27
|
+
build_query_params("auto_download", "false")
|
28
|
+
uri = API_ROUTE + "/" + self.asset_id
|
29
|
+
return @http_helper.post(uri, @query_params, nil)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative "../RequestBase.rb"
|
2
|
+
|
3
|
+
class DownloadVideos < RequestBase
|
4
|
+
|
5
|
+
attr_accessor :asset_id
|
6
|
+
|
7
|
+
API_ROUTE = "/v3/downloads/videos" # mashery endpoint
|
8
|
+
QUERY_PARAMS_NAMES = ["product_id","size"]
|
9
|
+
|
10
|
+
QUERY_PARAMS_NAMES.each do |key|
|
11
|
+
define_method :"with_#{key}" do |value = true|
|
12
|
+
if (!key.include? "id") && (value.is_a?(String))
|
13
|
+
value.downcase!
|
14
|
+
end
|
15
|
+
build_query_params(key, value)
|
16
|
+
return self
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
public
|
21
|
+
def with_id(asset_id)
|
22
|
+
self.asset_id = asset_id
|
23
|
+
return self
|
24
|
+
end
|
25
|
+
|
26
|
+
def execute
|
27
|
+
build_query_params("auto_download", "false")
|
28
|
+
uri = API_ROUTE + "/" + self.asset_id
|
29
|
+
return @http_helper.post(uri, @query_params, nil)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
data/lib/Example.rb
ADDED
@@ -0,0 +1,21 @@
|
|
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
|
+
|
data/lib/HttpHelper.rb
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'uri'
|
3
|
+
require 'json'
|
4
|
+
require 'rbconfig'
|
5
|
+
require_relative 'GettyImagesApi/version'
|
6
|
+
|
7
|
+
class Api_Host
|
8
|
+
API_HOST = "api.gettyimages.com"
|
9
|
+
API_BASE_URL = "https://#{API_HOST}"
|
10
|
+
end
|
11
|
+
|
12
|
+
class HttpHelper
|
13
|
+
|
14
|
+
def initialize(api_key, access_token)
|
15
|
+
@api_key = api_key
|
16
|
+
@access_token = access_token
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_uri(path)
|
20
|
+
return URI.parse "#{Api_Host::API_BASE_URL}#{path}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def get(endpoint_path, query_params)
|
24
|
+
|
25
|
+
uri = get_uri(endpoint_path)
|
26
|
+
#puts uri
|
27
|
+
if !query_params.nil?
|
28
|
+
uri.query = URI.encode_www_form query_params
|
29
|
+
end
|
30
|
+
#puts "REQUEST URI: #{uri.request_uri}"
|
31
|
+
req = Net::HTTP::Get.new uri.request_uri
|
32
|
+
return send uri, req, @api_key, @access_token
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
def post(endpoint_path, query_params, body)
|
37
|
+
|
38
|
+
uri = get_uri(endpoint_path)
|
39
|
+
if !query_params.nil?
|
40
|
+
uri.query = URI.encode_www_form query_params
|
41
|
+
end
|
42
|
+
req = Net::HTTP::Post.new uri.request_uri
|
43
|
+
if !body.nil?
|
44
|
+
req["Content-Type"] = "application/json"
|
45
|
+
req.body = body.to_json
|
46
|
+
end
|
47
|
+
return send uri, req, @api_key, @access_token
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
def put(endpoint_path, query_params, body)
|
52
|
+
|
53
|
+
uri = get_uri(endpoint_path)
|
54
|
+
if !query_params.nil?
|
55
|
+
uri.query = URI.encode_www_form query_params
|
56
|
+
end
|
57
|
+
req = Net::HTTP::Put.new uri.request_uri
|
58
|
+
if !body.nil?
|
59
|
+
req["Content-Type"] = "application/json"
|
60
|
+
req.body = body.to_json
|
61
|
+
end
|
62
|
+
return send uri, req, @api_key, @access_token
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
def delete(endpoint_path, query_params)
|
67
|
+
|
68
|
+
uri = get_uri(endpoint_path)
|
69
|
+
if !query_params.nil?
|
70
|
+
uri.query = URI.encode_www_form query_params
|
71
|
+
end
|
72
|
+
req = Net::HTTP::Delete.new uri.request_uri
|
73
|
+
return send uri, req, @api_key, @access_token
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
private
|
78
|
+
def os
|
79
|
+
@os ||= (
|
80
|
+
host_os = RbConfig::CONFIG['host_os']
|
81
|
+
case host_os
|
82
|
+
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
|
83
|
+
:windows
|
84
|
+
when /darwin|mac os/
|
85
|
+
:macosx
|
86
|
+
when /linux/
|
87
|
+
:linux
|
88
|
+
when /solaris|bsd/
|
89
|
+
:unix
|
90
|
+
else
|
91
|
+
raise Error::WebDriverError, "unknown os: #{host_os.inspect}"
|
92
|
+
end)
|
93
|
+
end
|
94
|
+
|
95
|
+
private
|
96
|
+
def send(uri, request, api_key, bearer_token = "")
|
97
|
+
|
98
|
+
# define HTTPS connection
|
99
|
+
https = Net::HTTP.new(uri.host, uri.port)
|
100
|
+
https.use_ssl = true
|
101
|
+
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
102
|
+
|
103
|
+
# define headers
|
104
|
+
request["User-Agent"] = "GettImagesApiSdk/#{GettyImagesApi::VERSION} (#{os} ; Ruby #{RUBY_VERSION})"
|
105
|
+
request["Api-Key"] = api_key
|
106
|
+
request["Authorization"] = "Bearer #{bearer_token}" unless bearer_token.empty?
|
107
|
+
|
108
|
+
# send request
|
109
|
+
resp = https.request request
|
110
|
+
|
111
|
+
if !resp.is_a?(Net::HTTPSuccess)
|
112
|
+
data = JSON.parse(resp.body)
|
113
|
+
raise "HTTP RESPONSE: #{data}"
|
114
|
+
end
|
115
|
+
|
116
|
+
if resp.code == '204'
|
117
|
+
return Hash.new
|
118
|
+
end
|
119
|
+
|
120
|
+
return JSON.parse(resp.body)
|
121
|
+
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative "../RequestBase.rb"
|
2
|
+
|
3
|
+
class Images < RequestBase
|
4
|
+
|
5
|
+
attr_accessor :asset_id
|
6
|
+
|
7
|
+
API_ROUTE = "/v3/images" # mashery endpoint
|
8
|
+
QUERY_PARAMS_NAMES = ["ids","fields"]
|
9
|
+
|
10
|
+
QUERY_PARAMS_NAMES.each do |key|
|
11
|
+
define_method :"with_#{key}" do |value = true|
|
12
|
+
value = value.join(",")
|
13
|
+
if !key.include? "id"
|
14
|
+
value.downcase!
|
15
|
+
end
|
16
|
+
build_query_params(key, value)
|
17
|
+
return self
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
public
|
22
|
+
def with_id(id)
|
23
|
+
self.asset_id = id
|
24
|
+
return self
|
25
|
+
end
|
26
|
+
|
27
|
+
public
|
28
|
+
def execute
|
29
|
+
self.asset_id.nil? ? uri = API_ROUTE : uri = API_ROUTE + "/" + self.asset_id
|
30
|
+
return @http_helper.get(uri, @query_params)
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
data/lib/RequestBase.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative "HttpHelper"
|
2
|
+
|
3
|
+
class RequestBase
|
4
|
+
|
5
|
+
attr_accessor :http_helper, :query_params
|
6
|
+
|
7
|
+
def initialize(api_key, access_token)
|
8
|
+
|
9
|
+
#puts "here is my token #{access_token}"
|
10
|
+
@http_helper = HttpHelper.new(api_key, access_token)
|
11
|
+
@query_params = Hash.new
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
protected
|
16
|
+
def build_query_params(key, value)
|
17
|
+
@query_params[key].nil? ? @query_params[key] = value : @query_params[key] << "," + value
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative "../RequestBase.rb"
|
2
|
+
|
3
|
+
class SearchImages < RequestBase
|
4
|
+
|
5
|
+
API_ROUTE = "/v3/search/images" # mashery endpoint
|
6
|
+
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","license_models","minimum_size","number_of_people","orientations","page","page_size","phrase","prestige_content_only","product_types",
|
8
|
+
"sort_order","specific_people"]
|
9
|
+
|
10
|
+
QUERY_PARAMS_NAMES.each do |key|
|
11
|
+
define_method :"with_#{key}" do |value = true|
|
12
|
+
if value.is_a?(Array)
|
13
|
+
value = value.join(",")
|
14
|
+
if (!key.include? "id") && (!key.include? "orientations")
|
15
|
+
value.downcase!
|
16
|
+
end
|
17
|
+
build_query_params(key, value)
|
18
|
+
else
|
19
|
+
if (!key.include? "id") && (!key.include? "orientations") && (value.is_a?(String))
|
20
|
+
value.downcase!
|
21
|
+
end
|
22
|
+
build_query_params(key, value)
|
23
|
+
end
|
24
|
+
return self
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def execute
|
29
|
+
return @http_helper.get(API_ROUTE, @query_params)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative "../RequestBase.rb"
|
2
|
+
|
3
|
+
class SearchImagesCreative < RequestBase
|
4
|
+
|
5
|
+
API_ROUTE = "/v3/search/images/creative" # mashery endpoint
|
6
|
+
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","license_models","minimum_size","number_of_people","orientations","page","page_size","phrase","prestige_content_only","product_types",
|
8
|
+
"sort_order"]
|
9
|
+
|
10
|
+
QUERY_PARAMS_NAMES.each do |key|
|
11
|
+
define_method :"with_#{key}" do |value = true|
|
12
|
+
if value.is_a?(Array)
|
13
|
+
value = value.join(",")
|
14
|
+
if (!key.include? "id") && (!key.include? "orientations")
|
15
|
+
value.downcase!
|
16
|
+
end
|
17
|
+
build_query_params(key, value)
|
18
|
+
else
|
19
|
+
if (!key.include? "id") && (!key.include? "orientations") && (value.is_a?(String))
|
20
|
+
value.downcase!
|
21
|
+
end
|
22
|
+
build_query_params(key, value)
|
23
|
+
end
|
24
|
+
return self
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def execute
|
29
|
+
return @http_helper.get(API_ROUTE, @query_params)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative "../RequestBase.rb"
|
2
|
+
|
3
|
+
class SearchImagesEditorial < RequestBase
|
4
|
+
|
5
|
+
API_ROUTE = "/v3/search/images/editorial" # mashery endpoint
|
6
|
+
QUERY_PARAMS_NAMES = ["age_of_people","artists","collection_codes","collections_filter_type","compositions","editorial_segments","embed_content_only","end_date","entity_uris","ethnicity",
|
7
|
+
"event_ids","exclude_nudity","fields","file_types","graphical_styles","keyword_ids","minimum_quality_rank","minimum_size","number_of_people","orientations","page","page_size","phrase",
|
8
|
+
"product_types","sort_order","specific_people","start_date"]
|
9
|
+
|
10
|
+
QUERY_PARAMS_NAMES.each do |key|
|
11
|
+
define_method :"with_#{key}" do |value = true|
|
12
|
+
if value.is_a?(Array)
|
13
|
+
value = value.join(",")
|
14
|
+
if (!key.include? "id") && (!key.include? "orientations")
|
15
|
+
value.downcase!
|
16
|
+
end
|
17
|
+
build_query_params(key, value)
|
18
|
+
else
|
19
|
+
if (!key.include? "id") && (!key.include? "orientations") && (value.is_a?(String))
|
20
|
+
value.downcase!
|
21
|
+
end
|
22
|
+
build_query_params(key, value)
|
23
|
+
end
|
24
|
+
return self
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def execute
|
29
|
+
return @http_helper.get(API_ROUTE, @query_params)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative "../RequestBase.rb"
|
2
|
+
|
3
|
+
class SearchVideos < RequestBase
|
4
|
+
|
5
|
+
API_ROUTE = "/v3/search/videos" # mashery endpoint
|
6
|
+
QUERY_PARAMS_NAMES = ["age_of_people","collection_codes","collections_filter_type","editorial_video_types","exclude_nudity","fields","format_available","frame_rates",
|
7
|
+
"keyword_ids","license_models","page","page_size","phrase","product_types","sort_order","specific_people"]
|
8
|
+
|
9
|
+
QUERY_PARAMS_NAMES.each do |key|
|
10
|
+
define_method :"with_#{key}" do |value = true|
|
11
|
+
if value.is_a?(Array)
|
12
|
+
value = value.join(",")
|
13
|
+
if !key.include? "id"
|
14
|
+
value.downcase!
|
15
|
+
end
|
16
|
+
build_query_params(key, value)
|
17
|
+
else
|
18
|
+
if (!key.include? "id") && (value.is_a?(String))
|
19
|
+
value.downcase!
|
20
|
+
end
|
21
|
+
build_query_params(key, value)
|
22
|
+
end
|
23
|
+
return self
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def execute
|
28
|
+
return @http_helper.get(API_ROUTE, @query_params)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative "../RequestBase.rb"
|
2
|
+
|
3
|
+
class SearchVideosCreative < RequestBase
|
4
|
+
|
5
|
+
API_ROUTE = "/v3/search/videos/creative" # mashery endpoint
|
6
|
+
QUERY_PARAMS_NAMES = ["age_of_people","collection_codes","collections_filter_type","exclude_nudity","fields","format_available","frame_rates",
|
7
|
+
"keyword_ids","license_models","page","page_size","phrase","product_types","sort_order"]
|
8
|
+
|
9
|
+
QUERY_PARAMS_NAMES.each do |key|
|
10
|
+
define_method :"with_#{key}" do |value = true|
|
11
|
+
if value.is_a?(Array)
|
12
|
+
value = value.join(",")
|
13
|
+
if !key.include? "id"
|
14
|
+
value.downcase!
|
15
|
+
end
|
16
|
+
build_query_params(key, value)
|
17
|
+
else
|
18
|
+
if (!key.include? "id") && (value.is_a?(String))
|
19
|
+
value.downcase!
|
20
|
+
end
|
21
|
+
build_query_params(key, value)
|
22
|
+
end
|
23
|
+
return self
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def execute
|
28
|
+
return @http_helper.get(API_ROUTE, @query_params)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative "../RequestBase.rb"
|
2
|
+
|
3
|
+
class SearchVideosEditorial < RequestBase
|
4
|
+
|
5
|
+
API_ROUTE = "/v3/search/videos/editorial" # mashery endpoint
|
6
|
+
QUERY_PARAMS_NAMES = ["age_of_people","collection_codes","collections_filter_type","editorial_video_types","entity_uris","exclude_nudity","fields","format_available","frame_rates",
|
7
|
+
"keyword_ids","page","page_size","phrase","product_types","sort_order","specific_people"]
|
8
|
+
|
9
|
+
QUERY_PARAMS_NAMES.each do |key|
|
10
|
+
define_method :"with_#{key}" do |value = true|
|
11
|
+
if value.is_a?(Array)
|
12
|
+
value = value.join(",")
|
13
|
+
if !key.include? "id"
|
14
|
+
value.downcase!
|
15
|
+
end
|
16
|
+
build_query_params(key, value)
|
17
|
+
else
|
18
|
+
if (!key.include? "id") && (value.is_a?(String))
|
19
|
+
value.downcase!
|
20
|
+
end
|
21
|
+
build_query_params(key, value)
|
22
|
+
end
|
23
|
+
return self
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def execute
|
28
|
+
return @http_helper.get(API_ROUTE, @query_params)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative "../RequestBase.rb"
|
2
|
+
|
3
|
+
class Videos < RequestBase
|
4
|
+
|
5
|
+
attr_accessor :asset_id
|
6
|
+
|
7
|
+
API_ROUTE = "/v3/videos" # mashery endpoint
|
8
|
+
QUERY_PARAMS_NAMES = ["ids","fields"]
|
9
|
+
|
10
|
+
QUERY_PARAMS_NAMES.each do |key|
|
11
|
+
define_method :"with_#{key}" do |value = true|
|
12
|
+
value = value.join(",")
|
13
|
+
if !key.include? "id"
|
14
|
+
value.downcase!
|
15
|
+
end
|
16
|
+
build_query_params(key, value)
|
17
|
+
return self
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
public
|
22
|
+
def with_id(id)
|
23
|
+
self.asset_id = id
|
24
|
+
return self
|
25
|
+
end
|
26
|
+
|
27
|
+
public
|
28
|
+
def execute
|
29
|
+
self.asset_id.nil? ? uri = API_ROUTE : uri = API_ROUTE + "/" + self.asset_id
|
30
|
+
return @http_helper.get(uri, @query_params)
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require_relative 'ApiClient'
|
metadata
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gettyimages-api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Getty Images
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-04-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: Getty Images API SDK
|
42
|
+
email:
|
43
|
+
- developersupport@gettyimages.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- ".gitignore"
|
49
|
+
- ".vscode/launch.json"
|
50
|
+
- ".vscode/tasks.json"
|
51
|
+
- Gemfile
|
52
|
+
- Gemfile.lock
|
53
|
+
- LICENSE
|
54
|
+
- README.md
|
55
|
+
- Rakefile
|
56
|
+
- gettyimages-api.gemspec
|
57
|
+
- lib/ApiClient.rb
|
58
|
+
- lib/Credentials.rb
|
59
|
+
- lib/CustomRequest/CustomRequest.rb
|
60
|
+
- lib/Downloads/DownloadImages.rb
|
61
|
+
- lib/Downloads/DownloadVideos.rb
|
62
|
+
- lib/Example.rb
|
63
|
+
- lib/GettyImagesApi/version.rb
|
64
|
+
- lib/HttpHelper.rb
|
65
|
+
- lib/Images/Images.rb
|
66
|
+
- lib/RequestBase.rb
|
67
|
+
- lib/Search/SearchImages.rb
|
68
|
+
- lib/Search/SearchImagesCreative.rb
|
69
|
+
- lib/Search/SearchImagesEditorial.rb
|
70
|
+
- lib/Search/SearchVideos.rb
|
71
|
+
- lib/Search/SearchVideosCreative.rb
|
72
|
+
- lib/Search/SearchVideosEditorial.rb
|
73
|
+
- lib/Videos/Videos.rb
|
74
|
+
- lib/gettyimages-api.rb
|
75
|
+
homepage: https://github.com/gettyimages/gettyimages-api_ruby
|
76
|
+
licenses:
|
77
|
+
- MIT
|
78
|
+
metadata: {}
|
79
|
+
post_install_message:
|
80
|
+
rdoc_options: []
|
81
|
+
require_paths:
|
82
|
+
- lib
|
83
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
requirements: []
|
94
|
+
rubyforge_project:
|
95
|
+
rubygems_version: 2.5.2
|
96
|
+
signing_key:
|
97
|
+
specification_version: 4
|
98
|
+
summary: Getty Images API SDK
|
99
|
+
test_files: []
|