nurego 1.1.17 → 1.1.18

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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nurego (1.1.15)
4
+ nurego (1.1.17)
5
5
  cf-uaa-lib (= 1.3.10)
6
6
  mime-types (~> 1.25)
7
7
  multi_json (>= 1.0.4, < 2)
data/README.md CHANGED
@@ -55,7 +55,7 @@ Get entitlement for customer
55
55
  ```
56
56
  begin
57
57
  Nurego.api_key = “l230bc7b-9b85-4c5f-ad9f-4eeeef4d4f44”
58
- ents = Nurego::Organization.entitlements({customer_id: 'cus_2shm2PizVL8QOp'})
58
+ ents = Nurego::Organization.entitlements('cus_2shm2PizVL8QOp')
59
59
  puts ents.inspect
60
60
  rescue Nurego::NuregoError => e
61
61
  puts “Got exception #{e}”
@@ -74,7 +74,7 @@ end
74
74
  ```
75
75
  begin
76
76
  Nurego.api_key = “l230bc7b-9b85-4c5f-ad9f-4eeeef4d4f44”
77
- ents = Nurego::Organization.entitlements({customer_id: 'cus_2shm2PizVL8QOp', feature_id: 'subscribers'})
77
+ ents = Nurego::Organization.entitlements('cus_2shm2PizVL8QOp', {feature_id: 'subscribers'})
78
78
  puts ents.inspect
79
79
  rescue Nurego::NuregoError => e
80
80
  puts “Got exception #{e}”
@@ -102,23 +102,6 @@ rescue Nurego::NuregoError => e
102
102
  end
