ige_isb_api 1.0.0 → 1.1.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
  SHA1:
3
- metadata.gz: eedefc82170ca579c704dfdf1e57c7ee9c26f678
4
- data.tar.gz: 2613b9f124480ec526c9bff89d767c2ac1a95bb8
3
+ metadata.gz: c47438d88348126a9e50ed3e6c849b56d734ee7f
4
+ data.tar.gz: f06f53b1ac22d56ddb88912b9ac787b0d219f1c8
5
5
  SHA512:
6
- metadata.gz: 3f272430acbef313ecf54b19121161f2d5af937477aece73f6dfa9e9111f627b53e469db6f74dc19ebc2e195e11b4b0582803b16b3f7bb40ff327e5761e2b46b
7
- data.tar.gz: f3f7ad6149cdd39b2d584f2dc78d2213ada3c4a9c0b6b376beee0c271011a64682142c3cc422429b0d8ecd7414b45ddab58c0d05fb6930297dcec596e69f3bf9
6
+ metadata.gz: f938f22dacadba7364913ba269ae4b419a8d3a0607dff51e6a7bf4d14a61fc71258253a67b3108cc010dd81fdae100774f14101a2ad97eb85b6ba4257aeadd2b
7
+ data.tar.gz: 23eef01e9c294551b7ea5c521f1251d60e1c1849f297e627acec9d2bb01bed7935081f2bf6925af82d999137c4b95fd0c00c69d3bc36f14bfea48f73cfff764c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ige_isb_api (1.0.0)
4
+ ige_isb_api (1.1.0)
5
5
  nokogiri
6
6
 
7
7
  GEM
@@ -201,6 +201,8 @@ module IGE_ISB_API
201
201
  warnings << {game: self, message: "Missing ':html' image in #{images.inspect}"} if images[:html].nil? || images[:html].empty?
202
202
  # => almost all games are missing the :v2 image completely so only warn if empty, not nil.
203
203
  warnings << {game: self, message: "Missing :v2 image in #{images.inspect}"} if !images[:v2].nil? && images[:v2].empty?
204
+ warnings << {game: self, message: "Unable to determine main image"} if self.main_image.empty?
205
+ warnings << {game: self, message: "Unable to determine thumbnail image"} if self.thumb_image.empty?
204
206
  return warnings
205
207
  end
206
208
 
@@ -374,8 +376,6 @@ module IGE_ISB_API
374
376
  errors << {game: self, message: "Missing type"} if self.game_type.nil? || self.game_type.empty?
375
377
  errors << {game: self, message: "Invalid game type"} unless IGE_ISB_API::Constants::ALLOWED_GAME_TYPES.include?(self.game_type)
376
378
  errors << {game: self, message: "Missing coin_min: coin_values are #{self.coin_values.inspect} coin: #{self.coin} max: #{self.coin_max}"} if self.coin_min.nil? || self.coin_min <= 0.0
377
- errors << {game: self, message: "Unable to determine main image"} if self.main_image.empty?
378
- errors << {game: self, message: "Unable to determine thumbnail image"} if self.thumb_image.empty?
379
379
  errors << {game: self, message: "Invalid wmode"} unless IGE_ISB_API::Constants::ALLOWED_MODES.include?(self.wmode)
380
380
  errors << {game: self, message: "Neither fun, nor real"} if !(self.fun? || self.real?)
381
381
  errors << {game: self, message: "Missing fun game info"} if (self.fun? && !self.has_info?(:fun))
@@ -57,6 +57,18 @@ module IGE_ISB_API
57
57
  'cur' => {:required => true, :type => 'currency_code', :length => 3},
58
58
  'wallet' => {:required => true, :type => 'string', :length => 32}
59
59
  },
