alphaSDK 0.0.3 → 0.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
  SHA256:
3
- metadata.gz: 5a6989546d20cbfdaf28a7ea73877b274c72e45a037bbad9055b898a78a91cac
4
- data.tar.gz: f9ab083d60b26b3610ee29aa2eff0b7d508af818f52cb58c0b960795ffe842f2
3
+ metadata.gz: 308f9e81f59e64e557f81db86a025439b2640c95c81ea39b10a02c850d6ba93f
4
+ data.tar.gz: 41385ef3b306d58452a42247c13bed04cac8e65b8647f2ec02334cc97da1f71f
5
5
  SHA512:
6
- metadata.gz: 578f474795b250585bb20934b0627ed579bd104fa533a81b00a0847a57bdba749dcd3d32cb4974b95d9a7cedc7b38ee3c5afcbc9ba3ea33ba1f2812cb688149f
7
- data.tar.gz: ca4109823dee36c7a55004eef82a497ed15eac7fb21229f69cd12f4c1b4d0a46a62392616e5aee2321463512cd4b2c8ce269f8d9b2ec5c6d7e7e65cdb7cd2699
6
+ metadata.gz: bc07f1568cdf93f77ce69eb3280faa6709a7295b4d3f721b3b60ef4dd5db56fb38ad33d1328efc51a1863c73b540d0edcaf0a6e7def2fdf7254fb76d1f0d5286
7
+ data.tar.gz: 10073fc6c998201b8493a9288108f1d82011eab00269c22b0a4c3059d6d0b4cd99f33740a514eb053faa1e38e316bbf4038a5b365bb1635f0ec3ffae2a337a29
data/lib/gameball.rb CHANGED
@@ -2,9 +2,10 @@ require "net/http"
2
2
  require "net/http"
3
3
  require "openssl"
4
4
  require "uri"
5
- require "Time"
6
- require "digest/sha1"
7
- require "json"
5
+ require 'Time'
6
+ require 'digest/sha1'
7
+ require 'json'
8
+ require 'async'
8
9
  require_relative "./gameball/utils/request"
9
10
  require_relative "./gameball/utils/helper"
10
11
  require_relative "./gameball/utils/validation"
@@ -12,23 +13,23 @@ require_relative "./gameball/models/player"
12
13
  require_relative "./gameball/models/event"
13
14
  require_relative "./gameball/models/transaction"
14
15
  require_relative "./gameball/models/referral"
15
- require_relative "./gameball/models/coupon"
16
- require_relative "./gameball/models/action"
17
16
  require_relative "./gameball/exceptions/gameballException"
18
17
 
18
+
19
19
  module Gameball
20
- @api_base = "https://gb-api.azurewebsites.net"
21
- @max_retries = 1
22
- @read_timeout = 60
23
- @keep_alive_timeout = 30
24
- @api_version = "v1.0"
25
- class << self
26
- attr_accessor :api_key
27
- attr_accessor :api_version
28
- attr_accessor :transaction_key
29
- attr_accessor :read_timeout
30
- attr_accessor :max_retries
31
- attr_reader :keep_alive_timeout
32
- attr_reader :api_base
33
- end
20
+ @api_base = "https://gb-api.azurewebsites.net"
21
+ @max_retries=1
22
+ @read_timeout=60
23
+ @keep_alive_timeout=30
24
+ @api_version="v1.0"
25
+ class << self
26
+ attr_accessor :api_key
27
+ attr_accessor :api_version
28
+ attr_accessor :transaction_key
29
+ attr_accessor :read_timeout
30
+ attr_accessor :max_retries
31
+ attr_reader :keep_alive_timeout
32
+ attr_reader :api_base
33
+
34
+ end
34
35
  end
@@ -1,7 +1,7 @@
1
1
  module Gameball
2
- class GameballError < StandardError
3
- def initialize(msg = "Something went wrong while authorizing your request")
4
- super(msg)
2
+ class GameballError < StandardError
3
+ def initialize (msg="Something went wrong while authorizing your request")
4
+ super(msg)
5
+ end
5
6
  end
6
- end
7
- end
7
+ end
@@ -1,17 +1,13 @@
1
1
  module Gameball
