big_door 0.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.
Files changed (73) hide show
  1. data/History.txt +4 -0
  2. data/Manifest.txt +72 -0
  3. data/README.rdoc +170 -0
  4. data/Rakefile +32 -0
  5. data/autotest/discover.rb +1 -0
  6. data/big_door.gemspec +56 -0
  7. data/bin/example.rb +93 -0
  8. data/features/resources/attribute.feature +41 -0
  9. data/features/resources/currency_type.feature +12 -0
  10. data/features/resources/end_user.feature +92 -0
  11. data/features/resources/named_award_collection.feature +42 -0
  12. data/features/resources/named_good_collection.feature +40 -0
  13. data/features/resources/named_level_collection.feature +44 -0
  14. data/features/resources/url.feature +41 -0
  15. data/features/step_definitions/resources_steps.rb +370 -0
  16. data/features/support/env.rb +9 -0
  17. data/lib/big_door/attribute.rb +21 -0
  18. data/lib/big_door/award.rb +24 -0
  19. data/lib/big_door/client.rb +281 -0
  20. data/lib/big_door/currency.rb +26 -0
  21. data/lib/big_door/currency_balance.rb +27 -0
  22. data/lib/big_door/currency_type.rb +29 -0
  23. data/lib/big_door/end_user.rb +32 -0
  24. data/lib/big_door/good.rb +32 -0
  25. data/lib/big_door/leaderboard.rb +41 -0
  26. data/lib/big_door/level.rb +25 -0
  27. data/lib/big_door/named_award.rb +24 -0
  28. data/lib/big_door/named_award_collection.rb +21 -0
  29. data/lib/big_door/named_good.rb +24 -0
  30. data/lib/big_door/named_good_collection.rb +22 -0
  31. data/lib/big_door/named_level.rb +26 -0
  32. data/lib/big_door/named_level_collection.rb +23 -0
  33. data/lib/big_door/named_transaction.rb +21 -0
  34. data/lib/big_door/named_transaction_group.rb +74 -0
  35. data/lib/big_door/profile.rb +28 -0
  36. data/lib/big_door/resource.rb +204 -0
  37. data/lib/big_door/resource_end_user.rb +84 -0
  38. data/lib/big_door/resource_with_association.rb +37 -0
  39. data/lib/big_door/resource_with_parent.rb +43 -0
  40. data/lib/big_door/url.rb +21 -0
  41. data/lib/big_door.rb +40 -0
  42. data/script/console +10 -0
  43. data/script/destroy +14 -0
  44. data/script/generate +14 -0
  45. data/spec/big_door/attribute_spec.rb +18 -0
  46. data/spec/big_door/award_spec.rb +19 -0
  47. data/spec/big_door/client_spec.rb +163 -0
  48. data/spec/big_door/currency_balance_spec.rb +14 -0
  49. data/spec/big_door/currency_spec.rb +81 -0
  50. data/spec/big_door/currency_type_spec.rb +21 -0
  51. data/spec/big_door/end_user_spec.rb +23 -0
  52. data/spec/big_door/good_spec.rb +14 -0
  53. data/spec/big_door/leaderboard_spec.rb +15 -0
  54. data/spec/big_door/level_spec.rb +19 -0
  55. data/spec/big_door/named_award_collection_spec.rb +23 -0
  56. data/spec/big_door/named_award_spec.rb +23 -0
  57. data/spec/big_door/named_good_collection_spec.rb +23 -0
  58. data/spec/big_door/named_good_spec.rb +23 -0
  59. data/spec/big_door/named_level_collection_spec.rb +23 -0
  60. data/spec/big_door/named_level_spec.rb +24 -0
  61. data/spec/big_door/named_transaction_group_spec.rb +29 -0
  62. data/spec/big_door/named_transaction_spec.rb +23 -0
  63. data/spec/big_door/profile_spec.rb +19 -0
  64. data/spec/big_door/resource_end_user_spec.rb +22 -0
  65. data/spec/big_door/resource_spec.rb +22 -0
  66. data/spec/big_door/resource_with_association_spec.rb +23 -0
  67. data/spec/big_door/resource_with_parent_spec.rb +22 -0
  68. data/spec/big_door/url_spec.rb +23 -0
  69. data/spec/spec.opts +1 -0
  70. data/spec/spec_helper.rb +17 -0
  71. data/tasks/cucumber.rake +5 -0
  72. data/tasks/rspec.rake +29 -0
  73. metadata +263 -0
