3scale-api 1.1.0 → 1.5.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: e802565c57ee82f45f6684a5764b0bd438e9171e746f8128e4691b1fbd974a5d
4
- data.tar.gz: d979da1bce6a4f1f969e0bf8a1d9bc5ba661648b485acaaf1ce51f39f91723ac
3
+ metadata.gz: 889c02fde022e3dfac63c698c05a631904181e7c5bb8b65f7a73378ede62bcd7
4
+ data.tar.gz: 10756f304d8b25f242416c2cdd3d6ae5141ef73c94103aab6cc9e7674cfcd450
5
5
  SHA512:
6
- metadata.gz: 65ae26fc85839d07a9df0fa0da510c8b259af601a5b163f843c9c0096a23e28198b639adcfa33ffdfbf8ee2baf40b5e2c817a47bbef2148d94c5997581d65366
7
- data.tar.gz: 702fb4b87d60a01954d8c6c0ae668ec75e6df24b0bdac3d646883b7231654a9fdd80f79af621d79725bbfd43c089b1f5f2601f8da70c9b96c4116b0addeb1ffd
6
+ metadata.gz: c029b7cafa5e81c612c2240f30c428d9be066ae9ad3d5b30f4efd1873b98c7600d5a446af4d1069978f32297ba96ffd34ba46d03afdfe34e6b79bfd40a3b66ea
7
+ data.tar.gz: 964b8e3168761498f2789b2f0466d2d52c68273972495e1dffa977c98f7257ac643af7a0600a7b5aab85ba37440cb1e3e337bdfc654bfd4f6b6cb20ce9ac7088
@@ -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
 
@@ -68,16 +68,22 @@ module ThreeScale
68
68
 
69
69
  class NotFoundError < ResponseError; end
70
70
 
71
+ class UnknownFormatError < StandardError; end
72
+
71
73
  def forbidden!(response)
72
- raise ForbiddenError.new(response)
74
+ raise ForbiddenError.new(response, format_response(response))
73
75
  end
74
76
 
75
77
  def notfound!(response)
76
- raise NotFoundError.new(response)
78
+ raise NotFoundError.new(response, format_response(response))
77
79
  end
78
80
 
79
81
  def unexpected!(response)
80
- raise UnexpectedResponseError.new(response, response.inspect)
82
+ raise UnexpectedResponseError.new(response, format_response(response))
83
+ end
84
+
85
+ def unknownformat!
86
+ raise UnknownFormatError, "unknown format #{format}"
81
87
  end
82
88
 
83
89
  def serialize(body)
@@ -91,7 +97,7 @@ module ThreeScale
91
97
  def parser
92
98
  case format
93
99
  when :json then JSONParser
94
- else "unknown format #{format}"
100
+ else unknownformat!
95
101
  end
96
102
  end
97
103
 
@@ -108,6 +114,16 @@ module ThreeScale
108
114
  path
109
115
  end
110
116
 
117
+ def format_response(response)
118
+ body = response.body if text_based?(response)
119
+ "#{response.inspect} body=#{body}"
120
+ end
121
+
122
+ def text_based?(response)
123
+ response.content_type =~ /^text/ ||
124
+ response.content_type =~ /^application/ && !['application/octet-stream', 'application/pdf'].include?(response.content_type)
125
+ end
126
+
111
127
  module JSONParser
112
128
  module_function
113
129
 
@@ -1,5 +1,5 @@
1
1
  module ThreeScale
2
2
  module API
3
- VERSION = '1.1.0'.freeze
3
+ VERSION = '1.5.0'.freeze
4
4
  end
5
5
  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.1.0
4
+ version: 1.5.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-04-17 00:00:00.000000000 Z
12
+ date: 2021-11-18 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,15 +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
- rubyforge_project:
105
- rubygems_version: 2.7.6
104
+ rubygems_version: 3.0.3
106
105
  signing_key:
107
106
  specification_version: 4
108
107
  summary: API Client for 3scale APIs