2
- class Action
3
- def self.send_action(body)
4
- Gameball::Utils.validate(body, ["playerUniqueId"], ["playerAttributes", "events", "pointsTransaction"])
5
- res = Gameball::Utils::request("post", "/Integrations/Action", body)
6
- unless res.kind_of? Net::HTTPSuccess
7
- if res.kind_of? Net::HTTPInternalServerError
8
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
9
- else
10
- raise Gameball::GameballError.new(res.body) # use custom message
2
+ class Action
3
+ def send_action(body)
4
+ Gameball::Utils.validate(body,['playerUniqueId'],['playerAttributes','events','pointsTransaction'])
5
+ res=Gameball::Utils::request("post","/Integrations/Action",body)
6
+ unless res.kind_of? Net::HTTPSuccess
7
+ raise Gameball::GameballError.new(res) # use custom message
8
+ else
9
+ return res
10
+ end
11
11
  end
12
- else
13
- return res
14
- end
15
12
  end
16
- end
17
- end
13
+ end
@@ -1,53 +1,37 @@
1
1
  module Gameball
2
- class Coupon
2
+ class Coupon
3
3
  def self.create_discount_coupon(body)
4
- Gameball::Utils.validate(body, ["playerUniqueId"], ["startAt", "endsAt", "entitledCollectionIds", "entitledProductIds",
5
- "oncePerCustomer", "prerequisiteQuantityRange", "prerequisiteShippingPriceRange", "prerequisiteSubtotalRange",
6
- "prerequisiteCollectionIds", "prerequisiteProductIds", "code", "usageLimit", "value", "valueType", "cap"])
7
-
8
- body[:transactionTime] = Time.now.utc
9
- body["hash"] = Gameball::Utils::hashBody(playerUniqueId: body[:playerUniqueId])
10
- res = Gameball::Utils::request("post", "/Integrations/Coupon", body)
11
- unless res.kind_of? Net::HTTPSuccess
12
- if res.kind_of? Net::HTTPInternalServerError
13
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
14
- else
15
- raise Gameball::GameballError.new(res.body) # use custom message
16
- end
17
- else
18
- return res
19
- end
4
+ Gameball::Utils.validate(body,['playerUniqueId','transactionTime'],['startAt','endsAt','entitledCollectionIds','entitledProductIds',
5
+ 'oncePerCustomer','prerequisiteQuantityRange','prerequisiteShippingPriceRange','prerequisiteSubtotalRange',
6
+ 'prerequisiteCollectionIds','prerequisiteProductIds','code','usageLimit','value','valueType','cap'])
7
+ body["hash"]=Gameball::Utils::hashBody(playerUniqueId:body[:playerUniqueId])
8
+ res=Gameball::Utils::request("post","/Integrations/Coupon",body)
9
+ unless res.kind_of? Net::HTTPSuccess
10
+ raise Gameball::GameballError.new(res) # use custom message
11
+ else
12
+ return res
13
+ end
20
14
  end
21
15
  def self.validate_discount_coupon(body)
22
- Gameball::Utils.validate(body, ["playerUniqueId", "code"])
23
- body[:transactionTime] = Time.now.utc
24
-
25
- body["hash"] = Gameball::Utils::hashBody(playerUniqueId: body[:playerUniqueId])
26
- res = Gameball::Utils::request("post", "/Integrations/Coupon/Validate", body)
27
- unless res.kind_of? Net::HTTPSuccess
28
- if res.kind_of? Net::HTTPInternalServerError
29
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
30
- else
31
- raise Gameball::GameballError.new(res.body) # use custom message
16
+ Gameball::Utils.validate(body,['playerUniqueId','code','transactionTime'])
17
+ body["hash"]=Gameball::Utils::hashBody(playerUniqueId:body[:playerUniqueId])
18
+ res=Gameball::Utils::request("post","/Integrations/Coupon/Validate",body)
19
+ unless res.kind_of? Net::HTTPSuccess
20
+ raise Gameball::GameballError.new(res) # use custom message
21
+ else
22
+ return res
32
23
  end
33
- else
34
- return res
35
- end
36
24
  end
37
25
  def self.redeem_discount_coupon(body)