@@ -0,0 +1,281 @@
1
+ require 'restclient'
2
+ require 'addressable/uri'
3
+ require 'json'
4
+ require 'digest/sha1'
5
+ require 'uuidtools'
6
+
7
+ module BigDoor
8
+ #
9
+ # This module provides interface to BigDoor public REST API
10
+ #
11
+ DEFAULT_APP_HOST = 'http://api.bigdoor.com'
12
+
13
+ class Client
14
+ ##
15
+ # This class provides low-level interface to BigDoor public REST API
16
+ #
17
+ attr_accessor :app_key
18
+ attr_accessor :app_secret
19
+ attr_accessor :app_host
20
+
21
+ ##
22
+ # Creates new BigDoor::Client object
23
+ #
24
+ # @param [String] app_secret
25
+ # The API secret supplied by BigDoor. (see API Keys http://publisher.bigdoor.com/)
26
+ #
27
+ # @param [String] app_key
28
+ # The API key supplied by BigDoor. (see API Keys http://publisher.bigdoor.com/)
29
+ #
30
+ # @param [String] app_host
31
+ # An alternative host to enable use with testing servers.
32
+ #
33
+ def initialize( app_secret, app_key, app_host = DEFAULT_APP_HOST )
34
+ @app_key = app_key
35
+ @app_secret = app_secret
36
+ @app_host = app_host
37
+
38
+ @base_url = "/api/publisher/#{@app_key}"
39
+ end
40
+
41
+ ##
42
+ # Converts params hash to string
43
+ #
44
+ # @param params
45
+ # Hash representing request params, except +sig+ and +format+ fields
46
+ #
47
+ # @return [String] Request params concatanated
48
+ #
49
+ def flatten_params( params )
50
+ raise ArgumentError.new('params should be defined') unless params
51
+ result = ''
52
+ keys = params.keys.sort{|a,b| a.to_s <=> b.to_s}
53
+ keys.each do |key|
54
+ next if key == 'sig'
55
+ next if key == 'format'
56
+ result += "#{key}#{params[key]}"
57
+ end
58
+ $log.debug(sprintf "flatten_params = %s", result )
59
+ result
60
+ end
61
+
62
+ ##
63
+ # Generate appropriate request signature given a url and optional
64
+ # params and payload.
65
+ #
66
+ # @param [String] url
67
+ # The full URL, including the base /api/publisher/[app_key]
68
+ #
69
+ # @param [Hash] params
70
+ # The parameters to be sent via the query string.
71
+ #
72
+ # @param [Hash] payload
73
+ # The parameters to be sent via the PUT or POST request body.
74
+ #
75
+ # @return [String] request signature to be sent as +sign+ query param
76
+ #
77
+ def generate_signature( url, params = nil, payload = nil )
78
+ signature = url
79
+ signature += flatten_params( params ) if params
80
+ signature += flatten_params( payload ) if payload
81
+ signature += @app_secret
82
+
83
+ $log.debug(sprintf "signature = %s", signature )
84
+
85
+ Digest::SHA256.hexdigest(signature)
86
+ end
87
+
88
+ ##
89
+ # Generate random token for request
90
+ #
91
+ # @return [String] Random token to be sent as +token+
92
+ def generate_token
93
+ UUIDTools::UUID.random_create.hexdigest
94
+ end
95
+
96
+ ##
97
+ # Add requered fields to params and payload
98
+ #
99
+ # @param [Symbol] method
100
+ # HTTP request method
101
+ #
102
+ # @param [Hash] params
103
+ # The parameters to be sent via the query string.
104
+ #
105
+ # @param [Hash] payload
106
+ # The parameters to be sent via the PUT or POST request body.
107
+ #
108
+ # @return [Hash, Hash] Updated params and payload
109
+ #
110
+ def add_required_params( method, params, payload )
111
+ raise ArgumentError.new('unkown method') unless [:get, :put, :post, :delete].include?(method)
112
+
113
+ params = {} unless params
114
+ payload = {} unless payload
115
+
116
+ is_postish = [:post, :put].include?(method)
117
+
118
+ if is_postish && payload.key?('time')
119
+ params['time'] = payload['time']
120
+ end
121
+ if params && !params.key?('time')
122
+ params['time'] = Time.now.to_i.to_s
123
+ end
124
+ if is_postish && !payload.key?('time')
125
+ payload['time'] = params['time']
126
+ end
127
+
128
+ if is_postish && !payload.key?('token')
129
+ payload['token'] = self.generate_token
130
+ end
131
+
132
+ if method == :delete && !params.key?('delete_token')
133
+ params['delete_token'] = self.generate_token
134
+ end
135
+
136
+ [params, payload]
137
+ end
138
+
139
+ ##
140
+ # Sign request
141
+ #
142
+ # @param [Symbol] method
143
+ # HTTP request method
144
+ #
145
+ # @param [String] url
146
+ # HTTP request URL
147
+ #
148
+ # @param [Hash] params
149
+ # The parameters to be sent via the query string.
150
+ #
151
+ # @param [Hash] payload
152
+ # The parameters to be sent via the PUT or POST request body.
153
+ #
154
+ # @return [Hash, Hash] Updated params and payload
155
+ #
156
+ def sign_request( method, url, params, payload )
157
+
158
+ params, payload = add_required_params( method, params, payload )
159
+
160
+ params['sig'] = self.generate_signature( url, params, payload )
161
+
162
+ [params, payload]
163
+ end
164
+
165
+ ##
166
+ # Makes GET HTTP request to API with optional params
167
+ #
168
+ # @param [String] url
169
+ # relative API end point (eg. currency_type/1 )
170
+ #
171
+ # @param [Hash] params
172
+ # The parameters to be sent via the query string.
173
+ #
174
+ # @return [Hash] Decoded JSON response
175
+ #
176
+ def get( url, params = nil)
177
+ do_request( :get, url, params)
178
+ end
179
+
180
+ ##
181
+ # Makes POST HTTP request to API with optional params and
182
+ # www-form-urlencoded payload
183
+ #
184
+ # @param [String] url
185
+ # relative API end point (eg. currency_type )
186
+ #
187
+ # @param [Hash] params
188
+ # The parameters to be sent via the query string.
189
+ #
190
+ # @param [Hash] payload
191
+ # The parameters to be sent via the PUT or POST request body.
192
+ #
193
+ # @return [Hash] Decoded JSON response
194
+ #
195
+ def post( url, params, payload )
196
+ do_request( :post, url, params, payload)
197
+ end
198
+
199
+ ##
200
+ # Makes PUT HTTP request to API with optional params and
201
+ # www-form-urlencoded payload
202
+ #
203
+ # @param [String] url
204
+ # relative API end point (eg. currency/12345 )
205
+ #
206
+ # @param [Hash] params
207
+ # The parameters to be sent via the query string.
208
+ #
209
+ # @param [Hash] payload
210
+ # The parameters to be sent via the PUT or POST request body.
211
+ #
212
+ # @return [Hash] Decoded JSON response
213
+ #
214
+ def put( url, params, payload )
215
+ do_request( :put, url, params, payload)
216
+ end
217
+
218
+ ##
219
+ # Makes DELETE HTTP request to API with optional params
220
+ #
221
+ # @param [String] url
222
+ # relative API end point (eg. currency/12345 )
223
+ #
224
+ # @param [Hash] params
225
+ # The parameters to be sent via the query string.
226
+ #
227
+ # @return [String] should return empty string in case of success
228
+ #
229
+ def delete( url, params = nil)
230
+ do_request( :delete, url, params)
231
+ end
232
+
233
+ ##
234
+ # Makes HTTP request to API with optional params and
235
+ # www-form-urlencoded payload
236
+ #
237
+ # @param [Symbol] method
238
+ # HTTP request method
239
+ #
240
+ # @param [String] url
241
+ # relative API end point (eg. currency/12345 )
242
+ #
243
+ # @param [Hash] params
244
+ # The parameters to be sent via the query string.
245
+ #
246
+ # @param [Hash] payload
247
+ # The parameters to be sent via the PUT or POST request body.
248
+ #
249
+ # @return [Hash] Decoded JSON response or empty/undefined string
250
+ #
251
+ def do_request( method, end_point, params = nil, payload = nil )
252
+ headers = {
253
+ 'User-Agent' => "BigDoorKit-Ruby/#{VERSION}",
254
+ }
255
+
256
+ if [:post, :put].include?(method)
257
+ headers['Content-Type'] = 'application/x-www-form-urlencoded'
258
+ end
259
+
260
+ params, payload = sign_request( method, @base_url + '/' + end_point, params, payload )
261
+
262
+ url = Addressable::URI.parse( @app_host + @base_url + '/' + end_point )
263
+ $log.debug( sprintf 'url object = %s', url.inspect )
264
+ $log.debug( sprintf 'params = %s', params.inspect )
265
+ url.query_values = params
266
+
267
+ $log.debug( sprintf 'method url = %s %s', method, url )
268
+ $log.debug( sprintf 'payload = %s', payload.inspect )
269
+
270
+ response = RestClient::Request.execute(:method => method, :url => url.to_s, :payload => payload, :headers => headers, :raw_response => false)
271
+ if response && !response.empty?
272
+ $log.debug( sprintf 'undecoded_response = %s', response.inspect )
273
+ decoded_response = JSON.parse( response )
274
+ $log.debug( sprintf 'decoded_response = %s', decoded_response.inspect )
275
+ decoded_response[0]
276
+ end
277
+ rescue RestClient::Exception => ex
278
+ $log.debug(sprintf 'Error response body: %s', ex.http_body)
279
+ end
280
+ end
281
+ end
@@ -0,0 +1,26 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides Currency Resource object
4
+ # corresponding to /currency BigDoor API end point
5
+ #
6
+ class Currency < Resource
7
+ ##
8
+ # Initialize new Currency object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "Currency init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ 'currency_type_id' => 1,
17
+ 'currency_type_title' => '',
18
+ 'exchange_rate' => 1,
19
+ 'relative_weight' => 1,
20
+ }
21
+ default_values.merge!( hash )
22
+ $log.debug( "Currency default_values = #{default_values.inspect}")
23
+ super( default_values )
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,27 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides CurrencyBalance Resource object
4
+ # corresponding to /end_user/{id}/currency_balance BigDoor API end point
5
+ #
6
+ class CurrencyBalance < ResourceEndUser
7
+ ##
8
+ # Initialize new CurrencyBalance object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "CurrencyBalance init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ 'read_only' => 0,
17
+ 'adjustment_amount' => 0,
18
+ 'curr_balance' => 0,
19
+ 'prev_balance' => 0,
20
+ 'transaction_group_id' => nil,
21
+ }
22
+ default_values.merge!( hash )
23
+ $log.debug( "CurrencyBalance default_values = #{default_values.inspect}")
24
+ super( default_values )
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,29 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides CurrencyType Resource object
4
+ # corresponding to /currency_type BigDoor API end point
5
+ #
6
+ class CurrencyType < Resource
7
+ ##
8
+ # Initialize new CurrencyType object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "CurrencyType init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ 'read_only' => 1,
17
+ 'title' => '',
18
+ 'description' => '',
19
+ 'has_dollar_exchange_rate_integrity' => 0,
20
+ 'can_be_cross_publisher' => 0,
21
+ 'can_be_purchased' => 0,
22
+ 'can_be_rewarded' => 0,
23
+ }
24
+ default_values.merge!( hash )
25
+ $log.debug( "CurrencyType default_values = #{default_values.inspect}")
26
+ super( default_values )
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,32 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides EndUser Resource object
4
+ # corresponding to /end_user BigDoor API end point
5
+ #
6
+ class EndUser < Resource
7
+
8
+ ##
9
+ # Initialize new EndUser object with optional Hash
10
+ #
11
+ # @param [Hash] hash
12
+ # Optional fields to assign to object
13
+ #
14
+ def initialize( hash = {} )
15
+ $log.debug( "EndUser init with hash = #{hash.inspect}")
16
+ default_values = {
17
+ 'end_user_login' => '',
18
+ }
19
+ default_values.merge!( hash )
20
+ $log.debug( "EndUser default_values = #{default_values.inspect}")
21
+ super( default_values )
22
+ end
23
+
24
+ ##
25
+ # Overrides object resource id
26
+ #
27
+ # @return [String] resource id
28
+ def resource_id
29
+ self.end_user_login
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides Good Resource object
4
+ # corresponding to /end_user/{id}/good BigDoor API end point
5
+ #
6
+ class Good < ResourceEndUser
7
+ ##
8
+ # Initialize new Good object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "Good init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ 'named_good_id' => nil,
17
+ }
18
+ default_values.merge!( hash )
19
+ $log.debug( "Good default_values = #{default_values.inspect}")
20
+ super( default_values )
21
+ end
22
+
23
+ ##
24
+ # Override parent_id_attr from ResourceEndUser Class
25
+ #
26
+ # @return [String] Parent Id attribute
27
+ #
28
+ def parent_id_attr
29
+ 'good_receiver'
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,41 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides Leaderboard Resource object
4
+ # corresponding to /leaderboard BigDoor API end point
5
+ #
6
+ class Leaderboard < Resource
7
+ ##
8
+ # Initialize new Leaderboard object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "Leaderboard init with hash = #{hash.inspect}")
15
+ default_values = { }
16
+ default_values.merge!( hash )
17
+ $log.debug( "Leaderboard default_values = #{default_values.inspect}")
18
+ super( default_values )
19
+ end
20
+ ##
21
+ # Executes Leaderboard retrieval
22
+ #
23
+ # @param [Hash] params
24
+ # request params
25
+ #
26
+ # @param [BigDoor::Client] client
27
+ # Initialized BigDoor::Client object
28
+ #
29
+ # @return [Array] array of Hashes representing Leaderboard
30
+ #
31
+ def execute( params, client )
32
+ $log.debug('execute leaderboard');
33
+
34
+ uri = sprintf '%s/execute', end_point
35
+
36
+ $log.debug( sprintf 'execute uri = %s', uri )
37
+ result = client.get( uri , params )
38
+ $log.debug(sprintf 'result = %s', result.inspect );
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,25 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides Level Resource object
4
+ # corresponding to /end_user/{id}/level BigDoor API end point
5
+ #
6
+ class Level < ResourceEndUser
7
+ ##
8
+ # Initialize new Level object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "Level init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ 'transaction_group_id' => 0,
17
+ 'end_user_login' => nil,
18
+ 'named_level_id' => nil,
19
+ }
20
+ default_values.merge!( hash )
21
+ $log.debug( "Level default_values = #{default_values.inspect}")
22
+ super( default_values )
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,24 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides NamedAward Resource object
4
+ # corresponding to /named_award BigDoor API end point
5
+ #
6
+ class NamedAward < ResourceWithParent
7
+ ##
8
+ # Initialize new NamedAward object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "NamedAward init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ 'named_award_collection_id' => nil,
17
+ 'relative_weight' => 0,
18
+ }
19
+ default_values.merge!( hash )
20
+ $log.debug( "NamedAward default_values = #{default_values.inspect}")
21
+ super( default_values )
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,21 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides NamedAwardCollection Resource object
4
+ # corresponding to /named_award_collection BigDoor API end point
5
+ #
6
+ class NamedAwardCollection < Resource
7
+ ##
8
+ # Initialize new NamedAwardCollection object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "NamedAwardCollection init with hash = #{hash.inspect}")
15
+ default_values = { }
16
+ default_values.merge!( hash )
17
+ $log.debug( "NamedAwardCollection default_values = #{default_values.inspect}")
18
+ super( default_values )
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,24 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides NamedGood Resource object
4
+ # corresponding to /named_good BigDoor API end point
5
+ #
6
+ class NamedGood < ResourceWithParent
7
+ ##
8
+ # Initialize new NamedGood object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "NamedGood init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ 'named_good_collection_id' => nil,
17
+ 'relative_weight' => 0,
18
+ }
19
+ default_values.merge!( hash )
20
+ $log.debug( "NamedGood default_values = #{default_values.inspect}")
21
+ super( default_values )
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,22 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides NamedGoodCollection Resource object
4
+ # corresponding to /named_good_collection BigDoor API end point
5
+ #
6
+ class NamedGoodCollection < Resource
7
+ ##
8
+ # Initialize new NamedGoodCollection object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "NamedGoodCollection init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ }
17
+ default_values.merge!( hash )
18
+ $log.debug( "NamedGoodCollection default_values = #{default_values.inspect}")
19
+ super( default_values )
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,26 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides NamedLevel Resource object
4
+ # corresponding to /named_level BigDoor API end point
5
+ #
6
+ class NamedLevel < ResourceWithParent
7
+ ##
8
+ # Initialize new NamedLevel object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "NamedLevel init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ 'named_level_collection_id' => nil,
17
+ 'relative_weight' => 0,
18
+ 'threshold' => 0,
19
+ }
20
+ default_values.merge!( hash )
21
+ $log.debug( "NamedLevel default_values = #{default_values.inspect}")
22
+ super( default_values )
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,23 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides NamedLevelCollection Resource object
4
+ # corresponding to /named_level_collection BigDoor API end point
5
+ #
6
+ class NamedLevelCollection < Resource
7
+ ##
8
+ # Initialize new NamedLevelCollection object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "NamedLevelCollection init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ 'currency_id' => nil,
17
+ }
18
+ default_values.merge!( hash )
19
+ $log.debug( "NamedLevelCollection default_values = #{default_values.inspect}")
20
+ super( default_values )
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides NamedTransaction Resource object
4
+ # corresponding to /named_transaction BigDoor API end point
5
+ #
6
+ class NamedTransaction < Resource
7
+ ##
8
+ # Initialize new NamedTransaction object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "NamedTransaction init with hash = #{hash.inspect}")
15
+ default_values = { }
16
+ default_values.merge!( hash )
17
+ $log.debug( "NamedTransaction default_values = #{default_values.inspect}")
18
+ super( default_values )
19
+ end
20
+ end
21
+ end