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,50 @@
|
|
1
|
+
# -----------------------------------------------------------------------
|
2
|
+
# Copyright © 2012 ShepHertz Technologies Pvt Ltd. All rights reserved.
|
3
|
+
# -----------------------------------------------------------------------
|
4
|
+
|
5
|
+
require 'App42_Ruby_API/App42Response'
|
6
|
+
|
7
|
+
#
|
8
|
+
#
|
9
|
+
# This Queue object is the value object which contains the properties of Queue
|
10
|
+
# along with the setter & getter for those properties.
|
11
|
+
#
|
12
|
+
#
|
13
|
+
|
14
|
+
module App42
|
15
|
+
module Message
|
16
|
+
class Queue < App42Response
|
17
|
+
attr_accessor :messageList,:queueName,:queueType,:description
|
18
|
+
@messageList = Array.new
|
19
|
+
@queueName
|
20
|
+
@queueType
|
21
|
+
@description
|
22
|
+
end
|
23
|
+
|
24
|
+
class Message
|
25
|
+
attr_accessor :correlationId,:payLoad,:messageId
|
26
|
+
|
27
|
+
#
|
28
|
+
# This is a constructor that takes no parameter
|
29
|
+
#
|
30
|
+
def initialize(queue)
|
31
|
+
queue.messageList.push(self);
|
32
|
+
end
|
33
|
+
@correlationId
|
34
|
+
@payLoad
|
35
|
+
@messageId
|
36
|
+
|
37
|
+
#
|
38
|
+
# Returns the Queue Response in JSON format.
|
39
|
+
#
|
40
|
+
# @return the response in JSON format.
|
41
|
+
#
|
42
|
+
#
|
43
|
+
|
44
|
+
def to_s
|
45
|
+
return "correlationId : #{@correlationId}" + "payLoad : #{@payLoad}" + "messageId : #{@messageId}" ;
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,64 @@
|
|
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 'message/Queue'
|
8
|
+
|
9
|
+
module App42
|
10
|
+
module Message
|
11
|
+
|
12
|
+
#
|
13
|
+
#
|
14
|
+
# QueueResponseBuilder class converts the JSON response retrieved from the
|
15
|
+
# server to the value object i.e Queue
|
16
|
+
#
|
17
|
+
#
|
18
|
+
class QueueResponseBuilder < App42ResponseBuilder
|
19
|
+
|
20
|
+
#
|
21
|
+
# Converts the response in JSON format to the value object i.e Queue
|
22
|
+
#
|
23
|
+
# @param json
|
24
|
+
# - response in JSON format
|
25
|
+
#
|
26
|
+
# @return Queue object filled with json data
|
27
|
+
#
|
28
|
+
#
|
29
|
+
def buildResponse(json)
|
30
|
+
puts "testing #{json}"
|
31
|
+
queuesJSONObj = getServiceJSONObject("queues", json)
|
32
|
+
queueJSONObj = queuesJSONObj["queue"]
|
33
|
+
queueObj = Queue.new()
|
34
|
+
|
35
|
+
messageList = Array.new
|
36
|
+
queueObj.messageList=(messageList)
|
37
|
+
|
38
|
+
queueObj.strResponse=json
|
39
|
+
queueObj.isResponseSuccess= isResponseSuccess(json)
|
40
|
+
buildObjectFromJSONTree(queueObj, queueJSONObj);
|
41
|
+
|
42
|
+
if queueJSONObj.key?("messages") == false
|
43
|
+
return queueObj
|
44
|
+
end
|
45
|
+
if queueJSONObj.fetch("messages").key?("message") == false
|
46
|
+
return queueObj
|
47
|
+
end
|
48
|
+
if queueJSONObj.fetch("messages").fetch("message").instance_of?(Hash)
|
49
|
+
messageObj = App42::Message::Message.new(queueObj)
|
50
|
+
buildObjectFromJSONTree(messageObj,queueJSONObj.fetch("messages").fetch("message"));
|
51
|
+
else
|
52
|
+
messagesJSONArray = queueJSONObj.fetch("messages").fetch("message");
|
53
|
+
messagesJSONArray.length.times do |i|
|
54
|
+
messageJSONObj = messagesJSONArray[i]
|
55
|
+
messageObj = App42::Message::Message.new(queueObj)
|
56
|
+
buildObjectFromJSONTree(messageObj, messageJSONObj);
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
return queueObj
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,469 @@
|
|
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 'message/QueueResponseBuilder'
|
11
|
+
require 'message/Queue'
|
12
|
+
|
13
|
+
module App42
|
14
|
+
module Message
|
15
|
+
#
|
16
|
+
# Manages Asynchronous queues. Allows to create, delete, purge messages, view pending messages and
|
17
|
+
# get all messages
|
18
|
+
#
|
19
|
+
# @see Queue
|
20
|
+
#
|
21
|
+
class QueueService
|
22
|
+
#
|
23
|
+
# this is a constructor that takes
|
24
|
+
#
|
25
|
+
# @param apiKey
|
26
|
+
# @param secretKey
|
27
|
+
# @param baseURL
|
28
|
+
#
|
29
|
+
def initialize(api_key, secret_key, base_url)
|
30
|
+
puts "Message Service->initialize"
|
31
|
+
@api_key = api_key
|
32
|
+
@secret_key = secret_key
|
33
|
+
@base_url = base_url
|
34
|
+
@resource = "queue"
|
35
|
+
@messageResource = "message"
|
36
|
+
@version = "1.0"
|
37
|
+
end
|
38
|
+
|
39
|
+
# Creates a type Pull Queue
|
40
|
+
#
|
41
|
+
# @param queueName
|
42
|
+
# - The name of the queue which has to be created
|
43
|
+
# @param queueDescription
|
44
|
+
# - The description of the queue
|
45
|
+
#
|
46
|
+
# @return Queue object containing queue name which has been created
|
47
|
+
#
|
48
|
+
# @raise App42Exception
|
49
|
+
#
|
50
|
+
|
51
|
+
def create_pull_queue(queueName, queueDescription)
|
52
|
+
puts "Create Pull Queue Called "
|
53
|
+
puts "Base url #{@base_url}"
|
54
|
+
response = nil;
|
55
|
+
messageObj = nil;
|
56
|
+
messageObj = Queue.new
|
57
|
+
util = Util.new
|
58
|
+
util.throwExceptionIfNullOrBlank(queueName, "Queue Name");
|
59
|
+
util.throwExceptionIfNullOrBlank(queueDescription, "Queue Description");
|
60
|
+
begin
|
61
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
62
|
+
body = {'app42' => {"queue"=> {
|
63
|
+
"name" => queueName,
|
64
|
+
"description" => queueDescription
|
65
|
+
}}}.to_json
|
66
|
+
puts "Body #{body}"
|
67
|
+
query_params = Hash.new
|
68
|
+
params = {
|
69
|
+
'apiKey'=> @api_key,
|
70
|
+
'version' => @version,
|
71
|
+
'timeStamp' => util.get_timestamp_utc,
|
72
|
+
"type"=>'pull'
|
73
|
+
}
|
74
|
+
query_params = params.clone
|
75
|
+
params.store("body", body)
|
76
|
+
puts query_params
|
77
|
+
signature = util.sign(@secret_key, params)
|
78
|
+
resource_url = "#{@version}/#{@resource}/pull"
|
79
|
+
response = connection.post(signature, resource_url, query_params, body)
|
80
|
+
message = QueueResponseBuilder.new()
|
81
|
+
messageObj = message.buildResponse(response)
|
82
|
+
rescue App42Exception =>e
|
83
|
+
raise e
|
84
|
+
rescue Exception => e
|
85
|
+
raise App42Exception.new(e)
|
86
|
+
end
|
87
|
+
return messageObj
|
88
|
+
end
|
89
|
+
|
90
|
+
#
|
91
|
+
# Deletes the Pull type Queue
|
92
|
+
#
|
93
|
+
# @param queueName
|
94
|
+
# - The name of the queue which has to be deleted
|
95
|
+
#
|
96
|
+
# @return App42Response if deleted successfully
|
97
|
+
#
|
98
|
+
# @raise App42Exception
|
99
|
+
#
|
100
|
+
|
101
|
+
def delete_pull_queue(queueName)
|
102
|
+
puts "Delete Pull Queue Called "
|
103
|
+
puts "Base url #{@base_url}"
|
104
|
+
response = nil;
|
105
|
+
responseObj = App42Response.new();
|
106
|
+
util = Util.new
|
107
|
+
util.throwExceptionIfNullOrBlank(queueName, "Queue Name");
|
108
|
+
begin
|
109
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
110
|
+
query_params = Hash.new
|
111
|
+
params = {
|
112
|
+
'apiKey'=> @api_key,
|
113
|
+
'version' => @version,
|
114
|
+
'timeStamp' => util.get_timestamp_utc,
|
115
|
+
"type"=>'pull'
|
116
|
+
}
|
117
|
+
query_params = params.clone
|
118
|
+
params.store("queueName", queueName)
|
119
|
+
puts query_params
|
120
|
+
signature = util.sign(@secret_key, params)
|
121
|
+
resource_url = "#{@version}/#{@resource}/pull/#{queueName}"
|
122
|
+
response = connection.delete(signature, resource_url, query_params)
|
123
|
+
responseObj.strResponse=(response)
|
124
|
+
responseObj.isResponseSuccess=(true)
|
125
|
+
rescue App42Exception =>e
|
126
|
+
raise e
|
127
|
+
rescue Exception => e
|
128
|
+
raise App42Exception.new(e)
|
129
|
+
end
|
130
|
+
return responseObj
|
131
|
+
end
|
132
|
+
|
133
|
+
#
|
134
|
+
# Purges message on the Queue. Note: once the Queue is purged the messages
|
135
|
+
# are removed from the Queue and wont be available for dequeueing.
|
136
|
+
#
|
137
|
+
# @param queueName
|
138
|
+
# - The name of the queue which has to be purged
|
139
|
+
#
|
140
|
+
# @return Queue object containing queue name which has been purged
|
141
|
+
#
|
142
|
+
# @raise App42Exception
|
143
|
+
#
|
144
|
+
|
145
|
+
def purge_pull_queue(queueName)
|
146
|
+
puts "Purge Pull Queue Called "
|
147
|
+
puts "Base url #{@base_url}"
|
148
|
+
response = nil;
|
149
|
+
responseObj = App42Response.new();
|
150
|
+
util = Util.new
|
151
|
+
util.throwExceptionIfNullOrBlank(queueName, "Queue Name");
|
152
|
+
begin
|
153
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
154
|
+
query_params = Hash.new
|
155
|
+
params = {
|
156
|
+
'apiKey'=> @api_key,
|
157
|
+
'version' => @version,
|
158
|
+
'timeStamp' => util.get_timestamp_utc,
|
159
|
+
"type"=>'pull'
|
160
|
+
}
|
161
|
+
query_params = params.clone
|
162
|
+
params.store("queueName", queueName)
|
163
|
+
puts query_params
|
164
|
+
signature = util.sign(@secret_key, params)
|
165
|
+
resource_url = "#{@version}/#{@resource}/pull/purge/#{queueName}"
|
166
|
+
response = connection.delete(signature, resource_url, query_params)
|
167
|
+
responseObj.strResponse=(response)
|
168
|
+
responseObj.isResponseSuccess=(true)
|
169
|
+
rescue App42Exception =>e
|
170
|
+
raise e
|
171
|
+
rescue Exception => e
|
172
|
+
raise App42Exception.new(e)
|
173
|
+
end
|
174
|
+
return responseObj
|
175
|
+
end
|
176
|
+
|
177
|
+
#
|
178
|
+
# Messages which are pending to be dequeue. Note: Calling this method does not
|
179
|
+
# dequeue the messages in the Queue. The messages stay in the Queue till they are dequeued
|
180
|
+
#
|
181
|
+
# @param queueName
|
182
|
+
# - The name of the queue from which pending messages have to be fetched
|
183
|
+
#
|
184
|
+
# @return Queue object containing pending messages in the Queue
|
185
|
+
#
|
186
|
+
# @raise App42Exception
|
187
|
+
#
|
188
|
+
|
189
|
+
def pending_messages(queueName)
|
190
|
+
puts "Pending Messages Called "
|
191
|
+
puts "Base url #{@base_url}"
|
192
|
+
response = nil;
|
193
|
+
messageObj = nil;
|
194
|
+
messageObj = Queue.new
|
195
|
+
util = Util.new
|
196
|
+
util.throwExceptionIfNullOrBlank(queueName, "Queue Name");
|
197
|
+
begin
|
198
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
199
|
+
query_params = Hash.new
|
200
|
+
params = {
|
201
|
+
'apiKey'=> @api_key,
|
202
|
+
'version' => @version,
|
203
|
+
'timeStamp' => util.get_timestamp_utc,
|
204
|
+
}
|
205
|
+
query_params = params.clone
|
206
|
+
params.store("queueName", queueName)
|
207
|
+
puts query_params
|
208
|
+
signature = util.sign(@secret_key, params)
|
209
|
+
resource_url = "#{@version}/#{@resource}/pending/#{queueName}"
|
210
|
+
response = connection.get(signature, resource_url, query_params)
|
211
|
+
message = QueueResponseBuilder.new()
|
212
|
+
messageObj = message.buildResponse(response)
|
213
|
+
rescue App42Exception =>e
|
214
|
+
raise e
|
215
|
+
rescue Exception => e
|
216
|
+
raise App42Exception.new(e)
|
217
|
+
end
|
218
|
+
return messageObj
|
219
|
+
end
|
220
|
+
|
221
|
+
#
|
222
|
+
# Messages are retrieved and dequeued from the Queue.
|
223
|
+
#
|
224
|
+
# @param queueName
|
225
|
+
# - The name of the queue which have to be retrieved
|
226
|
+
# @param receiveTimeOut
|
227
|
+
# - Receive time out
|
228
|
+
#
|
229
|
+
# @return Queue object containing messages in the Queue
|
230
|
+
#
|
231
|
+
# @raise App42Exception
|
232
|
+
#
|
233
|
+
|
234
|
+
def get_messages(queueName, receiveTimeOut)
|
235
|
+
puts "Get Messages Called "
|
236
|
+
puts "Base url #{@base_url}"
|
237
|
+
response = nil;
|
238
|
+
messageObj = nil;
|
239
|
+
messageObj = Queue.new
|
240
|
+
util = Util.new
|
241
|
+
util.throwExceptionIfNullOrBlank(queueName, "Queue Name");
|
242
|
+
util.throwExceptionIfNullOrBlank(receiveTimeOut, "ReceiveTimeOut");
|
243
|
+
begin
|
244
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
245
|
+
query_params = Hash.new
|
246
|
+
params = {
|
247
|
+
'apiKey'=> @api_key,
|
248
|
+
'version' => @version,
|
249
|
+
'timeStamp' => util.get_timestamp_utc,
|
250
|
+
}
|
251
|
+
query_params = params.clone
|
252
|
+
params.store("queueName", queueName)
|
253
|
+
params.store("receiveTimeOut", (receiveTimeOut.to_i).to_s)
|
254
|
+
puts query_params
|
255
|
+
signature = util.sign(@secret_key, params)
|
256
|
+
resource_url = "#{@version}/#{@resource}/messages/#{queueName}/#{(receiveTimeOut.to_i).to_s}"
|
257
|
+
response = connection.get(signature, resource_url, query_params)
|
258
|
+
message = QueueResponseBuilder.new()
|
259
|
+
messageObj = message.buildResponse(response)
|
260
|
+
rescue App42Exception =>e
|
261
|
+
raise e
|
262
|
+
rescue Exception => e
|
263
|
+
raise App42Exception.new(e)
|
264
|
+
end
|
265
|
+
return messageObj
|
266
|
+
end
|
267
|
+
|
268
|
+
#
|
269
|
+
# Send message on the queue with an expiry. The message will expire if it is not pulled/dequeued before the expiry
|
270
|
+
#
|
271
|
+
# @param queueName
|
272
|
+
# - The name of the queue to which the message has to be sent
|
273
|
+
# @param msg
|
274
|
+
# - Message that has to be sent
|
275
|
+
# @param exp
|
276
|
+
# - Message expiry time
|
277
|
+
#
|
278
|
+
# @return Queue object containing message which has been sent with its message id and correlation id
|
279
|
+
#
|
280
|
+
# @raise App42Exception
|
281
|
+
#
|
282
|
+
|
283
|
+
def send_message(queueName, msg, exp)
|
284
|
+
puts "Get Messages Called "
|
285
|
+
puts "Base url #{@base_url}"
|
286
|
+
response = nil;
|
287
|
+
messageObj = nil;
|
288
|
+
messageObj = Queue.new
|
289
|
+
util = Util.new
|
290
|
+
util.throwExceptionIfNullOrBlank(queueName, "Queue Name");
|
291
|
+
util.throwExceptionIfNullOrBlank(msg, "Message");
|
292
|
+
util.throwExceptionIfNullOrBlank(exp, "Exipiration");
|
293
|
+
begin
|
294
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
295
|
+
body = {'app42' => {"payLoad"=> {
|
296
|
+
"message" => msg,
|
297
|
+
"expiration" => exp
|
298
|
+
}}}.to_json
|
299
|
+
puts "Body #{body}"
|
300
|
+
query_params = Hash.new
|
301
|
+
params = {
|
302
|
+
'apiKey'=> @api_key,
|
303
|
+
'version' => @version,
|
304
|
+
'timeStamp' => util.get_timestamp_utc,
|
305
|
+
'queueName' => queueName
|
306
|
+
}
|
307
|
+
query_params = params.clone
|
308
|
+
params.store("body", body)
|
309
|
+
puts query_params
|
310
|
+
signature = util.sign(@secret_key, params)
|
311
|
+
resource_url = "#{@version}/#{@messageResource}/#{queueName}"
|
312
|
+
response = connection.post(signature, resource_url, query_params, body)
|
313
|
+
message = QueueResponseBuilder.new()
|
314
|
+
messageObj = message.buildResponse(response)
|
315
|
+
rescue App42Exception =>e
|
316
|
+
raise e
|
317
|
+
rescue Exception => e
|
318
|
+
raise App42Exception.new(e)
|
319
|
+
end
|
320
|
+
return messageObj
|
321
|
+
end
|
322
|
+
|
323
|
+
#
|
324
|
+
# Pulls all the message from the queue
|
325
|
+
#
|
326
|
+
# @param queueName
|
327
|
+
# - The name of the queue from which messages have to be pulled
|
328
|
+
# @param receiveTimeOut
|
329
|
+
# - Receive time out
|
330
|
+
#
|
331
|
+
# @return Queue object containing messages which have been pulled
|
332
|
+
#
|
333
|
+
# @raise App42Exception
|
334
|
+
#
|
335
|
+
|
336
|
+
def receive_message(queueName, receiveTimeOut)
|
337
|
+
puts "Receive Message Called "
|
338
|
+
puts "Base url #{@base_url}"
|
339
|
+
response = nil;
|
340
|
+
messageObj = nil;
|
341
|
+
messageObj = Queue.new
|
342
|
+
util = Util.new
|
343
|
+
util.throwExceptionIfNullOrBlank(queueName, "Queue Name");
|
344
|
+
util.throwExceptionIfNullOrBlank(receiveTimeOut, "ReceiveTimeOut");
|
345
|
+
begin
|
346
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
347
|
+
query_params = Hash.new
|
348
|
+
params = {
|
349
|
+
'apiKey'=> @api_key,
|
350
|
+
'version' => @version,
|
351
|
+
'timeStamp' => util.get_timestamp_utc,
|
352
|
+
}
|
353
|
+
query_params = params.clone
|
354
|
+
params.store("queueName", queueName)
|
355
|
+
params.store("receiveTimeOut", "" + (receiveTimeOut.to_i).to_s)
|
356
|
+
puts query_params
|
357
|
+
signature = util.sign(@secret_key, params)
|
358
|
+
resource_url = "#{@version}/#{@messageResource}/#{queueName}/#{(receiveTimeOut.to_i).to_s}"
|
359
|
+
response = connection.get(signature, resource_url, query_params)
|
360
|
+
message = QueueResponseBuilder.new()
|
361
|
+
messageObj = message.buildResponse(response)
|
362
|
+
rescue App42Exception =>e
|
363
|
+
raise e
|
364
|
+
rescue Exception => e
|
365
|
+
raise App42Exception.new(e)
|
366
|
+
end
|
367
|
+
return messageObj
|
368
|
+
end
|
369
|
+
|
370
|
+
#
|
371
|
+
# Pull message based on the correlation id
|
372
|
+
#
|
373
|
+
# @param queueName
|
374
|
+
# - The name of the queue from which the message has to be pulled
|
375
|
+
# @param receiveTimeOut
|
376
|
+
# - Receive time out
|
377
|
+
# @param correlationId
|
378
|
+
# - Correlation Id for which message has to be pulled
|
379
|
+
#
|
380
|
+
# @return Queue containing message which has pulled based on the correlation id
|
381
|
+
#
|
382
|
+
# @raise App42Exception
|
383
|
+
#
|
384
|
+
|
385
|
+
def receive_message_by_correlation_id(queueName, receiveTimeOut, correlationId)
|
386
|
+
puts "Receive Message Called "
|
387
|
+
puts "Base url #{@base_url}"
|
388
|
+
response = nil;
|
389
|
+
messageObj = nil;
|
390
|
+
messageObj = Queue.new
|
391
|
+
util = Util.new
|
392
|
+
util.throwExceptionIfNullOrBlank(queueName, "Queue Name");
|
393
|
+
util.throwExceptionIfNullOrBlank(receiveTimeOut, "ReceiveTimeOut");
|
394
|
+
util.throwExceptionIfNullOrBlank(correlationId, "Correlation Id");
|
395
|
+
begin
|
396
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
397
|
+
query_params = Hash.new
|
398
|
+
params = {
|
399
|
+
'apiKey'=> @api_key,
|
400
|
+
'version' => @version,
|
401
|
+
'timeStamp' => util.get_timestamp_utc,
|
402
|
+
}
|
403
|
+
query_params = params.clone
|
404
|
+
params.store("queueName", queueName)
|
405
|
+
params.store("receiveTimeOut", "" + (receiveTimeOut.to_i).to_s)
|
406
|
+
params.store("correlationId", "" + correlationId)
|
407
|
+
puts query_params
|
408
|
+
signature = util.sign(@secret_key, params)
|
409
|
+
resource_url = "#{@version}/#{@messageResource}/#{queueName}/#{(receiveTimeOut.to_i).to_s}/#{correlationId}"
|
410
|
+
response = connection.get(signature, resource_url, query_params)
|
411
|
+
message = QueueResponseBuilder.new()
|
412
|
+
messageObj = message.buildResponse(response)
|
413
|
+
rescue App42Exception =>e
|
414
|
+
raise e
|
415
|
+
rescue Exception => e
|
416
|
+
raise App42Exception.new(e)
|
417
|
+
end
|
418
|
+
return messageObj
|
419
|
+
end
|
420
|
+
|
421
|
+
#
|
422
|
+
# Remove message from the queue based on the message id. Note: Once the message is removed it cannot be pulled
|
423
|
+
#
|
424
|
+
# @param queueName
|
425
|
+
# - The name of the queue from which the message has to be removed
|
426
|
+
# @param messageId
|
427
|
+
# - The message id of the message which has to be removed.
|
428
|
+
#
|
429
|
+
# @return App42Response if removed successfully
|
430
|
+
#
|
431
|
+
# @raise App42Exception
|
432
|
+
#
|
433
|
+
|
434
|
+
def remove_message(queueName, messageId)
|
435
|
+
puts "Remove Message Called "
|
436
|
+
puts "Base url #{@base_url}"
|
437
|
+
response = nil;
|
438
|
+
responseObj = App42Response.new();
|
439
|
+
util = Util.new
|
440
|
+
util.throwExceptionIfNullOrBlank(queueName, "Queue Name");
|
441
|
+
util.throwExceptionIfNullOrBlank(messageId, "messageId");
|
442
|
+
begin
|
443
|
+
connection = App42::Connection::RESTConnection.new(@base_url)
|
444
|
+
query_params = Hash.new
|
445
|
+
params = {
|
446
|
+
'apiKey'=> @api_key,
|
447
|
+
'version' => @version,
|
448
|
+
'timeStamp' => util.get_timestamp_utc,
|
449
|
+
}
|
450
|
+
query_params = params.clone
|
451
|
+
params.store("queueName", queueName)
|
452
|
+
params.store("messageId", messageId)
|
453
|
+
puts query_params
|
454
|
+
signature = util.sign(@secret_key, params)
|
455
|
+
resource_url = "#{@version}/#{@messageResource}/#{queueName}/#{messageId}"
|
456
|
+
response = connection.delete(signature, resource_url, query_params)
|
457
|
+
responseObj.strResponse=(response)
|
458
|
+
responseObj.isResponseSuccess=(true)
|
459
|
+
rescue App42Exception =>e
|
460
|
+
raise e
|
461
|
+
rescue Exception => e
|
462
|
+
raise App42Exception.new(e)
|
463
|
+
end
|
464
|
+
return responseObj
|
465
|
+
end
|
466
|
+
|
467
|
+
end
|
468
|
+
end
|
469
|
+
end
|