38
- Gameball::Utils.validate(body, ["playerUniqueId", "code"])
39
- body[:transactionTime] = Time.now.utc
40
- body["hash"] = Gameball::Utils::hashBody(playerUniqueId: body[:playerUniqueId])
41
- res = Gameball::Utils::request("post", "/Integrations/Coupon/Redeem", body)
42
- unless res.kind_of? Net::HTTPSuccess
43
- if res.kind_of? Net::HTTPInternalServerError
44
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
45
- else
46
- raise Gameball::GameballError.new(res.body) # use custom message
26
+ Gameball::Utils.validate(body,['playerUniqueId','code','transactionTime'])
27
+ body["hash"]=Gameball::Utils::hashBody(playerUniqueId:body[:playerUniqueId])
28
+ res=Gameball::Utils::request("post","/Integrations/Coupon/Redeem",body)
29
+ unless res.kind_of? Net::HTTPSuccess
30
+ raise Gameball::GameballError.new(res) # use custom message
31
+ else
32
+ return true
47
33
  end
48
- else
49
- return true
50
- end
51
34
  end
52
- end
53
- end
35
+
36
+ end
37
+ end
@@ -1,37 +1,29 @@
1
1
  module Gameball
2
- class Event
3
- # include Gameball::Request
4
- def self.sendEvent(eventBody)
5
- Gameball::Utils.validate(eventBody, ["events", "playerUniqueId"], ["playerAttributes"])
6
- if eventBody.has_key?(:playerAttributes)
7
- # Gameball::Utils.validate(eventBody[:playerAttributes],['displayName','firstName','lastName','email','gender','mobileNumber','dateOfBirth','joinDate'],['custom'])
8
- end
9
- res = Gameball::Utils::request("post", "/integrations/event", eventBody)
10
- unless res.kind_of? Net::HTTPSuccess
11
- if res.kind_of? Net::HTTPInternalServerError
12
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
13
- else
14
- raise Gameball::GameballError.new(res.body) # use custom message
2
+ class Event
3
+ # include Gameball::Request
4
+ def self.sendEvent (eventBody)
5
+ Gameball::Utils.validate(eventBody,['events','playerUniqueId'],['playerAttributes'])
6
+ if eventBody.has_key?(:playerAttributes)
7
+ # Gameball::Utils.validate(eventBody[:playerAttributes],['displayName','firstName','lastName','email','gender','mobileNumber','dateOfBirth','joinDate'],['custom'])
8
+ end
9
+ res=Gameball::Utils::request("post","/integrations/event",eventBody)
10
+ unless res.kind_of? Net::HTTPSuccess
11
+ raise Gameball::GameballError.new(res.body) # use custom message
12
+ else
13
+ return true
14
+ end
15
15
  end
16
- else
17
- return true
18
- end
19
- end
20
- def self.sendEvent_async(eventBody)
21
- Gameball::Utils.validate(eventBody, ["events", "playerUniqueId"], ["playerAttributes"])
22
- if eventBody.has_key?(:playerAttributes)
23
- # Gameball::Utils.validate(eventBody[:playerAttributes],['displayName','firstName','lastName','email','gender','mobileNumber','dateOfBirth','joinDate'],['custom'])
24
- end
25
- res = Gameball::Utils::request_async("post", "/integrations/event", eventBody)
26
- unless res.kind_of? Net::HTTPSuccess
27
- if res.kind_of? Net::HTTPInternalServerError
28
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
29
- else
30
- raise Gameball::GameballError.new(res.body) # use custom message
16
+ def self.sendEvent_async (eventBody)
17
+ Gameball::Utils.validate(eventBody,['events','playerUniqueId'],['playerAttributes'])
18
+ if eventBody.has_key?(:playerAttributes)
19
+ # Gameball::Utils.validate(eventBody[:playerAttributes],['displayName','firstName','lastName','email','gender','mobileNumber','dateOfBirth','joinDate'],['custom'])
20
+ end
21
+ res=Gameball::Utils::request_async("post","/integrations/event",eventBody)
22
+ unless res.kind_of? Net::HTTPSuccess
23
+ raise Gameball::GameballError.new(res.body) # use custom message
24
+ else
25
+ return true
26
+ end
31
27
  end
32
- else
33
- return true
34
- end
35
28
  end
36
- end
37
- end
29
+ end
File without changes
@@ -1,40 +1,32 @@
1
1
  module Gameball
