App42_Ruby_API 0.8.4
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 +7 -0
- data/.gitignore +21 -0
- data/App42_Ruby_API.gemspec +33 -0
- data/Gemfile +3 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/TODO.rb +3 -0
- data/lib/App42_Ruby_API.rb +232 -0
- data/lib/App42_Ruby_API/App42BadParameterException.rb +31 -0
- data/lib/App42_Ruby_API/App42Exception.rb +39 -0
- data/lib/App42_Ruby_API/App42LimitException.rb +15 -0
- data/lib/App42_Ruby_API/App42NotFoundException.rb +15 -0
- data/lib/App42_Ruby_API/App42Response.rb +13 -0
- data/lib/App42_Ruby_API/App42ResponseBuilder.rb +67 -0
- data/lib/App42_Ruby_API/App42SecurityException.rb +15 -0
- data/lib/App42_Ruby_API/version.rb +3 -0
- data/lib/connection/RESTConnection.rb +713 -0
- data/lib/email/Email.rb +51 -0
- data/lib/email/EmailMIME.rb +51 -0
- data/lib/email/EmailResponseBuilder.rb +76 -0
- data/lib/email/EmailService.rb +244 -0
- data/lib/gallery/Album.rb +56 -0
- data/lib/gallery/AlbumResponseBuilder.rb +168 -0
- data/lib/gallery/AlbumService.rb +337 -0
- data/lib/gallery/PhotoService.rb +591 -0
- data/lib/game/Game.rb +39 -0
- data/lib/game/GameResponseBuilder.rb +106 -0
- data/lib/game/GameService.rb +268 -0
- data/lib/game/Reward.rb +24 -0
- data/lib/game/RewardResponseBuilder.rb +85 -0
- data/lib/game/RewardService.rb +440 -0
- data/lib/game/ScoreBoardService.rb +433 -0
- data/lib/game/ScoreService.rb +157 -0
- data/lib/geo/Geo.rb +51 -0
- data/lib/geo/GeoPoint.rb +43 -0
- data/lib/geo/GeoResponseBuilder.rb +145 -0
- data/lib/geo/GeoService.rb +505 -0
- data/lib/imageProcessor/Image.rb +42 -0
- data/lib/imageProcessor/ImageProcessorResponseBuilder.rb +40 -0
- data/lib/imageProcessor/ImageProcessorService.rb +1054 -0
- data/lib/log/Log.rb +49 -0
- data/lib/log/LogResponseBuilder.rb +61 -0
- data/lib/log/LogService.rb +920 -0
- data/lib/message/Queue.rb +50 -0
- data/lib/message/QueueResponseBuilder.rb +64 -0
- data/lib/message/QueueService.rb +469 -0
- data/lib/push/DeviceType.rb +56 -0
- data/lib/push/PushNotification.rb +38 -0
- data/lib/push/PushNotificationResposneBuilder.rb +74 -0
- data/lib/push/PushNotificationService.rb +458 -0
- data/lib/recommend/PreferenceData.rb +25 -0
- data/lib/recommend/Recommender.rb +48 -0
- data/lib/recommend/RecommenderResponseBuilder.rb +70 -0
- data/lib/recommend/RecommenderService.rb +1092 -0
- data/lib/recommend/RecommenderSimilarity.rb +52 -0
- data/lib/review/Review.rb +38 -0
- data/lib/review/ReviewResponseBuilder.rb +76 -0
- data/lib/review/ReviewService.rb +590 -0
- data/lib/session/Session.rb +43 -0
- data/lib/session/SessionResponseBuilder.rb +70 -0
- data/lib/session/SessionService.rb +427 -0
- data/lib/shopping/Cart.rb +77 -0
- data/lib/shopping/CartResponseBuilder.rb +118 -0
- data/lib/shopping/CartService.rb +902 -0
- data/lib/shopping/Catalogue.rb +79 -0
- data/lib/shopping/CatalogueResponseBuilder.rb +170 -0
- data/lib/shopping/CatalogueService.rb +649 -0
- data/lib/shopping/ItemData.rb +29 -0
- data/lib/shopping/PaymentStatus.rb +60 -0
- data/lib/social/Social.rb +35 -0
- data/lib/social/SocialResponseBuilder.rb +38 -0
- data/lib/social/SocialService.rb +585 -0
- data/lib/storage/OrderByType.rb +29 -0
- data/lib/storage/Query.rb +39 -0
- data/lib/storage/QueryBuilder.rb +118 -0
- data/lib/storage/Storage.rb +45 -0
- data/lib/storage/StorageResponseBuilder.rb +86 -0
- data/lib/storage/StorageService.rb +775 -0
- data/lib/upload/Upload.rb +40 -0
- data/lib/upload/UploadFileType.rb +83 -0
- data/lib/upload/UploadResponseBuilder.rb +58 -0
- data/lib/upload/UploadService.rb +960 -0
- data/lib/user/User.rb +102 -0
- data/lib/user/UserResponseBuilder.rb +105 -0
- data/lib/user/UserService.rb +1209 -0
- data/lib/util/util.rb +244 -0
- data/question.rb +79 -0
- metadata +204 -0
@@ -0,0 +1,77 @@
|
|
1
|
+
# -----------------------------------------------------------------------
|
2
|
+
# Copyright © 2012 ShepHertz Technologies Pvt Ltd. All rights reserved.
|
3
|
+
# -----------------------------------------------------------------------
|
4
|
+
|
5
|
+
require 'App42_Ruby_API/App42Response'
|
6
|
+
|
7
|
+
#
|
8
|
+
#
|
9
|
+
# This Cart object is the value object which contains the properties of Cart
|
10
|
+
# along with the setter & getter for those properties.
|
11
|
+
#
|
12
|
+
#
|
13
|
+
|
14
|
+
module App42
|
15
|
+
module Shopping
|
16
|
+
class Cart < App42Response
|
17
|
+
attr_accessor :userName, :cartId, :creationTime, :checkOutTime, :state, :isEmpty, :cartSession, :totalAmount, :itemList, :payment
|
18
|
+
|
19
|
+
@userName
|
20
|
+
@cartId
|
21
|
+
@creationTime
|
22
|
+
@checkOutTime
|
23
|
+
@state
|
24
|
+
@isEmpty
|
25
|
+
@cartSession
|
26
|
+
@totalAmount
|
27
|
+
@itemList = Array.new
|
28
|
+
@payment
|
29
|
+
end
|
30
|
+
|
31
|
+
class Item
|
32
|
+
attr_accessor :itemId, :name, :quantity, :image, :price, :totalAmount
|
33
|
+
|
34
|
+
@itemId
|
35
|
+
@name
|
36
|
+
@quantity
|
37
|
+
@image
|
38
|
+
@price
|
39
|
+
@totalAmount
|
40
|
+
|
41
|
+
#
|
42
|
+
# This is a constructor that takes no parameter
|
43
|
+
#
|
44
|
+
#
|
45
|
+
def initialize(cart)
|
46
|
+
cart.itemList.push(self)
|
47
|
+
end
|
48
|
+
|
49
|
+
#
|
50
|
+
# Returns the Cart Response in JSON format.
|
51
|
+
#
|
52
|
+
# @return the response in JSON format.
|
53
|
+
#
|
54
|
+
|
55
|
+
def to_s
|
56
|
+
return "name : #{@name}" + "itemId : #{@itemId}" + "price : #{@price}" + "quantity : #{@quantity}";
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
class Payment
|
61
|
+
attr_accessor :transactionId, :totalAmount, :date, :status
|
62
|
+
|
63
|
+
@transactionId
|
64
|
+
@totalAmount
|
65
|
+
@date
|
66
|
+
@status
|
67
|
+
|
68
|
+
#
|
69
|
+
# This is a constructor that takes no parameter
|
70
|
+
#
|
71
|
+
#
|
72
|
+
def initialize(cart)
|
73
|
+
cart.payment = self
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
# -----------------------------------------------------------------------
|
2
|
+
# Copyright © 2012 ShepHertz Technologies Pvt Ltd. All rights reserved.
|
3
|
+
# -----------------------------------------------------------------------
|
4
|
+
|
5
|
+
require 'json/pure'
|
6
|
+
require 'App42_Ruby_API/App42ResponseBuilder'
|
7
|
+
require 'shopping/Cart'
|
8
|
+
|
9
|
+
module App42
|
10
|
+
module Shopping
|
11
|
+
|
12
|
+
#
|
13
|
+
#
|
14
|
+
# CartResponseBuilder class converts the JSON response retrieved from the
|
15
|
+
# server to the value object i.e Cart
|
16
|
+
#
|
17
|
+
#
|
18
|
+
class CartResponseBuilder < App42ResponseBuilder
|
19
|
+
|
20
|
+
#
|
21
|
+
# Converts the response in JSON format to the value object i.e Cart
|
22
|
+
#
|
23
|
+
# @param json
|
24
|
+
# - response in JSON format
|
25
|
+
#
|
26
|
+
# @return Cart object filled with json data
|
27
|
+
#
|
28
|
+
def buildResponse(json)
|
29
|
+
cartsJSONObj = getServiceJSONObject("carts", json)
|
30
|
+
cartJSONObj = cartsJSONObj.fetch("cart")
|
31
|
+
cart = buildCartObject(cartJSONObj);
|
32
|
+
cart.strResponse=json
|
33
|
+
cart.isResponseSuccess = isResponseSuccess(json)
|
34
|
+
return cart
|
35
|
+
end
|
36
|
+
|
37
|
+
#
|
38
|
+
# Converts the Cart JSON object to the value object i.e Cart
|
39
|
+
#
|
40
|
+
# @param cartJSONObj
|
41
|
+
# - cart data as JSONObject
|
42
|
+
#
|
43
|
+
# @return Cart object filled with json data
|
44
|
+
#
|
45
|
+
#
|
46
|
+
|
47
|
+
def buildCartObject(cartJSONObj)
|
48
|
+
cart = Cart.new();
|
49
|
+
|
50
|
+
itemList = Array.new()
|
51
|
+
cart.itemList = itemList
|
52
|
+
|
53
|
+
buildObjectFromJSONTree(cart, cartJSONObj);
|
54
|
+
|
55
|
+
if cartJSONObj.key?("items") && cartJSONObj.fetch("items").key?("item")
|
56
|
+
|
57
|
+
if cartJSONObj.fetch("items").fetch("item").instance_of?(Hash)
|
58
|
+
#Single Item
|
59
|
+
itemJSONObj = cartJSONObj.fetch("items").fetch("item")
|
60
|
+
item = App42::Shopping::Item.new(cart)
|
61
|
+
|
62
|
+
buildObjectFromJSONTree(item, itemJSONObj);
|
63
|
+
else
|
64
|
+
# Multiple Items
|
65
|
+
itemJSONArray = cartJSONObj.fetch("items").fetch("item");
|
66
|
+
itemJSONArray.length.times do |i|
|
67
|
+
itemJSONObj = itemJSONArray[i]
|
68
|
+
item = App42::Shopping::Item.new(cart)
|
69
|
+
buildObjectFromJSONTree(item, itemJSONObj);
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
if cartJSONObj.key?("payments") && cartJSONObj.fetch("payments").key?("payment")
|
75
|
+
# Fetch Payment
|
76
|
+
paymentJSONObj = cartJSONObj.fetch("payments").fetch("payment");
|
77
|
+
puts paymentJSONObj
|
78
|
+
payment = App42::Shopping::Payment.new(cart)
|
79
|
+
buildObjectFromJSONTree(payment, paymentJSONObj);
|
80
|
+
end
|
81
|
+
return cart;
|
82
|
+
end
|
83
|
+
|
84
|
+
#
|
85
|
+
# Converts the response in JSON format to the list of value objects i.e
|
86
|
+
# Cart
|
87
|
+
#
|
88
|
+
# @param json
|
89
|
+
# - response in JSON format
|
90
|
+
#
|
91
|
+
# @return List of Cart object filled with json data
|
92
|
+
#
|
93
|
+
#
|
94
|
+
|
95
|
+
def buildArrayResponse(json)
|
96
|
+
cartsJSONObj = getServiceJSONObject("carts", json);
|
97
|
+
cartList = Array.new
|
98
|
+
if cartsJSONObj.fetch("cart").instance_of?(Array)
|
99
|
+
cartJSONArray = cartsJSONObj.fetch("cart")
|
100
|
+
cartJSONArray.length.times do |i|
|
101
|
+
cartJSONObj = cartJSONArray[i]
|
102
|
+
cart = buildCartObject(cartJSONObj);
|
103
|
+
cart.strResponse=json
|
104
|
+
cart.isResponseSuccess = isResponseSuccess(json)
|
105
|
+
cartList.push(cart)
|
106
|
+
end
|
107
|
+
else
|
108
|
+
cartJSONObj = cartsJSONObj.fetch("cart");
|
109
|
+
cart = buildCartObject(cartJSONObj);
|
110
|
+
cart.strResponse=json
|
111
|
+
cart.isResponseSuccess = isResponseSuccess(json)
|
112
|
+
cartList.push(cart)
|
113
|
+
end
|
114
|
+
return cartList
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,902 @@
|
|
1
|
+
# -----------------------------------------------------------------------
|
2
|
+
# Copyright © 2012 ShepHertz Technologies Pvt Ltd. All rights reserved.
|
3
|
+
# -----------------------------------------------------------------------
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'connection/RESTConnection'
|
7
|
+
require 'util/util'
|
8
|
+
require 'json/pure'
|
9
|
+
require 'App42_Ruby_API/App42Response'
|
10
|
+
require 'shopping/CartResponseBuilder'
|
11
|
+
require 'shopping/Cart'
|
12
|
+
require 'shopping/PaymentStatus'
|
13
|
+
require 'shopping/ItemData'
|
14
|
+
|
15
|
+
module App42
|
16
|
+
module Shopping
|
17
|
+
#
|
18
|
+
# This is Cloud Persistent Shopping Cart Service. App Developers can use this to
|
19
|
+
# create a Shopping Cart. Add Items and Check Out items. It also maintains the transactions
|
20
|
+
# and the corresponding Payment Status.
|
21
|
+
#
|
22
|
+
# The Payment Gateway interface is not provided by the Platform. It is left to the App developer
|
23
|
+
# how he wants to do the Payment Integration. This can be used along with Catalogue or used independently
|
24
|
+
#
|
25
|
+
# @see Catalgoue
|
26
|
+
# @see Cart
|
27
|
+
# @see App42Response
|
28
|
+
# @see ItemData
|
29
|
+
# @see PaymentStatus
|
30
|
+
#
|
31
|
+
class CartService
|
32
|
+
#
|
33
|
+
# this is a constructor that takes
|
34
|
+
#
|
35
|
+
# @param apiKey
|
36
|
+
# @param secretKey
|
37
|
+
# @param baseURL
|
38
|
+
#
|
39
|
+
def initialize(api_key, secret_key, base_url)
|
40
|
+
puts "Shopping ->initialize"
|
41
|
+
@api_key = api_key
|
42
|
+
@secret_key = secret_key
|
43
|
+
@base_url = base_url
|
44
|
+
@resource = "cart"
|
45
|
+
@version = "1.0"
|
46
|
+
end
|
47
|
+
|
48
|
+
#
|
49
|
+
# Creates a Cart Session for the specified User
|
50
|
+
#
|
51
|
+
# @param user
|
52
|
+
# - User for whom Cart Session has to be created
|
53
|
+
#
|
54
|
+
# @return Cart Object containing Cart Id with Creation Time. The id has to be used in subsequent calls for
|
55
|
+
# adding and checking out
|
56
|
+
#
|
57
|
+
# @raise App42Exception
|
58
|
+
#
|
59
|
+
|
60
|
+
def create_cart(user)
|
61
|
+
puts "Create Cart Called "
|
62
|
+
puts "Base url #{@base_url}"
|
63
|
+
response = nil;
|
64
|
+
cartObj = nil;
|
65
|
+
cartObj = Cart.new
|
66
|
+
util = Util.new
|
67
|
+
util.throwExceptionIfNullOrBlank(user, "User");
|
68
|
+
begin
|
69
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
70
|
+
body = {'app42' => {"cart"=> {
|
71
|
+
"userName" => user,
|
72
|
+
}}}.to_json
|
73
|
+
puts "Body #{body}"
|
74
|
+
query_params = Hash.new
|
75
|
+
params = {
|
76
|
+
'apiKey'=> @api_key,
|
77
|
+
'version' => @version,
|
78
|
+
'timeStamp' => util.get_timestamp_utc,
|
79
|
+
}
|
80
|
+
query_params = params.clone
|
81
|
+
params.store("body", body)
|
82
|
+
puts params
|
83
|
+
puts query_params
|
84
|
+
signature = util.sign(@secret_key, params)
|
85
|
+
resource_url = "#{@version}/#{@resource}"
|
86
|
+
response = connection.post(signature, resource_url, query_params, body)
|
87
|
+
cart = CartResponseBuilder.new
|
88
|
+
cartObj = cart.buildResponse(response)
|
89
|
+
rescue App42Exception =>e
|
90
|
+
raise e
|
91
|
+
rescue Exception => e
|
92
|
+
raise App42Exception.new(e)
|
93
|
+
end
|
94
|
+
return cartObj
|
95
|
+
end
|
96
|
+
|
97
|
+
#
|
98
|
+
# Fetch Cart details. Can be used by the App developer to display Cart Details i.e. Items in a Cart.
|
99
|
+
#
|
100
|
+
# @param cartId
|
101
|
+
# - The Cart Id that has to be fetched
|
102
|
+
#
|
103
|
+
# @return Cart object containing cart details with all the items which are in it. It also tells the state of
|
104
|
+
# the Cart
|
105
|
+
#
|
106
|
+
# @raise App42Exception
|
107
|
+
#
|
108
|
+
|
109
|
+
def get_cart_details(cartId)
|
110
|
+
puts "Get Cart Details Called "
|
111
|
+
puts "Base url #{@base_url}"
|
112
|
+
response = nil;
|
113
|
+
cartObj = nil;
|
114
|
+
cartObj = Cart.new
|
115
|
+
util = Util.new
|
116
|
+
util.throwExceptionIfNullOrBlank(cartId, "CartId");
|
117
|
+
begin
|
118
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
119
|
+
query_params = Hash.new
|
120
|
+
params = {
|
121
|
+
'apiKey'=> @api_key,
|
122
|
+
'version' => @version,
|
123
|
+
'timeStamp' => util.get_timestamp_utc,
|
124
|
+
}
|
125
|
+
query_params = params.clone
|
126
|
+
puts params
|
127
|
+
params.store("cartId", cartId)
|
128
|
+
puts query_params
|
129
|
+
signature = util.sign(@secret_key, params)
|
130
|
+
resource_url = "#{@version}/#{@resource}/#{cartId}/details"
|
131
|
+
response = connection.get(signature, resource_url, query_params)
|
132
|
+
puts "Response is #{response}"
|
133
|
+
cart = CartResponseBuilder.new
|
134
|
+
cartObj = cart.buildResponse(response)
|
135
|
+
rescue App42Exception =>e
|
136
|
+
raise e
|
137
|
+
rescue Exception => e
|
138
|
+
raise App42Exception.new(e)
|
139
|
+
end
|
140
|
+
return cartObj
|
141
|
+
end
|
142
|
+
|
143
|
+
#
|
144
|
+
# Adds an Item in the Cart with quantity and price. This method does not take currency. Its the
|
145
|
+
# bonus of the App developer to maintain the currency. It takes only the price.
|
146
|
+
#
|
147
|
+
# @param cartID
|
148
|
+
# - The Cart Id into which item has to be added
|
149
|
+
# @param itemID
|
150
|
+
# - The Item id which has to be added in the cart. If the Catalogue Service is used along
|
151
|
+
# with the Cart Service then the Item ids should be same.
|
152
|
+
# @param itemQuantity
|
153
|
+
# - Quantity of the Item to be purchased
|
154
|
+
# @param price
|
155
|
+
# - Price of the item
|
156
|
+
#
|
157
|
+
# @return Cart object containing added item.
|
158
|
+
#
|
159
|
+
# @raise App42Exception
|
160
|
+
#
|
161
|
+
|
162
|
+
def add_item(cartID, itemID, itemQuantity, price)
|
163
|
+
puts "Add Item Called "
|
164
|
+
puts "Base url #{@base_url}"
|
165
|
+
response = nil;
|
166
|
+
cartObj = nil;
|
167
|
+
cartObj = Cart.new
|
168
|
+
util = Util.new
|
169
|
+
util.throwExceptionIfNullOrBlank(cartID, "CartID");
|
170
|
+
util.throwExceptionIfNullOrBlank(itemID, "ItemID");
|
171
|
+
util.throwExceptionIfNullOrBlank(itemQuantity, "ItemQuantity");
|
172
|
+
util.throwExceptionIfNullOrBlank(price, "Price");
|
173
|
+
begin
|
174
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
175
|
+
body = {'app42'=>{
|
176
|
+
"cart"=>{
|
177
|
+
"cartId"=>cartID,
|
178
|
+
"item"=>{
|
179
|
+
"quantity"=>itemQuantity,
|
180
|
+
"amount"=>price
|
181
|
+
}
|
182
|
+
}
|
183
|
+
}}.to_json
|
184
|
+
puts "Body #{body}"
|
185
|
+
query_params = Hash.new
|
186
|
+
params = {
|
187
|
+
'apiKey'=> @api_key,
|
188
|
+
'version' => @version,
|
189
|
+
'timeStamp' => util.get_timestamp_utc,
|
190
|
+
}
|
191
|
+
query_params = params.clone
|
192
|
+
puts params
|
193
|
+
params.store("body", body)
|
194
|
+
params.store("itemId", itemID)
|
195
|
+
puts query_params
|
196
|
+
signature = util.sign(@secret_key, params)
|
197
|
+
resource_url = "#{@version}/#{@resource}/item/#{itemID}"
|
198
|
+
response = connection.post(signature, resource_url, query_params, body)
|
199
|
+
cart = CartResponseBuilder.new
|
200
|
+
cartObj = cart.buildResponse(response)
|
201
|
+
rescue App42Exception =>e
|
202
|
+
raise e
|
203
|
+
rescue Exception => e
|
204
|
+
raise App42Exception.new(e)
|
205
|
+
end
|
206
|
+
return cartObj
|
207
|
+
end
|
208
|
+
|
209
|
+
#
|
210
|
+
# Fetches the Items from the specified Cart
|
211
|
+
#
|
212
|
+
# @param cartId
|
213
|
+
# - The cart id from which items have to be fetched
|
214
|
+
#
|
215
|
+
# @return Cart object which contains all items in the cart
|
216
|
+
#
|
217
|
+
# @raise App42Exception
|
218
|
+
#
|
219
|
+
|
220
|
+
def get_items(cartId)
|
221
|
+
puts "Get Items Called "
|
222
|
+
puts "Base url #{@base_url}"
|
223
|
+
response = nil;
|
224
|
+
cartObj = nil;
|
225
|
+
cartObj = Cart.new
|
226
|
+
util = Util.new
|
227
|
+
util.throwExceptionIfNullOrBlank(cartId, "CartId");
|
228
|
+
begin
|
229
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
230
|
+
query_params = Hash.new
|
231
|
+
params = {
|
232
|
+
'apiKey'=> @api_key,
|
233
|
+
'version' => @version,
|
234
|
+
'timeStamp' => util.get_timestamp_utc,
|
235
|
+
}
|
236
|
+
query_params = params.clone
|
237
|
+
params.store("cartId", cartId)
|
238
|
+
puts query_params
|
239
|
+
signature = util.sign(@secret_key, params)
|
240
|
+
resource_url = "#{@version}/#{@resource}/#{cartId}"
|
241
|
+
response = connection.get(signature, resource_url, query_params)
|
242
|
+
cart = CartResponseBuilder.new
|
243
|
+
cartObj = cart.buildResponse(response)
|
244
|
+
rescue App42Exception =>e
|
245
|
+
raise e
|
246
|
+
rescue Exception => e
|
247
|
+
raise App42Exception.new(e)
|
248
|
+
end
|
249
|
+
return cartObj
|
250
|
+
end
|
251
|
+
|
252
|
+
#
|
253
|
+
# Fetches the specified Item from the specified Cart
|
254
|
+
#
|
255
|
+
# @param cartId
|
256
|
+
# - The cart id from which item has to be fetched
|
257
|
+
# @param itemId
|
258
|
+
# - The item for which the information has to be fetched
|
259
|
+
#
|
260
|
+
# @return Cart Object
|
261
|
+
#
|
262
|
+
# @raise App42Exception
|
263
|
+
#
|
264
|
+
|
265
|
+
def get_item(cartId, itemId)
|
266
|
+
puts "Get Item Called "
|
267
|
+
puts "Base url #{@base_url}"
|
268
|
+
response = nil;
|
269
|
+
cartObj = nil;
|
270
|
+
cartObj = Cart.new
|
271
|
+
util = Util.new
|
272
|
+
util.throwExceptionIfNullOrBlank(cartId, "CartId");
|
273
|
+
util.throwExceptionIfNullOrBlank(itemId, "ItemId");
|
274
|
+
begin
|
275
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
276
|
+
query_params = Hash.new
|
277
|
+
params = {
|
278
|
+
'apiKey'=> @api_key,
|
279
|
+
'version' => @version,
|
280
|
+
'timeStamp' => util.get_timestamp_utc,
|
281
|
+
}
|
282
|
+
query_params = params.clone
|
283
|
+
params.store("cartId", cartId)
|
284
|
+
params.store("itemId", itemId)
|
285
|
+
puts query_params
|
286
|
+
signature = util.sign(@secret_key, params)
|
287
|
+
resource_url = "#{@version}/#{@resource}/#{cartId}/#{itemId}"
|
288
|
+
response = connection.get(signature, resource_url, query_params)
|
289
|
+
cart = CartResponseBuilder.new
|
290
|
+
cartObj = cart.buildResponse(response)
|
291
|
+
rescue App42Exception =>e
|
292
|
+
raise e
|
293
|
+
rescue Exception => e
|
294
|
+
raise App42Exception.new(e)
|
295
|
+
end
|
296
|
+
return cartObj
|
297
|
+
end
|
298
|
+
|
299
|
+
#
|
300
|
+
# Removes the specified item from the specified Cart
|
301
|
+
#
|
302
|
+
# @param cartId
|
303
|
+
# - The cart id from which the item has to be removed
|
304
|
+
# @param itemId
|
305
|
+
# - Id of the Item which has to be removed
|
306
|
+
#
|
307
|
+
# @return App42Response if removed successfully
|
308
|
+
#
|
309
|
+
# @raise App42Exception
|
310
|
+
#
|
311
|
+
|
312
|
+
def remove_item(cartId, itemId)
|
313
|
+
puts "Remove Item Called "
|
314
|
+
puts "Base url #{@base_url}"
|
315
|
+
response = nil;
|
316
|
+
responseObj = App42Response.new();
|
317
|
+
util = Util.new
|
318
|
+
util.throwExceptionIfNullOrBlank(cartId, "CartId");
|
319
|
+
util.throwExceptionIfNullOrBlank(itemId, "ItemId");
|
320
|
+
begin
|
321
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
322
|
+
query_params = Hash.new
|
323
|
+
params = {
|
324
|
+
'apiKey'=> @api_key,
|
325
|
+
'version' => @version,
|
326
|
+
'timeStamp' => util.get_timestamp_utc,
|
327
|
+
}
|
328
|
+
query_params = params.clone
|
329
|
+
params.store("cartId", cartId)
|
330
|
+
params.store("itemId", itemId)
|
331
|
+
puts query_params
|
332
|
+
signature = util.sign(@secret_key, params)
|
333
|
+
resource_url = "#{@version}/#{@resource}/#{cartId}/#{itemId}"
|
334
|
+
response = connection.delete(signature, resource_url, query_params)
|
335
|
+
responseObj.strResponse=(response)
|
336
|
+
responseObj.isResponseSuccess=(true)
|
337
|
+
rescue App42Exception =>e
|
338
|
+
raise e
|
339
|
+
rescue Exception => e
|
340
|
+
raise App42Exception.new(e)
|
341
|
+
end
|
342
|
+
return responseObj
|
343
|
+
end
|
344
|
+
|
345
|
+
#
|
346
|
+
# Removes all Items from the specified Cart
|
347
|
+
#
|
348
|
+
# @param cartId
|
349
|
+
# - The cart id from which items have to be removed
|
350
|
+
#
|
351
|
+
# @return App42Response if removed successfully
|
352
|
+
#
|
353
|
+
# @raise App42Exception
|
354
|
+
#
|
355
|
+
|
356
|
+
def remove_all_items(cartId)
|
357
|
+
puts "Remove All Item Called "
|
358
|
+
puts "Base url #{@base_url}"
|
359
|
+
response = nil;
|
360
|
+
responseObj = App42Response.new();
|
361
|
+
util = Util.new
|
362
|
+
util.throwExceptionIfNullOrBlank(cartId, "CartId");
|
363
|
+
begin
|
364
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
365
|
+
query_params = Hash.new
|
366
|
+
params = {
|
367
|
+
'apiKey'=> @api_key,
|
368
|
+
'version' => @version,
|
369
|
+
'timeStamp' => util.get_timestamp_utc,
|
370
|
+
}
|
371
|
+
query_params = params.clone
|
372
|
+
params.store("cartId", cartId)
|
373
|
+
puts query_params
|
374
|
+
signature = util.sign(@secret_key, params)
|
375
|
+
resource_url = "#{@version}/#{@resource}/#{cartId}"
|
376
|
+
response = connection.delete(signature, resource_url, query_params)
|
377
|
+
responseObj.strResponse=(response)
|
378
|
+
responseObj.isResponseSuccess=(true)
|
379
|
+
rescue App42Exception =>e
|
380
|
+
raise e
|
381
|
+
rescue Exception => e
|
382
|
+
raise App42Exception.new(e)
|
383
|
+
end
|
384
|
+
return responseObj
|
385
|
+
end
|
386
|
+
|
387
|
+
#
|
388
|
+
# Checks whether the Cart is Empty or not
|
389
|
+
#
|
390
|
+
# @param cartId
|
391
|
+
# - The cart id to check for empty
|
392
|
+
#
|
393
|
+
# @return Cart object (isEmpty method on Cart object can be used to check status)
|
394
|
+
#
|
395
|
+
# @raise App42Exception
|
396
|
+
#
|
397
|
+
|
398
|
+
def is_empty(cartId)
|
399
|
+
puts "Is Empty Called "
|
400
|
+
puts "Base url #{@base_url}"
|
401
|
+
response = nil;
|
402
|
+
cartObj = nil;
|
403
|
+
cartObj = Cart.new
|
404
|
+
util = Util.new
|
405
|
+
cartStatus = false;
|
406
|
+
util.throwExceptionIfNullOrBlank(cartId, "cartId");
|
407
|
+
begin
|
408
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
409
|
+
query_params = Hash.new
|
410
|
+
params = {
|
411
|
+
'apiKey'=> @api_key,
|
412
|
+
'version' => @version,
|
413
|
+
'timeStamp' => util.get_timestamp_utc,
|
414
|
+
}
|
415
|
+
query_params = params.clone
|
416
|
+
params.store("cartId", cartId)
|
417
|
+
puts query_params
|
418
|
+
signature = util.sign(@secret_key, params)
|
419
|
+
resource_url = "#{@version}/#{@resource}/#{cartId}/isEmpty"
|
420
|
+
response = connection.get(signature, resource_url, query_params)
|
421
|
+
puts "Response is #{response}"
|
422
|
+
cart = CartResponseBuilder.new
|
423
|
+
cartObj = cart.buildResponse(response)
|
424
|
+
cartStatus = cartObj.isEmpty()
|
425
|
+
rescue App42Exception =>e
|
426
|
+
raise e
|
427
|
+
rescue Exception => e
|
428
|
+
raise App42Exception.new(e)
|
429
|
+
end
|
430
|
+
return cartStatus
|
431
|
+
end
|
432
|
+
|
433
|
+
#
|
434
|
+
# Checks out the Cart and put it in CheckOut Stage and returns the Transaction Id
|
435
|
+
# The transaction id has to be used in future to update the Payment Status.
|
436
|
+
#
|
437
|
+
# @param cartID
|
438
|
+
# - The cart id that has to be checkedout
|
439
|
+
#
|
440
|
+
# @return Cart object containing Checked Out Cart Information with the Transaction Id
|
441
|
+
#
|
442
|
+
# @raise App42Exception
|
443
|
+
#
|
444
|
+
|
445
|
+
def check_out(cartId)
|
446
|
+
puts "Check Out Called "
|
447
|
+
puts "Base url #{@base_url}"
|
448
|
+
response = nil;
|
449
|
+
cartObj = nil;
|
450
|
+
cartObj = Cart.new
|
451
|
+
util = Util.new
|
452
|
+
util.throwExceptionIfNullOrBlank(cartId, "CartId");
|
453
|
+
begin
|
454
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
455
|
+
body = {'app42' => {"cart"=> {
|
456
|
+
"cartId" => cartId,
|
457
|
+
}}}.to_json
|
458
|
+
puts "Body #{body}"
|
459
|
+
query_params = Hash.new
|
460
|
+
params = {
|
461
|
+
'apiKey'=> @api_key,
|
462
|
+
'version' => @version,
|
463
|
+
'timeStamp' => util.get_timestamp_utc,
|
464
|
+
}
|
465
|
+
query_params = params.clone
|
466
|
+
params.store("body", body)
|
467
|
+
signature = util.sign(@secret_key, params)
|
468
|
+
resource_url = "#{@version}/#{@resource}/checkOut"
|
469
|
+
response = connection.put(signature, resource_url, query_params, body)
|
470
|
+
cart = CartResponseBuilder.new
|
471
|
+
cartObj = cart.buildResponse(response)
|
472
|
+
rescue App42Exception =>e
|
473
|
+
raise e
|
474
|
+
rescue Exception => e
|
475
|
+
raise App42Exception.new(e)
|
476
|
+
end
|
477
|
+
return cartObj
|
478
|
+
end
|
479
|
+
|
480
|
+
#
|
481
|
+
# Update Payment Status of the Cart. When a Cart is checkout, it is in Checkout state. The payment
|
482
|
+
# status has to be updated based on the Payment Gateway interaction
|
483
|
+
#
|
484
|
+
# @param cartID
|
485
|
+
# - The cart id for which the payment status has to be updated
|
486
|
+
# @param transactionID
|
487
|
+
# - Transaction id for which the payment status has to be updated
|
488
|
+
# @param paymentStatus
|
489
|
+
# - Payment Status to be updated. The probable values are PaymentStatus.DECLINED, PaymentStatus.AUTHORIZED, PaymentStatus.PENDING
|
490
|
+
#
|
491
|
+
# @return Cart object which contains Payment Status
|
492
|
+
#
|
493
|
+
# @raise App42Exception
|
494
|
+
#
|
495
|
+
|
496
|
+
def payment(cartId, transactionID, paymentStatus)
|
497
|
+
puts "Is Empty Called "
|
498
|
+
puts "Base url #{@base_url}"
|
499
|
+
response = nil;
|
500
|
+
cartObj = nil;
|
501
|
+
cartObj = Cart.new
|
502
|
+
util = Util.new
|
503
|
+
util.throwExceptionIfNullOrBlank(cartId, "CartId");
|
504
|
+
util.throwExceptionIfNullOrBlank(transactionID, "TransactionID");
|
505
|
+
util.throwExceptionIfNullOrBlank(paymentStatus, "paymentStatus");
|
506
|
+
begin
|
507
|
+
if (PaymentStatus.new.isAvailable(paymentStatus) == nil)
|
508
|
+
raise App42NotFoundException.new("Payment Status #{paymentStatus} does not Exist ");
|
509
|
+
end
|
510
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
511
|
+
body = {'app42' => {"cart"=> {
|
512
|
+
"cartId" => cartId,
|
513
|
+
"transactionId" => transactionID,
|
514
|
+
"status" => paymentStatus,
|
515
|
+
}}}.to_json
|
516
|
+
puts "Body #{body}"
|
517
|
+
query_params = Hash.new
|
518
|
+
params = {
|
519
|
+
'apiKey'=> @api_key,
|
520
|
+
'version' => @version,
|
521
|
+
'timeStamp' => util.get_timestamp_utc,
|
522
|
+
}
|
523
|
+
query_params = params.clone
|
524
|
+
params.store("body", body)
|
525
|
+
puts query_params
|
526
|
+
signature = util.sign(@secret_key, params)
|
527
|
+
resource_url = "#{@version}/#{@resource}/payment"
|
528
|
+
response = connection.put(signature, resource_url, query_params, body)
|
529
|
+
cart = CartResponseBuilder.new
|
530
|
+
cartObj = cart.buildResponse(response)
|
531
|
+
rescue App42Exception =>e
|
532
|
+
raise e
|
533
|
+
rescue Exception => e
|
534
|
+
raise App42Exception.new(e)
|
535
|
+
end
|
536
|
+
return cartObj
|
537
|
+
end
|
538
|
+
|
539
|
+
#
|
540
|
+
# Fetches Payment information for a User. This can be used to display Order and Payment History
|
541
|
+
#
|
542
|
+
# @param userId
|
543
|
+
# - User Id for whom payment information has to be fetched
|
544
|
+
#
|
545
|
+
# @return ArrayList containing Cart objects. Payment history can be retrieved from individual Cart object.
|
546
|
+
#
|
547
|
+
# @raise App42Exception
|
548
|
+
#
|
549
|
+
|
550
|
+
def get_payments_by_user(userId)
|
551
|
+
puts "Is Empty Called "
|
552
|
+
puts "Base url #{@base_url}"
|
553
|
+
response = nil;
|
554
|
+
cartList = nil;
|
555
|
+
cartList = Array.new
|
556
|
+
util = Util.new
|
557
|
+
util.throwExceptionIfNullOrBlank(userId, "UserId");
|
558
|
+
begin
|
559
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
560
|
+
query_params = Hash.new
|
561
|
+
params = {
|
562
|
+
'apiKey'=> @api_key,
|
563
|
+
'version' => @version,
|
564
|
+
'timeStamp' => util.get_timestamp_utc,
|
565
|
+
'userId' => userId
|
566
|
+
}
|
567
|
+
query_params = params.clone
|
568
|
+
params.store("userId", userId)
|
569
|
+
puts query_params
|
570
|
+
signature = util.sign(@secret_key, params)
|
571
|
+
resource_url = "#{@version}/#{@resource}/payments/user/#{userId}"
|
572
|
+
response = connection.get(signature, resource_url, query_params)
|
573
|
+
cart = CartResponseBuilder.new
|
574
|
+
cartList = cart.buildResponse(response)
|
575
|
+
rescue App42Exception =>e
|
576
|
+
raise e
|
577
|
+
rescue Exception => e
|
578
|
+
raise App42Exception.new(e)
|
579
|
+
end
|
580
|
+
return cartList
|
581
|
+
end
|
582
|
+
|
583
|
+
#
|
584
|
+
# Fetches Payment information for the specified Cart Id
|
585
|
+
#
|
586
|
+
# @param cartID
|
587
|
+
# - Cart Id for which the payment information has to be fetched
|
588
|
+
#
|
589
|
+
# @return Cart object which contains Payment History for the specified Cart
|
590
|
+
#
|
591
|
+
# @raise App42Exception
|
592
|
+
#
|
593
|
+
|
594
|
+
def get_payment_by_cart(cartId)
|
595
|
+
puts "Get Payments By Cart Called "
|
596
|
+
puts "Base url #{@base_url}"
|
597
|
+
response = nil;
|
598
|
+
cartObj = nil;
|
599
|
+
cartObj = Cart.new
|
600
|
+
util = Util.new
|
601
|
+
util.throwExceptionIfNullOrBlank(cartId, "CartId");
|
602
|
+
begin
|
603
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
604
|
+
query_params = Hash.new
|
605
|
+
params = {
|
606
|
+
'apiKey'=> @api_key,
|
607
|
+
'version' => @version,
|
608
|
+
'timeStamp' => util.get_timestamp_utc,
|
609
|
+
}
|
610
|
+
query_params = params.clone
|
611
|
+
params.store("cartId", cartId)
|
612
|
+
puts query_params
|
613
|
+
signature = util.sign(@secret_key, params)
|
614
|
+
resource_url = "#{@version}/#{@resource}/payments/cart/#{cartId}"
|
615
|
+
response = connection.get(signature, resource_url, query_params)
|
616
|
+
cart = CartResponseBuilder.new
|
617
|
+
cartObj = cart.buildResponse(response)
|
618
|
+
rescue App42Exception =>e
|
619
|
+
raise e
|
620
|
+
rescue Exception => e
|
621
|
+
raise App42Exception.new(e)
|
622
|
+
end
|
623
|
+
return cartObj
|
624
|
+
end
|
625
|
+
|
626
|
+
#
|
627
|
+
# Fetches Payment information based on User Id and Status
|
628
|
+
#
|
629
|
+
# @param userId
|
630
|
+
# - User Id for whom payment information has to be fetched
|
631
|
+
#
|
632
|
+
# @return ArrayList containing Cart objects. Payment history can be retrieved from individual Cart object.
|
633
|
+
# @return Payment History
|
634
|
+
#
|
635
|
+
# @raise App42Exception
|
636
|
+
#
|
637
|
+
|
638
|
+
def get_payments_by_user_and_status(userId, paymentStatus)
|
639
|
+
puts "Get Payments By User and Status Called "
|
640
|
+
puts "Base url #{@base_url}"
|
641
|
+
response = nil;
|
642
|
+
cartList = nil;
|
643
|
+
cartList = Array.new
|
644
|
+
util = Util.new
|
645
|
+
util.throwExceptionIfNullOrBlank(userId, "UserId");
|
646
|
+
util.throwExceptionIfNullOrBlank(paymentStatus, "paymentStatus");
|
647
|
+
begin
|
648
|
+
if (PaymentStatus.new.isAvailable(paymentStatus) == nil)
|
649
|
+
raise App42NotFoundException.new("Payment Status #{paymentStatus} does not Exist ");
|
650
|
+
end
|
651
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
652
|
+
query_params = Hash.new
|
653
|
+
params = {
|
654
|
+
'apiKey'=> @api_key,
|
655
|
+
'version' => @version,
|
656
|
+
'timeStamp' => util.get_timestamp_utc,
|
657
|
+
}
|
658
|
+
query_params = params.clone
|
659
|
+
params.store("userId", userId)
|
660
|
+
params.store("status", paymentStatus)
|
661
|
+
puts query_params
|
662
|
+
signature = util.sign(@secret_key, params)
|
663
|
+
resource_url = "#{@version}/#{@resource}/payments/user/#{userId}/#{paymentStatus}"
|
664
|
+
response = connection.get(signature, resource_url, query_params)
|
665
|
+
cart = CartResponseBuilder.new
|
666
|
+
cartList = cart.buildResponse(response)
|
667
|
+
rescue App42Exception =>e
|
668
|
+
raise e
|
669
|
+
rescue Exception => e
|
670
|
+
raise App42Exception.new(e)
|
671
|
+
end
|
672
|
+
return cartList
|
673
|
+
end
|
674
|
+
|
675
|
+
#
|
676
|
+
# Fetches Payment information based on Status
|
677
|
+
#
|
678
|
+
# @param paymentStatus
|
679
|
+
# - Status of type which payment information has to be fetched
|
680
|
+
#
|
681
|
+
# @return ArrayList containing Cart objects. Payment history can be retrieved from individual Cart object.
|
682
|
+
#
|
683
|
+
# @raise App42Exception
|
684
|
+
#
|
685
|
+
|
686
|
+
def get_payments_by_status(paymentStatus)
|
687
|
+
puts "Get Payments By Status Called "
|
688
|
+
puts "Base url #{@base_url}"
|
689
|
+
response = nil;
|
690
|
+
cartList = nil;
|
691
|
+
cartList = Array.new
|
692
|
+
util = Util.new
|
693
|
+
util.throwExceptionIfNullOrBlank(paymentStatus, "paymentStatus");
|
694
|
+
begin
|
695
|
+
if (PaymentStatus.new.isAvailable(paymentStatus) == nil)
|
696
|
+
raise App42NotFoundException.new("Payment Status #{paymentStatus} does not Exist ");
|
697
|
+
end
|
698
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
699
|
+
query_params = Hash.new
|
700
|
+
|
701
|
+
params = {
|
702
|
+
'apiKey'=> @api_key,
|
703
|
+
'version' => @version,
|
704
|
+
'timeStamp' => util.get_timestamp_utc,
|
705
|
+
}
|
706
|
+
query_params = params.clone
|
707
|
+
params.store("status", paymentStatus)
|
708
|
+
puts query_params
|
709
|
+
signature = util.sign(@secret_key, params)
|
710
|
+
resource_url = "#{@version}/#{@resource}/payments/status/#{paymentStatus}"
|
711
|
+
response = connection.get(signature, resource_url, query_params)
|
712
|
+
cart = CartResponseBuilder.new
|
713
|
+
cartList = cart.buildArrayResponse(response)
|
714
|
+
rescue App42Exception =>e
|
715
|
+
raise e
|
716
|
+
rescue Exception => e
|
717
|
+
raise App42Exception.new(e)
|
718
|
+
end
|
719
|
+
return cartList
|
720
|
+
end
|
721
|
+
|
722
|
+
#
|
723
|
+
# History of Carts and Payments for a User. It gives all the carts which are in AUTHORIZED, DECLINED, PENDING state.
|
724
|
+
#
|
725
|
+
# @param userId
|
726
|
+
# - User Id for whom payment history has to be fetched
|
727
|
+
#
|
728
|
+
# @return ArrayList containing Cart objects. Payment history can be retrieved from individual Cart object.
|
729
|
+
#
|
730
|
+
# @raise App42Exception
|
731
|
+
#
|
732
|
+
|
733
|
+
def get_payment_history_by_user(userId)
|
734
|
+
puts "Get Payment History By User Called "
|
735
|
+
puts "Base url #{@base_url}"
|
736
|
+
response = nil;
|
737
|
+
cartList = nil;
|
738
|
+
cartList = Array.new
|
739
|
+
util = Util.new
|
740
|
+
util.throwExceptionIfNullOrBlank(userId, "UserId");
|
741
|
+
begin
|
742
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
743
|
+
query_params = Hash.new
|
744
|
+
params = {
|
745
|
+
'apiKey'=> @api_key,
|
746
|
+
'version' => @version,
|
747
|
+
'timeStamp' => util.get_timestamp_utc,
|
748
|
+
}
|
749
|
+
query_params = params.clone
|
750
|
+
params.store("userId", userId)
|
751
|
+
puts query_params
|
752
|
+
signature = util.sign(@secret_key, params)
|
753
|
+
resource_url = "#{@version}/#{@resource}/payment/history/#{userId}"
|
754
|
+
response = connection.get(signature, resource_url, query_params)
|
755
|
+
cart = CartResponseBuilder.new
|
756
|
+
cartList = cart.buildResponse(response)
|
757
|
+
rescue App42Exception =>e
|
758
|
+
raise e
|
759
|
+
rescue Exception => e
|
760
|
+
raise App42Exception.new(e)
|
761
|
+
end
|
762
|
+
return cartList
|
763
|
+
end
|
764
|
+
|
765
|
+
#
|
766
|
+
# History of all carts. It gives all the carts which are in AUTHORIZED, DECLINED, PENDING state.
|
767
|
+
#
|
768
|
+
# @return ArrayList containing Cart objects. Payment history can be retrieved from individual Cart object.
|
769
|
+
#
|
770
|
+
# @raise App42Exception
|
771
|
+
#
|
772
|
+
|
773
|
+
def get_payment_history_all()
|
774
|
+
puts "Get Payment History By User Called "
|
775
|
+
puts "Base url #{@base_url}"
|
776
|
+
response = nil;
|
777
|
+
cartList = nil;
|
778
|
+
cartList = Array.new
|
779
|
+
util = Util.new
|
780
|
+
begin
|
781
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
782
|
+
query_params = Hash.new
|
783
|
+
params = {
|
784
|
+
'apiKey'=> @api_key,
|
785
|
+
'version' => @version,
|
786
|
+
'timeStamp' => util.get_timestamp_utc,
|
787
|
+
}
|
788
|
+
query_params = params.clone
|
789
|
+
puts query_params
|
790
|
+
signature = util.sign(@secret_key, params)
|
791
|
+
resource_url = "#{@version}/#{@resource}/payment/history"
|
792
|
+
response = connection.get(signature, resource_url, query_params)
|
793
|
+
cart = CartResponseBuilder.new
|
794
|
+
cartList = cart.buildArrayResponse(response)
|
795
|
+
rescue App42Exception =>e
|
796
|
+
raise e
|
797
|
+
rescue Exception => e
|
798
|
+
raise App42Exception.new(e)
|
799
|
+
end
|
800
|
+
return cartList
|
801
|
+
end
|
802
|
+
|
803
|
+
#
|
804
|
+
# To increase quantity of existing item in the cart.
|
805
|
+
#
|
806
|
+
# @return Cart object containing updated item.
|
807
|
+
#
|
808
|
+
# @raise App42Exception
|
809
|
+
#
|
810
|
+
|
811
|
+
def increase_quantity(cartID, itemID, itemQuantity)
|
812
|
+
puts "Increase Quantity Called "
|
813
|
+
puts "Base url #{@base_url}"
|
814
|
+
response = nil;
|
815
|
+
cartObj = nil;
|
816
|
+
cartObj = Cart.new
|
817
|
+
util = Util.new
|
818
|
+
util.throwExceptionIfNullOrBlank(cartID, "Cart Id");
|
819
|
+
util.throwExceptionIfNullOrBlank(itemID, "Item Id");
|
820
|
+
util.throwExceptionIfNullOrBlank(itemQuantity, "Quantity");
|
821
|
+
begin
|
822
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
823
|
+
body = {'app42' => {"cart"=> {
|
824
|
+
"cartId" => cartID,
|
825
|
+
"itemId" => itemID,
|
826
|
+
"quantity" => itemQuantity
|
827
|
+
}}}.to_json
|
828
|
+
puts "Body #{body}"
|
829
|
+
query_params = Hash.new
|
830
|
+
params = {
|
831
|
+
'apiKey'=> @api_key,
|
832
|
+
'version' => @version,
|
833
|
+
'timeStamp' => util.get_timestamp_utc,
|
834
|
+
}
|
835
|
+
query_params = params.clone
|
836
|
+
params.store("body", body)
|
837
|
+
puts query_params
|
838
|
+
signature = util.sign(@secret_key, params)
|
839
|
+
resource_url = "#{@version}/#{@resource}/increaseQuantity"
|
840
|
+
response = connection.put(signature, resource_url, query_params, body)
|
841
|
+
cart = CartResponseBuilder.new
|
842
|
+
cartObj = cart.buildResponse(response)
|
843
|
+
rescue App42Exception =>e
|
844
|
+
raise e
|
845
|
+
rescue Exception => e
|
846
|
+
raise App42Exception.new(e)
|
847
|
+
end
|
848
|
+
return cartObj
|
849
|
+
end
|
850
|
+
|
851
|
+
#
|
852
|
+
# To decrease quantity of existing item in the cart.
|
853
|
+
#
|
854
|
+
# @return Cart object containing updated item.
|
855
|
+
#
|
856
|
+
# @raise App42Exception
|
857
|
+
#
|
858
|
+
|
859
|
+
def decrease_quantity(cartId, itemId, itemQuantity)
|
860
|
+
puts "Decrease Quantity Called "
|
861
|
+
puts "Base url #{@base_url}"
|
862
|
+
response = nil;
|
863
|
+
cartObj = nil;
|
864
|
+
cartObj = Cart.new
|
865
|
+
util = Util.new
|
866
|
+
util.throwExceptionIfNullOrBlank(cartId, "CartId");
|
867
|
+
util.throwExceptionIfNullOrBlank(itemId, "ItemId");
|
868
|
+
util.throwExceptionIfNullOrBlank(itemQuantity, "ItemQuantity");
|
869
|
+
begin
|
870
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
871
|
+
body = {'app42' => {"cart"=> {
|
872
|
+
"cartId" => cartId,
|
873
|
+
"itemId" => itemId,
|
874
|
+
"quantity" => itemQuantity
|
875
|
+
}}}.to_json
|
876
|
+
puts "Body #{body}"
|
877
|
+
query_params = Hash.new
|
878
|
+
params = {
|
879
|
+
'apiKey'=> @api_key,
|
880
|
+
'version' => @version,
|
881
|
+
'timeStamp' => util.get_timestamp_utc,
|
882
|
+
}
|
883
|
+
query_params = params.clone
|
884
|
+
puts params
|
885
|
+
params.store("body", body)
|
886
|
+
puts query_params
|
887
|
+
signature = util.sign(@secret_key, params)
|
888
|
+
resource_url = "#{@version}/#{@resource}/decreaseQuantity"
|
889
|
+
response = connection.put(signature, resource_url, query_params,body)
|
890
|
+
cart = CartResponseBuilder.new
|
891
|
+
cartObj = cart.buildResponse(response)
|
892
|
+
rescue App42Exception =>e
|
893
|
+
raise e
|
894
|
+
rescue Exception => e
|
895
|
+
raise App42Exception.new(e)
|
896
|
+
end
|
897
|
+
return cartObj
|
898
|
+
end
|
899
|
+
|
900
|
+
end
|
901
|
+
end
|
902
|
+
end
|