3scale-api 1.2.0 → 1.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea3ac51993c3762a0a40625807148fdba4dbf390aa032bc97183f660220bf410
4
- data.tar.gz: 3f5c198b2fbe44894007990f4f7e6d926400c4f89597acf9533a281c2fb77cd7
3
+ metadata.gz: 68347e4023104f3763ef350b355b94ce353c9678b77ef413643931e1365446ff
4
+ data.tar.gz: ebea3f4f26bf2b91f6e7479ad7d33dc2e69f49492d12604c32855dd1171c1dcc
5
5
  SHA512:
6
- metadata.gz: a5e4aff97c1716b24cdd5ba27385cf2babe88183dcc4894fcad0ca0df3e03df150e77fb80ff01485cca4bea47c4f6bade61a8c31aebdac8bd312aede6799af29
7
- data.tar.gz: 2b86b756c210e5cc8270279d9f8ae258624ae6656594864d63d082b492b91b76e4c62a822ae6654243ba4585565acf6055906327303f71ec6e915b6603f22a16
6
+ metadata.gz: 723f245e2a3a15c1db5784be651fe49a3db0292aaec9207fc9a989ba542d58aa5baf904859525dbc24d6fac9143b097fa192168d27a0335f5f950c1a92cddfa3
7
+ data.tar.gz: 7daad7df1b7f00bb55f72c87c97a985a2041ffc3a8edcbc77a0cc244ba94fbf5bf25e21aa6f840e365a7821eb5bdf27af1b941069ac54672dc47a040522da4dc
@@ -1,5 +1,8 @@
1
1
  module ThreeScale
2
2
  module API
3
+ MAX_BACKENDS_PER_PAGE = 500
4
+ MAX_SERVICES_PER_PAGE = 500
5
+
3
6
  class Client
4
7
  attr_reader :http_client
5
8
 
@@ -19,8 +22,8 @@ module ThreeScale
19
22
 
20
23
  # @api public
21
24
  # @return [Array<Hash>]
22
- def list_services
23
- response = http_client.get('/admin/api/services')
25
+ def list_services(params = nil)
26
+ response = http_client.get('/admin/api/services', params: params)
24
27
  extract(collection: 'services', entity: 'service', from: response)
25
28
  end
26
29
 
@@ -41,6 +44,14 @@ module ThreeScale
41
44
  extract(collection: 'applications', entity: 'application', from: response)
42
45
  end
43
46
 
47
+ # @api public
48
+ # @param [Fixnum] account_id Account ID
49
+ # @return [Array<Hash>]
50
+ def list_applications_by_account(account_id)
51
+ response = http_client.get("/admin/api/accounts/#{account_id}/applications")
52
+ extract(collection: 'applications', entity: 'application', from: response)
53
+ end
54
+
44
55
  # @api public
45
56
  # @return [Hash]
46
57
  # @param [Fixnum] id Application ID
@@ -200,6 +211,15 @@ module ThreeScale
200
211
  extract(entity: 'proxy', from: response)
201
212
  end
202
213
 
214
+ # @api public
215
+ # @return [Hash]
216
+ # @param [Fixnum] service_id Service ID
217
+ def proxy_deploy(service_id)
218
+ response = http_client.post("/admin/api/services/#{service_id}/proxy/deploy",
219
+ body: nil)
220
+ extract(entity: 'proxy', from: response)
221
+ end
222
+
203
223
  # @api public
204
224
  # @return [Array<Hash>]
205
225
  # @param [Fixnum] service_id Service ID
@@ -828,8 +848,8 @@ module ThreeScale
828
848
 
829
849
  # @api public
830
850
  # @return [List]
831
- def list_backends
832
- response = http_client.get('/admin/api/backend_apis')
851
+ def list_backends(params = nil)
852
+ response = http_client.get('/admin/api/backend_apis', params: params)
833
853
  extract(collection: 'backend_apis', entity: 'backend_api', from: response)
834
854
  end