2
- class Player
3
- # include Gameball::Request
4
- def self.initialize_player(customerBody)
5
- Gameball::Utils.validate(customerBody, ["playerAttributes", "playerUniqueId"], [])
6
- begin
7
- customerBody[:playerAttributes][:joinDate] = customerBody[:playerAttributes][:joinDate].iso8601
8
- customerBody[:playerAttributes][:dateOfBirth] = customerBody[:playerAttributes][:dateOfBirth].iso8601
9
- rescue NoMethodError => exception
10
- # p exception
11
- raise Gameball::GameballError.new("Invalid Date Format, Please use Time and Date objects")
12
- end
13
-
14
- res = Gameball::Utils::request("post", "/integrations/player", customerBody)
15
- unless res.kind_of? Net::HTTPSuccess
16
- if res.kind_of? Net::HTTPInternalServerError
17
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
18
- else
19
- raise Gameball::GameballError.new(res.body) # use custom message
2
+ class Player
3
+ # include Gameball::Request
4
+ def self.initialize_player (customerBody)
5
+ Gameball::Utils.validate(customerBody,['playerAttributes','playerUniqueId'],[])
6
+ begin
7
+ customerBody[:playerAttributes][:joinDate]=customerBody[:playerAttributes][:joinDate].iso8601
8
+ customerBody[:playerAttributes][:dateOfBirth]=customerBody[:playerAttributes][:dateOfBirth].iso8601
9
+ rescue NoMethodError => exception
10
+ p exception
11
+ raise Gameball::GameballError.new("Invalid Date Format, Please use Time and Date objects")
12
+ end
13
+
14
+ res=Gameball::Utils::request("post","/integrations/player",customerBody)
15
+ unless res.kind_of? Net::HTTPSuccess
16
+ raise Gameball::GameballError.new(res) # use custom message
17
+ else
18
+ return res
19
+ end
20
20
  end
21
- else
22
- return res
23
- end
24
- end
25
- def self.get_player_info(playerUniqueId)
26
- body = { playerUniqueId: playerUniqueId }
27
- body["hash"] = Gameball::Utils::hashBody(playerUniqueId: playerUniqueId)
28
- res = Gameball::Utils::request("post", "/integrations/Player/Info", body)
29
- unless res.kind_of? Net::HTTPSuccess
30
- if res.kind_of? Net::HTTPInternalServerError
31
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
32
- else
33
- raise Gameball::GameballError.new(res.body) # use custom message
21
+ def self.get_player_info(playerUniqueId)
22
+ body={playerUniqueId:playerUniqueId}
23
+ body["bodyHashed"]=Gameball::Utils::hashBody(playerUniqueId:playerUniqueId)
24
+ res=Gameball::Utils::request("post","/integrations/Player/Info",body)
25
+ unless res.kind_of? Net::HTTPSuccess
26
+ raise Gameball::GameballError.new(res) # use custom message
27
+ else
28
+ return res
29
+ end
34
30
  end
35
- else
36
- return res
37
- end
38
31
  end
39
- end
40
- end
32
+ end
@@ -1,27 +1,23 @@
1
1
  module Gameball
2
- class Referral
3
- def self.create_referral(body)
4
- Gameball::Utils.validate(body, ["playerUniqueId", "playerCode"], ["playerAttributes"])
5
- if body.has_key?(:playerAttributes)
6
- # Gameball::Utils.validate(body[:playerAttributes],['displayName','firstName','lastName','email','gender','mobileNumber','dateOfBirth','joinDate'],['custom'])
7
- end
8
- res = Gameball::Utils::request("post", "/integrations/referral", body)
9
- unless res.kind_of? Net::HTTPSuccess
10
- if res.kind_of? Net::HTTPInternalServerError
11
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
12
- else
13
- raise Gameball::GameballError.new(res.body) # use custom message
2
+ class Referral
3
+ def self.create_referral(body)
4
+ Gameball::Utils.validate(body,['playerUniqueId','playerCode'],['playerAttributes'])
5
+ if body.has_key?(:playerAttributes)
6
+ # Gameball::Utils.validate(body[:playerAttributes],['displayName','firstName','lastName','email','gender','mobileNumber','dateOfBirth','joinDate'],['custom'])
7
+ end
8
+ res=Gameball::Utils::request("post","/integrations/referral",body)
9
+ unless res.kind_of? Net::HTTPSuccess
10
+ raise Gameball::GameballError.new(res.body) # use custom message
11
+ else
12
+ return true
13
+ end
14
+ end
15
+ def self.create_referral_async(body)
16
+ Gameball::Utils.validate(body,['playerUniqueId','playerCode'],['playerAttributes'])
17
+ if body.has_key?(:playerAttributes)
18
+ # Gameball::Utils.validate(body[:playerAttributes],['displayName','firstName','lastName','email','gender','mobileNumber','dateOfBirth','joinDate'],['custom'])
19
+ end
20
+ Gameball::Utils::request_async("post","/integrations/referral",body)
14
21
  end
