big_door 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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