103
103
  ```
104
104
 
105
- Check allowed usage for customer
106
-
107
- ```
108
- begin
109
- Nurego.api_key = “l230bc7b-9b85-4c5f-ad9f-4eeeef4d4f44”
110
- ent = Nurego::Entitlement.new({id: 'cus_2shm2PizVL8QOp'})
111
-
112
- allowed = ent.is_allowed(feature_id, 1)
113
- puts allowed.inspect
114
-
115
- allowed = ent.is_allowed(feature_id, 2)
116
- puts allowed.inspect
117
- rescue Nurego::NuregoError => e
118
- puts “Got exception #{e}”
119
- end
120
- ```
121
-
122
105
  #Offering
123
106
 
124
107
  Retrieve the current offering for the 'All' segment through the 'website' distribution channel.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.17
1
+ 1.1.18
@@ -29,12 +29,14 @@ require 'nurego/instance'
29
29
  require 'nurego/connector'
30
30
  require 'nurego/password_reset'
31
31
  require 'nurego/offering'
32
+ require 'nurego/service'
32
33
  require 'nurego/plan'
33
34
  require 'nurego/feature'
34
35
  require 'nurego/bill'
35
36
  require 'nurego/payment_method'
36
37
  require 'nurego/entitlement'
37
38
  require 'nurego/discount'
39
+ require 'nurego/legal_doc'
38
40
  require 'nurego/extensions'
39
41
 
40
42
 
@@ -231,6 +233,10 @@ module Nurego
231
233
  begin
232
234
  error_obj = Nurego::JSON.load(rbody)
233
235
  error_obj = Util.symbolize_names(error_obj)
236
+ # todo: remove creating :error from description when bss return is consistent
237
+ if error_obj[:description]
238
+ error_obj[:error] = { code:rcode, message:error_obj[:description]}
239
+ end
234
240
  error = (error_obj && error_obj[:error]) or raise NuregoError.new # escape from parsing
235
241
 
236
242
  rescue MultiJson::DecodeError, NuregoError
@@ -7,8 +7,8 @@ module Nurego
7
7
  Util.convert_to_nurego_object(response, api_key)
8
8
  end
9
9
 
10
- def organizations
11
- Organization.all({:customer => id }, @api_key)
10
+ def organization
11
+ Nurego::Organization.retrieve(id: self[:organization_id])
12
12
  end
13
13
 
14
14
  def self.me_url
@@ -6,21 +6,13 @@ module Nurego
6
6
  def set_usage(feature_id, amount)
7
7
  payload = {
8
8
  feature_id: feature_id,
9
- organization: id,
10
9
  amount: amount,
11
10
  }
12
- response, api_key = Nurego.request(:put, "/v1/entitlements/usage", nil, payload)
11
+ response, api_key = Nurego.request(:put, "/v1/organizations/#{id}/entitlements/usage", nil, payload)
13
12
  end
14
13
 
15
- def is_allowed(features)
16
- payload = {
17
- :organization => id,
18
- }
19
-
20
- features = features.is_a?(Array) ? features : [features]
21
- features_url = structure_sensitive_mimic_to_query(features, 'features')
22
- response, api_key = Nurego.request(:get, "/v1/entitlements/allowed?#{features_url}",
23
- nil, payload)
14
+ def self.all(organization_id, filters={}, api_key=nil)
15
+ response, api_key = Nurego.request(:get, "/v1/organizations/#{organization_id}/entitlements", api_key, filters)
24
16
  Util.convert_to_nurego_object(response, api_key)
25
17
  end
26
18
 
@@ -0,0 +1,13 @@
1
+ module Nurego
2
+ class LegalDoc < APIResource
3
+
4
+ def self.retrieve(params = {}, api_key = nil)
5
+ raise NotImplementedError.new("Docs cannot be retrieved with ID. Retrieve a legal document using search parameters") if
6
+ !params.is_a?(Hash) || params[:id]
7
+
8
+ response, api_key = Nurego.request(:get, self.url, api_key, params)
9
+ Util.convert_to_nurego_object(response, api_key)
10
+ end
11
+
12
+ end
13
+ end
@@ -1,4 +1,5 @@
1
1
  module Nurego
2
+
2
3
  class Offering < APIResource
3
4
 
4
5
  def self.retrieve(id, api_key = nil)
@@ -13,5 +14,6 @@ module Nurego
13
14
  def plans
14
15
  Plan.all({:offering => id }, @api_key)
15
16
  end
17
+
16
18
  end
17
19
  end
@@ -15,12 +15,12 @@ module Nurego
15
15
  Bill.all({ :organization => id }, @api_key)[:bills]
16
16
  end
17
17
 
18
- def self.entitlements(params = {}, api_key = nil)
19
- Entitlement.all({:organization => params[:customer_id], :feature_id => params[:feature_id] }, api_key)
18
+ def self.entitlements(organization_id, params = {}, api_key = nil)
19
+ Entitlement.all(organization_id, {:feature_id => params[:feature_id] }, api_key)
20
20
  end
21
21
 
22
22
  def entitlements(feature_id = nil)
23
- Entitlement.all({:organization => id, :feature_id => feature_id, :provider_name => 'internal' }, @api_key)
23
+ Entitlement.all(id, {:feature_id => feature_id, :external_ids => 'false' }, @api_key)
24
24
  end
25
25
 
26
26
  def plan(params = {}, api_key = nil)
@@ -9,7 +9,15 @@ module Nurego
9
9
  customer
10
10
  end
11
11
 
12
+ def self.find_by_external_id(external_id, params = { })
13
+ response, api_key = Nurego.request(:get, find_by_external_id_url(external_id), @api_key, params)
14
+ Util.convert_to_nurego_object(response, api_key)
15
+ end
16
+
12
17
  private
18
+ def self.find_by_external_id_url(external_id)
19
+ url + "?instance_id=#{ external_id }"
20
+ end
13
21
 
14
22
  def complete_url
15
23
  url + '/complete'
@@ -0,0 +1,56 @@
1
+ module Nurego
2
+
3
+ class Service < APIResource
4
+
5
+ def to_cloud_foundry_catalog
6
+ service_to_cloud_foundry_catalog.to_json
7
+ end
8
+
9
+ private
10
+
11
+ def service_to_cloud_foundry_catalog
12
+ cf_catalog = {
13
+ offer_id: self.offerings.first['id'],
14
+ offer_name: self.offerings.first['name'],
15
+ offer_description: self.offerings.first['description'],
16
+ services: []
17
+ }
18
+ cf_service = {
19
+ # required
20
+ id: self['id'],
21
+ name: self['name'],
22
+ description: self['description'],
23
+ bindable: true,
24
+ plans: []
25
+
26
+ ## possible
27
+ # tags: [],
28
+ # metadata: Object,
29
+ # requires: [],
30
+ # plan_updateable: true,
31
+ # dashboard_client: Object {id,secret,redirect_uri}
32
+
33
+ }
34
+ self.offerings.first['plans']['data'].each do | nurego_plan |
35
+ cf_plan = {
36
+ # required
37
+ id: nurego_plan['id'],
38
+ name: nurego_plan['name'],
39
+ description: nurego_plan['description'],
40
+
41
+ ## possible
42
+ # metadata: Object,
43
+ # free: true,
44
+ }
45
+
46
+ recurring = nurego_plan['features']['data'].find { | feature | feature['element_type'] == 'recurring' }
47
+ cf_plan[:free] = !(recurring && recurring['price'] > 0)
48
+
49
+ cf_service[:plans] << cf_plan # Add plans to the service
50
+ end
51
+ cf_catalog[:services] << cf_service # Add service to offer
52
+
53
+ cf_catalog
54
+ end
55
+ end
56
+ end
@@ -24,6 +24,7 @@ module Nurego
24
24
  'connector' => Connector,
25
25
  'passwordreset' => PasswordReset,
26
26
  'offering' => Offering,
27
+ 'service' => Service,
27
28
  'plan' => Plan,
28
29
  'feature' => Feature,
29
30
  'paymentmethod' => PaymentMethod,
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nurego
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.17
4
+ version: 1.1.18
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Ilia Gilderman
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-02-25 00:00:00.000000000 Z
12
+ date: 2015-05-27 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rest-client
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: mime-types
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: multi_json
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ! '>='
46
52
  - !ruby/object:Gem::Version
@@ -51,6 +57,7 @@ dependencies:
51
57
  type: :runtime
52
58
  prerelease: false
53
59
  version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
54
61
  requirements:
55
62
  - - ! '>='
56
63
  - !ruby/object:Gem::Version
@@ -61,6 +68,7 @@ dependencies:
61
68
  - !ruby/object:Gem::Dependency
62
69
  name: cf-uaa-lib
63
70
  requirement: !ruby/object:Gem::Requirement
71
+ none: false
64
72
  requirements:
65
73
  - - '='
66
74
  - !ruby/object:Gem::Version
@@ -68,6 +76,7 @@ dependencies:
68
76
  type: :runtime
69
77
  prerelease: false
70
78
  version_requirements: !ruby/object:Gem::Requirement
79
+ none: false
71
80
  requirements:
72
81
  - - '='
73
82
  - !ruby/object:Gem::Version
@@ -75,6 +84,7 @@ dependencies:
75
84
  - !ruby/object:Gem::Dependency
76
85
  name: rake
77
86
  requirement: !ruby/object:Gem::Requirement
87
+ none: false
78
88
  requirements:
79
89
  - - ! '>='
80
90
  - !ruby/object:Gem::Version
@@ -82,6 +92,7 @@ dependencies:
82
92
  type: :development
83
93
  prerelease: false
84
94
  version_requirements: !ruby/object:Gem::Requirement
95
+ none: false
85
96
  requirements:
86
97
  - - ! '>='
87
98
  - !ruby/object:Gem::Version
@@ -89,6 +100,7 @@ dependencies:
89
100
  - !ruby/object:Gem::Dependency
90
101
  name: uuidtools
91
102
  requirement: !ruby/object:Gem::Requirement
103
+ none: false
92
104
  requirements:
93
105
  - - ! '>='
94
106
  - !ruby/object:Gem::Version
@@ -96,6 +108,7 @@ dependencies:
96
108
  type: :development
97
109
  prerelease: false
98
110
  version_requirements: !ruby/object:Gem::Requirement
111
+ none: false
99
112
  requirements:
100
113
  - - ! '>='
101
114
  - !ruby/object:Gem::Version
@@ -103,6 +116,7 @@ dependencies:
103
116
  - !ruby/object:Gem::Dependency
104
117
  name: rspec
105
118
  requirement: !ruby/object:Gem::Requirement
119
+ none: false
106
120
  requirements:
107
121
  - - ! '>='
108
122
  - !ruby/object:Gem::Version
@@ -110,6 +124,7 @@ dependencies:
110
124
  type: :development
111
125
  prerelease: false
112
126
  version_requirements: !ruby/object:Gem::Requirement
127
+ none: false
113
128
  requirements:
114
129
  - - ! '>='
115
130
  - !ruby/object:Gem::Version
@@ -117,6 +132,7 @@ dependencies:
117
132
  - !ruby/object:Gem::Dependency
118
133
  name: simplecov
119
134
  requirement: !ruby/object:Gem::Requirement
135
+ none: false
120
136
  requirements:
121
137
  - - ! '>='
122
138
  - !ruby/object:Gem::Version
@@ -124,6 +140,7 @@ dependencies:
124
140
  type: :development
125
141
  prerelease: false
126
142
  version_requirements: !ruby/object:Gem::Requirement
143
+ none: false
127
144
  requirements:
128
145
  - - ! '>='
129
146
  - !ruby/object:Gem::Version
@@ -131,6 +148,7 @@ dependencies:
131
148
  - !ruby/object:Gem::Dependency
132
149
  name: simplecov-rcov
133
150
  requirement: !ruby/object:Gem::Requirement
151
+ none: false
134
152
  requirements:
135
153
  - - ! '>='
136
154
  - !ruby/object:Gem::Version
@@ -138,6 +156,7 @@ dependencies:
138
156
  type: :development
139
157
  prerelease: false
140
158
  version_requirements: !ruby/object:Gem::Requirement
159
+ none: false
141
160
  requirements:
142
161
  - - ! '>='
143
162
  - !ruby/object:Gem::Version
@@ -145,6 +164,7 @@ dependencies:
145
164
  - !ruby/object:Gem::Dependency
146
165
  name: simplecov-csv
147
166
  requirement: !ruby/object:Gem::Requirement
167
+ none: false
148
168
  requirements:
149
169
  - - ! '>='
150
170
  - !ruby/object:Gem::Version
@@ -152,6 +172,7 @@ dependencies:
152
172
  type: :development
153
173
  prerelease: false
154
174
  version_requirements: !ruby/object:Gem::Requirement
175
+ none: false
155
176
  requirements:
156
177
  - - ! '>='
157
178
  - !ruby/object:Gem::Version
@@ -159,6 +180,7 @@ dependencies:
159
180
  - !ruby/object:Gem::Dependency
160
181
  name: rack-test
161
182
  requirement: !ruby/object:Gem::Requirement
183
+ none: false
162
184
  requirements:
163
185
  - - ! '>='
164
186
  - !ruby/object:Gem::Version
@@ -166,6 +188,7 @@ dependencies:
166
188
  type: :development
167
189
  prerelease: false
168
190
  version_requirements: !ruby/object:Gem::Requirement
191
+ none: false
169
192
  requirements:
170
193
  - - ! '>='
171
194
  - !ruby/object:Gem::Version
@@ -173,6 +196,7 @@ dependencies:
173
196
  - !ruby/object:Gem::Dependency
174
197
  name: ci_reporter
175
198
  requirement: !ruby/object:Gem::Requirement
199
+ none: false
176
200
  requirements:
177
201
  - - ! '>='
178
202
  - !ruby/object:Gem::Version
@@ -180,6 +204,7 @@ dependencies:
180
204
  type: :development
181
205
  prerelease: false
182
206
  version_requirements: !ruby/object:Gem::Requirement
207
+ none: false
183
208
  requirements:
184
209
  - - ! '>='
185
210
  - !ruby/object:Gem::Version
@@ -192,48 +217,50 @@ executables: []
192
217
  extensions: []
193
218
  extra_rdoc_files: []
194
219
  files:
195
- - Gemfile
196
- - Gemfile.lock
197
- - LICENSE
198
- - README.md
199
- - Rakefile
200
- - VERSION
201
- - examples/enumerate_plans.rb
202
- - lib/data/ca-certificates.crt
203
220
  - lib/nurego.rb
204
- - lib/nurego/api_operations/create.rb
205
- - lib/nurego/api_operations/delete.rb
206
- - lib/nurego/api_operations/list.rb
221
+ - lib/nurego/entitlement.rb
222
+ - lib/nurego/legal_doc.rb
223
+ - lib/nurego/password_reset.rb
224
+ - lib/nurego/discount.rb
225
+ - lib/nurego/util.rb
226
+ - lib/nurego/registration.rb
227
+ - lib/nurego/version.rb
228
+ - lib/nurego/bill.rb
229
+ - lib/nurego/json.rb
230
+ - lib/nurego/instance.rb
231
+ - lib/nurego/list_object.rb
232
+ - lib/nurego/payment_method.rb
233
+ - lib/nurego/offering.rb
234
+ - lib/nurego/plan.rb
235
+ - lib/nurego/feature.rb
236
+ - lib/nurego/auth.rb
207
237
  - lib/nurego/api_operations/update.rb
238
+ - lib/nurego/api_operations/list.rb
239
+ - lib/nurego/api_operations/delete.rb
240
+ - lib/nurego/api_operations/create.rb
241
+ - lib/nurego/organization.rb
208
242
  - lib/nurego/api_resource.rb
209
- - lib/nurego/auth.rb
210
- - lib/nurego/bill.rb
211
243
  - lib/nurego/connector.rb
244
+ - lib/nurego/nurego_object.rb
212
245
  - lib/nurego/customer.rb
213
- - lib/nurego/discount.rb
214
- - lib/nurego/entitlement.rb
246
+ - lib/nurego/extensions.rb
247
+ - lib/nurego/errors/card_error.rb
248
+ - lib/nurego/errors/authentication_error.rb
215
249
  - lib/nurego/errors/api_connection_error.rb
216
250
  - lib/nurego/errors/api_error.rb
217
- - lib/nurego/errors/authentication_error.rb
218
- - lib/nurego/errors/card_error.rb
219
251
  - lib/nurego/errors/invalid_request_error.rb
220
252
  - lib/nurego/errors/nurego_error.rb
221
253
  - lib/nurego/errors/user_not_found_error.rb
222
- - lib/nurego/extensions.rb
223
- - lib/nurego/feature.rb
224
- - lib/nurego/instance.rb
225
- - lib/nurego/json.rb
226
- - lib/nurego/list_object.rb
227
- - lib/nurego/nurego_object.rb
228
- - lib/nurego/offering.rb
229
- - lib/nurego/organization.rb
230
- - lib/nurego/password_reset.rb
231
- - lib/nurego/payment_method.rb
232
- - lib/nurego/plan.rb
233
- - lib/nurego/registration.rb
234
- - lib/nurego/util.rb
235
- - lib/nurego/version.rb
254
+ - lib/nurego/service.rb
255
+ - lib/data/ca-certificates.crt
256
+ - examples/enumerate_plans.rb
257
+ - Gemfile
258
+ - Gemfile.lock
236
259
  - nurego.gemspec
260
+ - Rakefile
261
+ - VERSION
262
+ - LICENSE
263
+ - README.md
237
264
  - spec/unit/nurego/api_resource_spec.rb
238
265
  - spec/unit/nurego/customer_spec.rb
239
266
  - spec/unit/nurego/list_object_spec.rb
@@ -242,26 +269,27 @@ files:
242
269
  homepage: http://www.nurego.com/api
243
270
  licenses:
244
271
  - MIT
245
- metadata: {}
246
272
  post_install_message:
247
273
  rdoc_options: []
248
274
  require_paths:
249
275
  - lib
250
276
  required_ruby_version: !ruby/object:Gem::Requirement
277
+ none: false
251
278
  requirements:
252
279
  - - ! '>='
253
280
  - !ruby/object:Gem::Version
254
281
  version: '0'
255
282
  required_rubygems_version: !ruby/object:Gem::Requirement
283
+ none: false
256
284
  requirements:
257
285
  - - ! '>='
258
286
  - !ruby/object:Gem::Version
259
287
  version: '0'
260
288
  requirements: []
261
289
  rubyforge_project:
262
- rubygems_version: 2.2.2
290
+ rubygems_version: 1.8.24
263
291
  signing_key:
264
- specification_version: 4
292
+ specification_version: 3
265
293
  summary: Ruby bindings for the Nurego API
266
294
  test_files:
267
295
  - spec/unit/nurego/api_resource_spec.rb
@@ -269,3 +297,4 @@ test_files:
269
297
  - spec/unit/nurego/list_object_spec.rb
270
298
  - spec/unit/nurego/util_spec.rb
271
299
  - spec/unit/test_helper.rb
300
+ has_rdoc:
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- Y2IzNWEyYzgzODc0MGI5ZThjYjRiOGEwZWZhNGJkNjMxMzQwNGIwZA==
5
- data.tar.gz: !binary |-
6
- NDc5ZmM0MTA5ZTc3NzQ3NDc0ZTY3YmM2YzBkYWU3YzBhOGEyOTNkMA==
7
- SHA512:
8
- metadata.gz: !binary |-
9
- MTg0YTQyY2IyMjg3YzM4NjI5NDZiMThiOThmZTFjZmExYWNlM2Y2MDhjMGM2
10
- MWYwMDVjNTVjNmU1MzdiM2IxOTQxNzg0OTEzNzU3NzhhMzRmNzNiMzAzZGY2
11
- NDUwMzk0MTYwNDdiODdhYjU0YjU5MjdlYmViN2I2ODIxMzIxMzI=
12
- data.tar.gz: !binary |-
13
- OWQ0YzE4NDcwNDExNmQ4YTc4OWU5MzM4ZDhhMjVjYjEzZmJjM2NmNGFhZTk0
14
- MzcxYTIxZmU0ZWJjNGNmODkxNWJmNzMyNjFhMzRhZjkwZTFiMWFlZjE3ZmYy
15
- ZDBlMTcxYmY3ZDZkM2Y3NGY3ZmUxOGFiYWJiYjNmZjM3NWE5NGU=