15
- else
16
- return true
17
- end
18
- end
19
- def self.create_referral_async(body)
20
- Gameball::Utils.validate(body, ["playerUniqueId", "playerCode"], ["playerAttributes"])
21
- if body.has_key?(:playerAttributes)
22
- # Gameball::Utils.validate(body[:playerAttributes],['displayName','firstName','lastName','email','gender','mobileNumber','dateOfBirth','joinDate'],['custom'])
23
- end
24
- Gameball::Utils::request_async("post", "/integrations/referral", body)
25
22
  end
26
- end
27
- end
23
+ end
@@ -1,99 +1,73 @@
1
1
  module Gameball
2
- class Transaction
3
- # include Gameball::Utils
4
- def self.get_player_balance(playerId)
5
- hashedBody = Gameball::Utils::hashBody(playerUniqueId: playerId)
6
- body = { playerUniqueId: playerId,
7
- hash: hashedBody }
8
- res = Gameball::Utils::request("post", "/integrations/transaction/balance", body)
9
- unless res.kind_of? Net::HTTPSuccess
10
- raise Gameball::GameballError.new(res.body) # use custom message
11
- else
12
- return res
13
- end
14
- end
15
- def self.hold_points(body)
16
- # puts body
17
- # check if attributes are available
2
+ class Transaction
3
+ # include Gameball::Utils
4
+ def self.get_player_balance (playerId)
5
+ hashedBody=Gameball::Utils::hashBody(playerUniqueId:playerId)
6
+ body={playerUniqueId:playerId,
7
+ bodyHashed:hashedBody
8
+ }
9
+ res=Gameball::Utils::request("post","/integrations/transaction/balance",body)
10
+ unless res.kind_of? Net::HTTPSuccess
11
+ raise Gameball::GameballError.new(res.body) # use custom message
12
+ else
13
+ return res
14
+ end
15
+ end
16
+ def self.hold_points(body)
17
+ puts body
18
+ # check if attributes are available
19
+ Gameball::Utils.validate(body,['playerUniqueId','amount','transactionTime'],['otp'])
18
20
 
19
- Gameball::Utils.validate(body, ["playerUniqueId", "amount"], ["otp"])
20
- body[:transactionTime] = Time.now.utc
21
- body = Gameball::Utils::extractAttributesToHash(body)
22
- res = Gameball::Utils::request("post", "/integrations/transaction/hold", body)
23
- unless res.kind_of? Net::HTTPSuccess
24
- if res.kind_of? Net::HTTPInternalServerError
25
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
26
- else
27
- raise Gameball::GameballError.new(res.body) # use custom message
21
+ body=Gameball::Utils::extractAttributesToHash(body)
22
+ res=Gameball::Utils::request("post","/integrations/transaction/hold",body)
23
+ unless res.kind_of? Net::HTTPSuccess
24
+ raise Gameball::GameballError.new(res.body) # use custom message
25
+ else
26
+ return res
27
+ end
28
28
  end
29
- else
30
- return res
31
- end
32
- end
33
- def self.redeem_points(body)
34
- # check if attributes are available
35
- Gameball::Utils.validate(body, ["holdReference", "playerUniqueId", "transactionId"], [])
36
- body[:transactionTime] = Time.now.utc
37
- body = Gameball::Utils::extractAttributesToHash(body)
38
- res = Gameball::Utils::request("post", "/integrations/transaction/redeem", body)
39
- unless res.kind_of? Net::HTTPSuccess
40
- if res.kind_of? Net::HTTPInternalServerError
41
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
42
- else
43
- raise Gameball::GameballError.new(res.body) # use custom message
29
+ def self.redeem_points(body)
30
+ # check if attributes are available
31
+ Gameball::Utils.validate(body,['holdReference','playerUniqueId','amount','transactionOnClientSystemId','transactionTime'],[])
32
+ body=Gameball::Utils::extractAttributesToHash(body)
33
+ res=Gameball::Utils::request("post","/integrations/transaction/redeem",body)
34
+ unless res.kind_of? Net::HTTPSuccess
35
+ raise Gameball::GameballError.new(res.body) # use custom message
36
+ else
37
+ return res
38
+ end
44
39
  end
