App42_Ruby_API 0.8.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/App42_Ruby_API.gemspec +33 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +29 -0
  7. data/Rakefile +1 -0
  8. data/TODO.rb +3 -0
  9. data/lib/App42_Ruby_API.rb +232 -0
  10. data/lib/App42_Ruby_API/App42BadParameterException.rb +31 -0
  11. data/lib/App42_Ruby_API/App42Exception.rb +39 -0
  12. data/lib/App42_Ruby_API/App42LimitException.rb +15 -0
  13. data/lib/App42_Ruby_API/App42NotFoundException.rb +15 -0
  14. data/lib/App42_Ruby_API/App42Response.rb +13 -0
  15. data/lib/App42_Ruby_API/App42ResponseBuilder.rb +67 -0
  16. data/lib/App42_Ruby_API/App42SecurityException.rb +15 -0
  17. data/lib/App42_Ruby_API/version.rb +3 -0
  18. data/lib/connection/RESTConnection.rb +713 -0
  19. data/lib/email/Email.rb +51 -0
  20. data/lib/email/EmailMIME.rb +51 -0
  21. data/lib/email/EmailResponseBuilder.rb +76 -0
  22. data/lib/email/EmailService.rb +244 -0
  23. data/lib/gallery/Album.rb +56 -0
  24. data/lib/gallery/AlbumResponseBuilder.rb +168 -0
  25. data/lib/gallery/AlbumService.rb +337 -0
  26. data/lib/gallery/PhotoService.rb +591 -0
  27. data/lib/game/Game.rb +39 -0
  28. data/lib/game/GameResponseBuilder.rb +106 -0
  29. data/lib/game/GameService.rb +268 -0
  30. data/lib/game/Reward.rb +24 -0
  31. data/lib/game/RewardResponseBuilder.rb +85 -0
  32. data/lib/game/RewardService.rb +440 -0
  33. data/lib/game/ScoreBoardService.rb +433 -0
  34. data/lib/game/ScoreService.rb +157 -0
  35. data/lib/geo/Geo.rb +51 -0
  36. data/lib/geo/GeoPoint.rb +43 -0
  37. data/lib/geo/GeoResponseBuilder.rb +145 -0
  38. data/lib/geo/GeoService.rb +505 -0
  39. data/lib/imageProcessor/Image.rb +42 -0
  40. data/lib/imageProcessor/ImageProcessorResponseBuilder.rb +40 -0
  41. data/lib/imageProcessor/ImageProcessorService.rb +1054 -0
  42. data/lib/log/Log.rb +49 -0
  43. data/lib/log/LogResponseBuilder.rb +61 -0
  44. data/lib/log/LogService.rb +920 -0
  45. data/lib/message/Queue.rb +50 -0
  46. data/lib/message/QueueResponseBuilder.rb +64 -0
  47. data/lib/message/QueueService.rb +469 -0
  48. data/lib/push/DeviceType.rb +56 -0
  49. data/lib/push/PushNotification.rb +38 -0
  50. data/lib/push/PushNotificationResposneBuilder.rb +74 -0
  51. data/lib/push/PushNotificationService.rb +458 -0
  52. data/lib/recommend/PreferenceData.rb +25 -0
  53. data/lib/recommend/Recommender.rb +48 -0
  54. data/lib/recommend/RecommenderResponseBuilder.rb +70 -0
  55. data/lib/recommend/RecommenderService.rb +1092 -0
  56. data/lib/recommend/RecommenderSimilarity.rb +52 -0
  57. data/lib/review/Review.rb +38 -0
  58. data/lib/review/ReviewResponseBuilder.rb +76 -0
  59. data/lib/review/ReviewService.rb +590 -0
  60. data/lib/session/Session.rb +43 -0
  61. data/lib/session/SessionResponseBuilder.rb +70 -0
  62. data/lib/session/SessionService.rb +427 -0
  63. data/lib/shopping/Cart.rb +77 -0
  64. data/lib/shopping/CartResponseBuilder.rb +118 -0
  65. data/lib/shopping/CartService.rb +902 -0
  66. data/lib/shopping/Catalogue.rb +79 -0
  67. data/lib/shopping/CatalogueResponseBuilder.rb +170 -0
  68. data/lib/shopping/CatalogueService.rb +649 -0
  69. data/lib/shopping/ItemData.rb +29 -0
  70. data/lib/shopping/PaymentStatus.rb +60 -0
  71. data/lib/social/Social.rb +35 -0
  72. data/lib/social/SocialResponseBuilder.rb +38 -0
  73. data/lib/social/SocialService.rb +585 -0
  74. data/lib/storage/OrderByType.rb +29 -0
  75. data/lib/storage/Query.rb +39 -0
  76. data/lib/storage/QueryBuilder.rb +118 -0
  77. data/lib/storage/Storage.rb +45 -0
  78. data/lib/storage/StorageResponseBuilder.rb +86 -0
  79. data/lib/storage/StorageService.rb +775 -0
  80. data/lib/upload/Upload.rb +40 -0
  81. data/lib/upload/UploadFileType.rb +83 -0
  82. data/lib/upload/UploadResponseBuilder.rb +58 -0
  83. data/lib/upload/UploadService.rb +960 -0
  84. data/lib/user/User.rb +102 -0
  85. data/lib/user/UserResponseBuilder.rb +105 -0
  86. data/lib/user/UserService.rb +1209 -0
  87. data/lib/util/util.rb +244 -0
  88. data/question.rb +79 -0
  89. 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