60
+ 'cancel_withdrawal' => {
61
+ 'withdrawalid' => {:required => true, :type => 'int'}
62
+ },
63
+ 'get_history' => {
64
+ # nothing special
65
+ },
66
+ 'send_email' => {
67
+ 'email' => {:required => true, :type => 'string', :length => 32},
68
+ 'carte' => {:required => true, :type => 'string', :length => 32},
69
+ 'emailtemplate' => {:required => true, :type => 'string', :length => 32},
70
+ 'emailparameters' => {:required => true, :type => 'string', :length => 32}
71
+ },
60
72
  'limits' => {
61
73
  'limitationtype' => {:required => true, :type => 'limit'},
62
74
  'amount' => {:required => true, :type => 'int'},
@@ -93,8 +93,8 @@ module IGE_ISB_API
93
93
  password: @options[:password],
94
94
  cur: @options[:cur],
95
95
  txid: txid}.merge(opts).merge({ command: 'deposit' })
96
- reference = "#{@params[:wallet]}:#{@params[:reference]}#{@params[:cur]}"
97
- @params.merge!(reference: reference)
96
+ # reference = "#{@params[:wallet]}:#{@params[:reference]}#{@params[:cur]}"
97
+ # @params[:reference] = reference
98
98
  request = IGE_ISB_API.request(@params)
99
99
  resp = request.send
100
100
  response = JSON.parse(resp.body)
@@ -118,8 +118,60 @@ module IGE_ISB_API
118
118
  password: @options[:password],
119
119
  cur: @options[:cur],
120
120
  txid: txid}.merge(opts).merge({ command: 'withdrawal' })
121
- reference = "#{@params[:reference]}#{@params[:cur]}"
122
- @params.merge!(reference: reference)
121
+ @params[:reference] = "#{@params[:reference]}#{@params[:cur]}" unless @params[:reference][-3,3] == @params[:cur]
122
+ request = IGE_ISB_API.request(@params)
123
+ resp = request.send
124
+ response = JSON.parse(resp.body)
125
+ return response
126
+ end
127
+
128
+ # Each command has a label which is used by the casino to tag a group of interactions with ISB
129
+ # Additionally each transaction must include a unique transaction ID.
130
+ # the following options *must* be passed in.
131
+ # withdrawalid: the txid of the withdrawal to be cancelled,
132
+ def cancel_withdrawal(label = '', txid = 0, opts = {})
133
+ validate_params!(label, txid)
134
+ raise ArgumentError, "Missing options." if opts.empty?
135
+ @params = { idrequest: label,
136
+ username: @options[:username],
137
+ password: @options[:password],
138
+ txid: txid}.merge(opts).merge({ command: 'cancel_withdrawal' })
139
+ request = IGE_ISB_API.request(@params)
140
+ resp = request.send
141
+ response = JSON.parse(resp.body)
142
+ return response
143
+ end
144
+
145
+ # Each command has a label which is used by the casino to tag a group of interactions with ISB
146
+ # Additionally each transaction must include a unique transaction ID.
147
+ def get_history(label = '', txid = 0, opts = {})
148
+ validate_params!(label, txid)
149
+ @params = { idrequest: label,
150
+ username: @options[:username],
151
+ password: @options[:password],
152
+ txid: txid}.merge(opts).merge({ command: 'get_history' })
153
+ request = IGE_ISB_API.request(@params)
154
+ resp = request.send
155
+ response = JSON.parse(resp.body)
156
+ return response
157
+ end
158
+ alias_method :history, :get_history
159
+
160
+ # Each command has a label which is used by the casino to tag a group of interactions with ISB
161
+ # Additionally each transaction must include a unique transaction ID.
162
+ # the following options *must* be passed in.
163
+ # emailtemplate: the name of a template (configured within ISB's back-office),
164
+ # emailparameters: a collection of email parameters.
165
+ # the following may be passed in to override defaults
166
+ # carte: the casino carte for the user,
167
+ def send_email(label = '', txid = 0, opts = {})
168
+ validate_params!(label, txid)
169
+ raise ArgumentError, "Missing options." if opts.empty?
170
+ @params = { idrequest: label,
171
+ username: @options[:username],
172
+ password: @options[:password],
173
+ carte: @options[:carte],
174
+ txid: txid}.merge(opts).merge({ command: 'send_email' })
123
175
  request = IGE_ISB_API.request(@params)
124
176
  resp = request.send
125
177
  response = JSON.parse(resp.body)
@@ -221,6 +273,7 @@ module IGE_ISB_API
221
273
  response = JSON.parse(resp.body)