835
855
 
@@ -6,9 +6,9 @@ require 'openssl'
6
6
  module ThreeScale
7
7
  module API
8
8
  class HttpClient
9
- attr_reader :endpoint, :admin_domain, :provider_key, :headers, :format
9
+ attr_reader :endpoint, :admin_domain, :provider_key, :headers, :format, :keep_alive
10
10
 
11
- def initialize(endpoint:, provider_key:, format: :json, verify_ssl: true)
11
+ def initialize(endpoint:, provider_key:, format: :json, verify_ssl: true, keep_alive: false)
12
12
  @endpoint = URI(endpoint).freeze
13
13
  @admin_domain = @endpoint.host.freeze
14
14
  @provider_key = provider_key.freeze
@@ -30,25 +30,37 @@ module ThreeScale
30
30
  @headers.freeze
31
31
 
32
32
  @format = format
33
+
34
+ @keep_alive = keep_alive
33
35
  end
34
36
 
35
37
  def get(path, params: nil)
38
+ @http.start if keep_alive && !@http.started?
39
+
36
40
  parse @http.get(format_path_n_query(path, params), headers)
37
41
  end
38
42
 
39
43
  def patch(path, body:, params: nil)
44
+ @http.start if keep_alive && !@http.started?
45
+
40
46
  parse @http.patch(format_path_n_query(path, params), serialize(body), headers)
41
47
  end
42
48
 
43
49
  def post(path, body:, params: nil)
50
+ @http.start if keep_alive && !@http.started?
51
+
44
52
  parse @http.post(format_path_n_query(path, params), serialize(body), headers)
45
53
  end
46
54
 
47
55
  def put(path, body: nil, params: nil)
56
+ @http.start if keep_alive && !@http.started?
57
+
48
58
  parse @http.put(format_path_n_query(path, params), serialize(body), headers)
49
59
  end
50
60
 
51
61
  def delete(path, params: nil)
62
+ @http.start if keep_alive && !@http.started?
63
+
52
64
  parse @http.delete(format_path_n_query(path, params), headers)
53
65
  end
54
66
 
@@ -1,5 +1,5 @@
1
1
  module ThreeScale
2
2
  module API
3
- VERSION = '1.2.0'.freeze
3
+ VERSION = '1.6.0'.freeze
4
4
  end
5
5
  end
data/lib/3scale/api.rb CHANGED
@@ -6,10 +6,12 @@ module ThreeScale
6
6
  autoload :Client, '3scale/api/client'
7
7
  autoload :HttpClient, '3scale/api/http_client'
8
8
 
9
- def self.new(endpoint:, provider_key:, verify_ssl: true)
9
+ def self.new(endpoint:, provider_key:, verify_ssl: true, keep_alive: false)
10
10
  http_client = HttpClient.new(endpoint: endpoint,
11
11
  provider_key: provider_key,
12
- verify_ssl: verify_ssl)
12
+ verify_ssl: verify_ssl,
13
+ keep_alive: keep_alive,
14
+ )
13
15
  Client.new(http_client)
14
16
  end
15
17
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: 3scale-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
- - Michal Cichra
7
+ - Miguel Soriano
8
8
  - Eguzki Astiz Lezaun
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-11-02 00:00:00.000000000 Z
12
+ date: 2021-11-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -69,7 +69,7 @@ dependencies:
69
69
  version: '3.4'
70
70
  description: 'API Client to access your 3scale APIs: Account Management API'
71
71
  email:
72
- - michal@3scale.net
72
+ - msoriano@redhat.com
73
73
  - eastizle@redhat.com
74
74
  executables: []
75
75
  extensions: []
@@ -94,14 +94,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
- version: '0'
97
+ version: '2.6'
98
98
  required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  requirements: []
104
- rubygems_version: 3.1.2
104
+ rubygems_version: 3.0.3
105
105
  signing_key:
106
106
  specification_version: 4
107
107
  summary: API Client for 3scale APIs