45
- else
46
- return res
47
- end
48
- end
49
- def self.reverse_transaction(body)
50
- Gameball::Utils.validate(body, ["reversedTransactionId", "playerUniqueId", "transactionId"], [])
51
- body[:transactionTime] = Time.now.utc
52
-
53
- body = Gameball::Utils::extractAttributesToHash(body)
54
- res = Gameball::Utils::request("post", "/integrations/transaction/cancel", body)
55
- unless res.kind_of? Net::HTTPSuccess
56
- if res.kind_of? Net::HTTPInternalServerError
57
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
58
- else
59
- raise Gameball::GameballError.new(res.body) # use custom message
40
+ def self.reverse_transaction(body)
41
+ Gameball::Utils.validate(body,['reversedTransactionOnClientSystemId','playerUniqueId','transactionOnClientSystemId','transactionTime'],[])
42
+ body=Gameball::Utils::extractAttributesToHash(body)
43
+ res=Gameball::Utils::request("post","/integrations/transaction/cancel",body)
44
+ unless res.kind_of? Net::HTTPSuccess
45
+ raise Gameball::GameballError.new(res.body) # use custom message
46
+ else
47
+ return res
48
+ end
60
49
  end
61
- else
62
- return res
63
- end
64
- end
65
- def self.reward_points(body)
66
- Gameball::Utils.validate(body, ["playerUniqueId", "amount", "transactionId"], ["playerAttributes"])
67
- body[:transactionTime] = Time.now.utc
68
-
69
- body = Gameball::Utils::extractAttributesToHash(body)
70
- res = Gameball::Utils::request("post", "/integrations/transaction/reward", body)
71
- unless res.kind_of? Net::HTTPSuccess
72
- if res.kind_of? Net::HTTPInternalServerError
73
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
74
- else
75
- raise Gameball::GameballError.new(res.body) # use custom message
50
+ def self.reward_points(body)
51
+ Gameball::Utils.validate(body,['playerUniqueId','amount','transactionOnClientSystemId','transactionTime'],['playerAttributes'])
52
+ body=Gameball::Utils::extractAttributesToHash(body)
53
+ res=Gameball::Utils::request("post","/integrations/transaction/reward",body)
54
+ unless res.kind_of? Net::HTTPSuccess
55
+ raise Gameball::GameballError.new(res.body) # use custom message
56
+ else
57
+ return true
58
+ end
76
59
  end
77
- else
78
- return true
79
- end
80
- end
81
- def self.reverse_hold(body)
82
- # check if holdReference is in body else throw error
83
- Gameball::Utils.validate(body, ["holdReference", "playerUniqueId"], [])
84
- body[:transactionTime] = Time.now.utc
60
+ def self.reverse_hold(body)
61
+ # check if holdReference is in body else throw error
62
+ Gameball::Utils.validate(body,['holdReference','playerUniqueId','transactionTime'],[])
85
63
 
86
- body = Gameball::Utils::extractAttributesToHash(body)
87
- res = Gameball::Utils::request("post", "/integrations/transaction/hold", body)
88
- unless res.kind_of? Net::HTTPSuccess
89
- if res.kind_of? Net::HTTPInternalServerError
90
- raise Gameball::GameballError.new("An Internal Server Error has occurred")
91
- else
92
- raise Gameball::GameballError.new(res.body) # use custom message
64
+ body=Gameball::Utils::extractAttributesToHash(body)
65
+ res=Gameball::Utils::request("post","/integrations/transaction/hold",body)
66
+ unless res.kind_of? Net::HTTPSuccess
67
+ raise Gameball::GameballError.new(res.body) # use custom message
68
+ else
69
+ return res
70
+ end
93
71
  end
94
- else
95
- return res
96
- end
97
72
  end
98
- end
99
- end
73
+ end