222
274
  return response
223
275
  end
276
+ alias_method :vip_points, :get_vip_points
224
277
 
225
278
  # Each command has a label which is used by the casino to tag a group of interactions with ISB
226
279
  # Additionally each transaction must include a unique transaction ID.
@@ -2,5 +2,5 @@
2
2
  #coding: utf-8
3
3
 
4
4
  module IGE_ISB_API
5
- VERSION = "1.0.0"
5
+ VERSION = "1.1.0"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ige_isb_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Sag
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-06 00:00:00.000000000 Z
11
+ date: 2013-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -93,7 +93,6 @@ files:
93
93
  - README.md
94
94
  - ige_isb_api.gemspec
95
95
  - lib/ige_isb_api.rb
96
- - lib/ige_isb_api/api.rb
97
96
  - lib/ige_isb_api/bonus.rb
98
97
  - lib/ige_isb_api/bonus_api.rb
99
98
  - lib/ige_isb_api/callback.rb
@@ -1,251 +0,0 @@
1
- #!/user/bin/env ruby
2
- #coding: utf-8
3
-
4
- module IGE_ISB_API
5
- class API
6
-
7
- # the following options *must* be passed in.
8
- # username: "some_username specific to iSoftBet",
9
- # password: "should be specific to iSoftBet",
10
- # The following options may be passed in and are presented here with their defaults.
11
- # cur: IGE_ISB_API::Constants::DEFAULT_CURRENCY_CODE,
12
- # carte: IGE_ISB_API::Constants::CASINO,
13
- # lang: IGE_ISB_API::Constants::DEFAULT_LANGUAGE,
14
- def initialize(player_status = IGE_ISB_API::Constants::TEST, opts = {})
15
- raise ArgumentError, "Missing options." if opts.empty?
16
- @options = {
17
- cur: IGE_ISB_API::Constants::DEFAULT_CURRENCY_CODE,
18
- carte: IGE_ISB_API::Constants::CASINO,
19
- lang: IGE_ISB_API::Constants::DEFAULT_LANGUAGE,
20
- status: player_status
21
- }.merge(opts)
22
- end
23
-
24
- # Each command has a label which is used by the casino to tag a group of interactions with ISB
25
- # Additionally each transaction must include a unique transaction ID.
26
- # the following options *must* be passed in.
27
- # email: "the user's email address",
28
- # name: "the user's surname",
29
- # firstname: "the user's first name",,
30
- # zip: "the user's postcode",
31
- # city: "the user's city",
32
- # phone: "the user's phone number",
33
- # dob: "in 2011-11-21 format",
34
- # country: "the ISO country code for the user",
35
- # ip: request.ip
36
- #
37
- # The following may be passed in and are presented here with their defaults.
38
- # cur: IGE_ISB_API::Constants::DEFAULT_CURRENCY_CODE,
39
- # status: IGE_ISB_API::Constants::TEST,
40
- # carte: IGE_ISB_API::Constants::CASINO,
41
- # lang: 'en',
42
- # gender: IGE_ISB_API::Constants::MALE,
43
- def register(label = '', txid = 0, opts = {})
44
- validate_params!(label, txid)
45
- raise ArgumentError, "Missing options." if opts.empty?
46
- @params = { idrequest: label,
47
- username: @options[:username],
48
- password: @options[:password],
49
- status: @options[:status],
50
- cur: @options[:cur],
51
- lang: @options[:lang],
52
- carte: @options[:carte],
53
- gender: IGE_ISB_API::Constants::MALE,
54
- txid: txid}.merge(opts).merge({ command: 'registration', idaffiliation: IGE_ISB_API::Constants::LICENSEE_ID })
55
- request = IGE_ISB_API.request(@params)
56
- resp = request.send
57
- response = JSON.parse(resp.body)
58
- return response
59
- end
60
-
61
- # Each command has a label which is used by the casino to tag a group of interactions with ISB
62
- # Additionally each transaction must include a unique transaction ID.
63
- # The following may be passed in and is presented here with its default.
64
- # carte: defaults to IGE_ISB_API::Constants::CASINO can can be overridden if user is logging in from
65
- # a different casino under the control of the same licensee.
66
- def login(label = '', txid = 0, opts = {})
67
- validate_params!(label, txid)
68
- @params = { idrequest: label,
69
- username: @options[:username],
70
- password: @options[:password],
71
- carte: @options[:carte],
72
- txid: txid}.merge(opts).merge({ command: 'login' })
73
- request = IGE_ISB_API.request(@params)
74
- resp = request.send
75
- response = JSON.parse(resp.body)
76
- return response
77
- end
78
-
79
- # Each command has a label which is used by the casino to tag a group of interactions with ISB
80
- # Additionally each transaction must include a unique transaction ID.
81
- # the following options *must* be passed in.
82
- # wallet: "the name of the payment processor being used",
83
- # amount: a positive floating point number,
84
- # reference: "for logging purposes",
85
- #
86
- # The following may be passed in and are presented here with their defaults.
87
- # cur: defaults to IGE_ISB_API::Constants::DEFAULT_CURRENCY_CODE
88
- def deposit(label = '', txid = 0, opts = {})
89
- validate_params!(label, txid)
90
- raise ArgumentError, "Missing options." if opts.empty?
91
- @params = { idrequest: label,
92
- username: @options[:username],
93
- password: @options[:password],
94
- cur: @options[:cur],
95
- txid: txid}.merge(opts).merge({ command: 'deposit' })
96
- reference = "#{@params[:wallet]}:#{@params[:reference]}#{@params[:cur]}"
97
- @params.merge!(reference: reference)
98
- request = IGE_ISB_API.request(@params)
99
- resp = request.send
100
- response = JSON.parse(resp.body)
101
- return response
102
- end
103
-
104
- # Each command has a label which is used by the casino to tag a group of interactions with ISB
105
- # Additionally each transaction must include a unique transaction ID.
106
- # the following options *must* be passed in.
107
- # wallet: "the name of the payment processor being used",
108
- # amount: a positive floating point number,
109
- # reference: "for logging purposes",
110
- #
111
- # The following may be passed in and are presented here with their defaults.
112
- # cur: defaults to IGE_ISB_API::Constants::DEFAULT_CURRENCY_CODE
113
- def withdrawal(label = '', txid = 0, opts = {})
114
- validate_params!(label, txid)
115
- raise ArgumentError, "Missing options." if opts.empty?
116
- @params = { idrequest: label,
117
- username: @options[:username],
118
- password: @options[:password],
119
- cur: @options[:cur],
120
- txid: txid}.merge(opts).merge({ command: 'withdrawal' })
121
- reference = "#{@params[:reference]}#{@params[:cur]}"
122
- @params.merge!(reference: reference)
123
- request = IGE_ISB_API.request(@params)
124
- resp = request.send
125
- response = JSON.parse(resp.body)
126
- return response
127
- end
128
-
129
- # Each command has a label which is used by the casino to tag a group of interactions with ISB
130
- # Additionally each transaction must include a unique transaction ID.
131
- # the following options *must* be passed in.
132
- # limitationtype: 'DEPOSIT', 'DEPOSIT_EXTRA', 'BET', 'LOSS', 'TIME', 'EXCLUSION'
133
- # amount: a positive floating point number,
134
- # frequency: "WEEKLY", DAILY, MONTHLY, 1..n days - for exclusion
135
- # until: "YYYY-MM-DD" or -1 for unlimited.
136
- #
137
- # The following may be passed in and are presented here with their defaults.
138
- # cur: defaults to IGE_ISB_API::Constants::DEFAULT_CURRENCY_CODE
139
- def limits(label = '', txid = 0, opts = {})
140
- validate_params!(label, txid)
141
- raise ArgumentError, "Missing options." if opts.empty?
142
- @params = { idrequest: label,
143
- username: @options[:username],
144
- password: @options[:password],
145
- txid: txid}.merge(opts).merge({ command: 'limits' })
146
- request = IGE_ISB_API.request(@params)
147
- resp = request.send
148
- response = JSON.parse(resp.body)
149
- return response
150
- end
151
-
152
- # Each command has a label which is used by the casino to tag a group of interactions with ISB
153
- # Additionally each transaction must include a unique transaction ID.
154
- def deactivate(label = '', txid = 0)
155
- validate_params!(label, txid)
156
- @params = { idrequest: label,
157
- username: @options[:username],
158
- password: @options[:password],
159
- txid: txid}.merge({ command: 'userstatus', flag: IGE_ISB_API::Constants::USER_INACTIVE })
160
- request = IGE_ISB_API.request(@params)
161
- resp = request.send
162
- response = JSON.parse(resp.body)
163
- return response
164
- end
165
-
166
- # Each command has a label which is used by the casino to tag a group of interactions with ISB
167
- # Additionally each transaction must include a unique transaction ID.
168
- def activate(label = '', txid = 0)
169
- validate_params!(label, txid)
170
- @params = { idrequest: label,
171
- username: @options[:username],
172
- password: @options[:password],
173
- txid: txid}.merge({ command: 'userstatus', flag: IGE_ISB_API::Constants::USER_ACTIVE })
174
- request = IGE_ISB_API.request(@params)
175
- resp = request.send
176
- response = JSON.parse(resp.body)
177
- return response
178
- end
179
-
180
- # Each command has a label which is used by the casino to tag a group of interactions with ISB
181
- # Additionally each transaction must include a unique transaction ID.
182
- def ban(label = '', txid = 0)
183
- validate_params!(label, txid)
184
- @params = { idrequest: label,
185
- username: @options[:username],
186
- password: @options[:password],
187
- txid: txid}.merge({ command: 'userstatus', flag: IGE_ISB_API::Constants::USER_BANNED })
188
- request = IGE_ISB_API.request(@params)
189
- resp = request.send
190
- response = JSON.parse(resp.body)
191
- return response
192
- end
193
-
194
- # Each command has a label which is used by the casino to tag a group of interactions with ISB
195
- # Additionally each transaction must include a unique transaction ID.
196
- # the following option *must* be passed in.
197
- # newpassword: 'some new password',
198
- def change_password(label = '', txid = 0, opts = {})
199
- validate_params!(label, txid)
200
- raise ArgumentError, "Missing options." if opts.empty?
201
- @params = { idrequest: label,
202
- username: @options[:username],
203
- password: @options[:password],
204
- txid: txid}.merge(opts).merge({ command: 'pass'})
205
- request = IGE_ISB_API.request(@params)
206
- resp = request.send
207
- response = JSON.parse(resp.body)
208
- return response
209
- end
210
-
211
- # Each command has a label which is used by the casino to tag a group of interactions with ISB
212
- # Additionally each transaction must include a unique transaction ID.
213
- def get_vip_points(label = '', txid = 0)
214
- validate_params!(label, txid)
215
- @params = { idrequest: label,
216
- username: @options[:username],
217
- password: @options[:password],
218
- txid: txid}.merge({ command: 'get_vip_points' })
219
- request = IGE_ISB_API.request(@params)
220
- resp = request.send
221
- response = JSON.parse(resp.body)
222
- return response
223
- end
224
-
225
- # Each command has a label which is used by the casino to tag a group of interactions with ISB
226
- # Additionally each transaction must include a unique transaction ID.
227
- # the following options *must* be passed in.
228
- # invitedname: 'some new password',
229
- # invitedemail: 'some new password',
230
- def save_friend_email(label = '', txid = 0, opts = {})
231
- validate_params!(label, txid)
232
- raise ArgumentError, "Missing options." if opts.empty?
233
- @params = { idrequest: label,
234
- username: @options[:username],
235
- password: @options[:password],
236
- txid: txid}.merge(opts).merge({ command: 'save_friend_email'})
237
- request = IGE_ISB_API.request(@params)
238
- resp = request.send
239
- response = JSON.parse(resp.body)
240
- return response
241
- end
242
-
243
- private
244
-
245
- def validate_params!(label, txid)
246
- raise ArgumentError, "Missing a valid label." if label.empty?
247
- raise ArgumentError, "Missing a valid transaction ID." if txid <= 0
248
- end
249
-
250
- end
251
- end