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.
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,52 @@
1
+ # -----------------------------------------------------------------------
2
+ # Copyright © 2012 ShepHertz Technologies Pvt Ltd. All rights reserved.
3
+ # -----------------------------------------------------------------------
4
+
5
+ require 'App42_Ruby_API/App42Response.rb'
6
+
7
+ #
8
+ # An enum that contains 2 types of the Recommender Similarity either EuclideanDistanceSimilarity or PearsonCorrelationSimilarity.
9
+ #
10
+ #
11
+
12
+ module App42
13
+ module Recommend
14
+ class RecommenderSimilarity < App42Response
15
+ unless (const_defined?(:EUCLIDEAN_DISTANCE))
16
+ EUCLIDEAN_DISTANCE = "EuclideanDistanceSimilarity"
17
+ end
18
+ unless (const_defined?(:PEARSON_CORRELATION))
19
+ PEARSON_CORRELATION = "PearsonCorrelationSimilarity"
20
+ end
21
+
22
+ #
23
+ # Sets the value of the Recommender Similarity. EuclideanDistanceSimilarity
24
+ # or PearsonCorrelationSimilarity.
25
+ #
26
+ # @param string
27
+ # - the string of Recommender Similarity either EuclideanDistanceSimilarity or PearsonCorrelationSimilarity.
28
+ #
29
+ def enum(string)
30
+ return RecommenderSimilarity.const_get(string)
31
+ end
32
+
33
+ #
34
+ # Returns the value of Recommender Similarity either EuclideanDistanceSimilarity or PearsonCorrelationSimilarity.
35
+ #
36
+ # @return the value of Recommender Similarity.
37
+ #
38
+ #
39
+
40
+ def isAvailable(string)
41
+ if(string == "EuclideanDistanceSimilarity")
42
+ return "EUCLIDEAN_DISTANCE"
43
+ elsif(string == "PearsonCorrelationSimilarity")
44
+ return "PEARSON_CORRELATION";
45
+ else
46
+ return nil
47
+ end
48
+ end
49
+
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,38 @@
1
+ # -----------------------------------------------------------------------
2
+ # Copyright © 2012 ShepHertz Technologies Pvt Ltd. All rights reserved.
3
+ # -----------------------------------------------------------------------
4
+
5
+ require 'App42_Ruby_API/App42Response'
6
+
7
+ #
8
+ #
9
+ # This Review object is the value object which contains the properties of
10
+ # Review.
11
+ #
12
+ #
13
+
14
+ module App42
15
+ module Review
16
+ class Review < App42Response
17
+ attr_accessor :userId, :itemId,:status,:reviewId,:comment,:rating,:createdOn
18
+
19
+ @userId
20
+ @itemId
21
+ @status
22
+ @reviewId
23
+ @comment
24
+ @rating
25
+ @createdOn
26
+
27
+ #
28
+ # Returns the User Response in JSON format.
29
+ #
30
+ # @return the response in JSON format.
31
+ #
32
+ def to_s
33
+ return "UserId : #{@userId}" + "ItemId : #{@itemId}" + "Status : #{@status}" + "Review ID : #{@reviewId}" + "Comment + #{@comment}" + "Rating : #{@rating}" + "Created On : #{@creartedOn}";
34
+ end
35
+
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,76 @@
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 'review/Review'
8
+
9
+ module App42
10
+ module Review
11
+ #
12
+ #
13
+ # ReviewResponseBuilder class converts the JSON response retrieved from the
14
+ # server to the value object i.e Review
15
+ #
16
+ #
17
+ class ReviewResponseBuilder < App42ResponseBuilder
18
+
19
+ #
20
+ # Converts the response in JSON format to the value object i.e Review
21
+ #
22
+ # @param json
23
+ # - response in JSON format
24
+ #
25
+ # @return Review object filled with json data
26
+ #
27
+ def buildResponse(json)
28
+ reviewsJSONObject = getServiceJSONObject("reviews", json)
29
+ reviewJSONObject = reviewsJSONObject.fetch("review")
30
+ review = Review.new
31
+ review.strResponse=json
32
+ review.isResponseSuccess = isResponseSuccess(json)
33
+ buildObjectFromJSONTree(review, reviewJSONObject);
34
+ return review
35
+ end
36
+
37
+ #
38
+ # Converts the response in JSON format to the list of value objects i.e
39
+ # Review
40
+ #
41
+ # @param json
42
+ # - response in JSON format
43
+ #
44
+ # @return List of Review object filled with json data
45
+ #
46
+ #
47
+
48
+ def buildArrayResponse(json)
49
+ reviewList = Array.new
50
+ reviewsJSONObject = getServiceJSONObject("reviews", json)
51
+
52
+ if reviewsJSONObject.fetch("review").instance_of?(Hash)
53
+ #Single Object
54
+ reviewJSONObj = reviewsJSONObject.fetch("review")
55
+ review = Review.new
56
+ review.strResponse=json
57
+ review.isResponseSuccess = isResponseSuccess(json)
58
+ buildObjectFromJSONTree(review, reviewJSONObj);
59
+ reviewList.push(review)
60
+ else
61
+ #Multiple Object
62
+ reviewJSONArray = reviewsJSONObject.fetch("review")
63
+ reviewJSONArray.length.times do |i|
64
+ reviewJSONObj = reviewJSONArray[i]
65
+ review = Review.new
66
+ review.strResponse=json
67
+ review.isResponseSuccess = isResponseSuccess(json)
68
+ buildObjectFromJSONTree(review, reviewJSONObj);
69
+ reviewList.push(review)
70
+ end
71
+ end
72
+ return reviewList
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,590 @@
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 'review/ReviewResponseBuilder'
11
+ require 'review/Review'
12
+
13
+ module App42
14
+ module Review
15
+ #
16
+ # The service is a Review & Rating manager for any item. The item can be anything which has an id
17
+ #
18
+ # e.g. App on a AppStore/Marketplace, items in a catalogue, articles, blogs etc.
19
+ # It manages the comments and its associated rating. It also provides methods to fetch average, highest etc. Reviews.
20
+ # Reviews can be also be muted or unmuted if it has any objectionable content.
21
+ #
22
+ # @see Review
23
+ #
24
+ class ReviewService
25
+ #
26
+ # this is a constructor that takes
27
+ #
28
+ # @param apiKey
29
+ # @param secretKey
30
+ # @param baseURL
31
+ #
32
+ def initialize(api_key, secret_key, base_url)
33
+ puts "Session Service->initialize"
34
+ @api_key = api_key
35
+ @secret_key = secret_key
36
+ @base_url = base_url
37
+ @resource = "review"
38
+ @version = "1.0"
39
+ end
40
+
41
+ #
42
+ # Creates review for the specified item on the cloud
43
+ #
44
+ # @param userId
45
+ # - The user who has created the review
46
+ # @param itemId
47
+ # - The item for which the review has to be created
48
+ # @param reviewComment
49
+ # - The review comment
50
+ # @param reviewRating
51
+ # - Review rating in double
52
+ #
53
+ # @return Review object containing the review which has been created
54
+ #
55
+ # @raise App42Exception
56
+ #
57
+
58
+ def create_review(userID, itemID, reviewComment, reviewRating)
59
+ puts "create_review Called "
60
+ puts "Base url #{@base_url}"
61
+ response = nil
62
+ reviewObj = nil
63
+ reviewObj = Review.new()
64
+ util = Util.new
65
+ util.throwExceptionIfNullOrBlank(userID, "User Id");
66
+ util.throwExceptionIfNullOrBlank(itemID, "Item Id");
67
+ util.throwExceptionIfNullOrBlank(reviewComment, "Review Comment");
68
+ util.throwExceptionIfNullOrBlank(reviewRating, "Review Rating");
69
+ begin
70
+ connection = App42::Connection::RESTConnection.new(@base_url)
71
+ body = {'app42' => {"review"=> {
72
+ "userId" => userID,
73
+ "itemId" => itemID,
74
+ "comment" => reviewComment,
75
+ "rating" => (reviewRating.to_i).to_s
76
+ }}}.to_json
77
+ puts "Body #{body}"
78
+ params = Hash.new
79
+ query_params = Hash.new
80
+ params = {
81
+ 'apiKey'=> @api_key,
82
+ 'version' => @version,
83
+ 'timeStamp' => util.get_timestamp_utc,
84
+ }
85
+ query_params = params.clone
86
+ params.store("body", body)
87
+ signature = util.sign(@secret_key, params)
88
+ resource_url = "#{@version}/#{@resource}"
89
+ response = connection.post(signature, resource_url, query_params, body)
90
+ review = ReviewResponseBuilder.new
91
+ reviewObj = review.buildResponse(response)
92
+ rescue App42Exception =>e
93
+ raise e
94
+ rescue Exception => e
95
+ raise App42Exception.new(e)
96
+ end
97
+ return reviewObj
98
+ end
99
+
100
+ #
101
+ # Fetches all reviews for the App
102
+ #
103
+ # @return ArrayList of Review object containing all the reviews for the App
104
+ #
105
+ # @raise App42Exception
106
+ #
107
+
108
+ def get_all_reviews()
109
+ puts "getAllAttribute Review Called "
110
+ puts "Base url #{@base_url}"
111
+ response = nil
112
+ reviewList = nil
113
+ reviewList = Array.new
114
+ util = Util.new
115
+ begin
116
+ connection = App42::Connection::RESTConnection.new(@base_url)
117
+ query_params = Hash.new
118
+ params = {
119
+ 'apiKey'=> @api_key,
120
+ 'version' => @version,
121
+ 'timeStamp' => util.get_timestamp_utc,
122
+ }
123
+ query_params = params.clone
124
+ puts query_params
125
+ signature = util.sign(@secret_key, params)
126
+ resource_url = "#{@version}/#{@resource}"
127
+ response = connection.get(signature, resource_url, query_params)
128
+ review = ReviewResponseBuilder.new
129
+ reviewList = review.buildArrayResponse(response)
130
+ rescue App42Exception =>e
131
+ raise e
132
+ rescue Exception => e
133
+ raise App42Exception.new(e)
134
+ end
135
+ return reviewList
136
+ end
137
+
138
+ #
139
+ # Fetches all reviews for the App by Paging.
140
+ #
141
+ # @param max
142
+ # - Maximum number of records to be fetched
143
+ # @param offset
144
+ # - From where the records are to be fetched
145
+ #
146
+ # @return ArrayList of Review object containing all the reviews for the App
147
+ #
148
+ # @raise App42Exception
149
+ #
150
+
151
+ def get_all_reviews_by_paging(max, offset)
152
+ puts "get_all_reviews_by_paging Called "
153
+ puts "Base url #{@base_url}"
154
+ response = nil
155
+ reviewList = nil
156
+ reviewList = Array.new
157
+ util = Util.new
158
+ util.validateMax(max);
159
+ util.throwExceptionIfNullOrBlank(max, "Max");
160
+ util.throwExceptionIfNullOrBlank(offset, "Offset");
161
+ begin
162
+ connection = App42::Connection::RESTConnection.new(@base_url)
163
+ query_params = Hash.new
164
+ params = {
165
+ 'apiKey'=> @api_key,
166
+ 'version' => @version,
167
+ 'timeStamp' => util.get_timestamp_utc,
168
+ }
169
+ query_params = params.clone
170
+ params.store("max", "" + (max.to_i).to_s);
171
+ params.store("offset", "" + (offset.to_i).to_s);
172
+ puts query_params
173
+ signature = util.sign(@secret_key, params)
174
+ resource_url = "#{@version}/#{@resource}/paging/#{(max.to_i).to_s}/#{(offset.to_i).to_s}"
175
+ response = connection.get(signature, resource_url, query_params)
176
+ review = ReviewResponseBuilder.new
177
+ reviewList = review.buildArrayResponse(response)
178
+ rescue App42Exception =>e
179
+ raise e
180
+ rescue Exception => e
181
+ raise App42Exception.new(e)
182
+ end
183
+ return reviewList
184
+ end
185
+
186
+ #
187
+ # Fetches All Reviews based on the itemId
188
+ #
189
+ # @param itemId
190
+ # - The item for which reviews have to be fetched
191
+ #
192
+ # @return ArrayList of Review object containing all the reviews for a item
193
+ #
194
+ # @raise App42Exception
195
+ #
196
+
197
+ def get_reviews_by_item(itemId)
198
+ puts "get_reviews_by_item Called "
199
+ puts "Base url #{@base_url}"
200
+ response = nil
201
+ reviewList = nil;
202
+ reviewList = Array.new
203
+ util = Util.new
204
+ util.throwExceptionIfNullOrBlank(itemId, "Item Id");
205
+ begin
206
+ connection = App42::Connection::RESTConnection.new(@base_url)
207
+ params = Hash.new
208
+ query_params = Hash.new
209
+ params = {
210
+ 'apiKey'=> @api_key,
211
+ 'version' => @version,
212
+ 'timeStamp' => util.get_timestamp_utc,
213
+ }
214
+ query_params = params.clone
215
+ params.store("itemId", itemId);
216
+ signature = util.sign(@secret_key, params)
217
+ resource_url = "#{@version}/#{@resource}/item/#{itemId}"
218
+ response = connection.get(signature, resource_url, query_params)
219
+ review = ReviewResponseBuilder.new
220
+ reviewList = review.buildArrayResponse(response)
221
+ rescue App42Exception =>e
222
+ raise e
223
+ rescue Exception => e
224
+ raise App42Exception.new(e)
225
+ end
226
+ return reviewList
227
+ end
228
+
229
+ #
230
+ # Fetches All Reviews based on the itemId by Paging.
231
+ #
232
+ # @param itemId
233
+ # - The item for which reviews have to be fetched
234
+ # @param max
235
+ # - Maximum number of records to be fetched
236
+ # @param offset
237
+ # - From where the records are to be fetched
238
+ #
239
+ # @return ArrayList of Review object containing all the reviews for a item
240
+ #
241
+ # @raise App42Exception
242
+ #
243
+
244
+ def get_review_by_item_by_paging(itemId, max, offset)
245
+ puts "get_review_by_item_by_paging Called "
246
+ puts "Base url #{@base_url}"
247
+ response = nil
248
+ reviewList = nil;
249
+ reviewList = Array.new
250
+ util = Util.new
251
+ util.validateMax(max);
252
+ util.throwExceptionIfNullOrBlank(max, "Max");
253
+ util.throwExceptionIfNullOrBlank(offset, "Offset");
254
+ util.throwExceptionIfNullOrBlank(itemId, "Item Id");
255
+ begin
256
+ connection = App42::Connection::RESTConnection.new(@base_url)
257
+ params = Hash.new
258
+ query_params = Hash.new
259
+ params = {
260
+ 'apiKey'=> @api_key,
261
+ 'version' => @version,
262
+ 'timeStamp' => util.get_timestamp_utc,
263
+ }
264
+ query_params = params.clone
265
+ params.store("max", "" + (max.to_i).to_s);
266
+ params.store("offset", "" + (offset.to_i).to_s);
267
+ params.store("itemId", "" + itemId);
268
+ signature = util.sign(@secret_key, params)
269
+ resource_url = "#{@version}/#{@resource}/item/#{itemId}/#{(max.to_i).to_s}/#{(offset.to_i).to_s}"
270
+ response = connection.get(signature, resource_url, query_params)
271
+ review = ReviewResponseBuilder.new
272
+ reviewList = review.buildArrayResponse(response)
273
+ rescue App42Exception =>e
274
+ raise e
275
+ rescue Exception => e
276
+ raise App42Exception.new(e)
277
+ end
278
+ return reviewList
279
+ end
280
+
281
+ #
282
+ # Fetches the highest review for the specified itemId
283
+ #
284
+ # @param itemId
285
+ # - The item for which the highest review has to be fetched
286
+ #
287
+ # @return Review object containing the highest review for a item
288
+ #
289
+ # @raise App42Exception
290
+ #
291
+
292
+ def get_highest_review_by_item(itemId)
293
+ puts "get_highest_review_by_item Review Called "
294
+ puts "Base url #{@base_url}"
295
+ response = nil
296
+ reviewObj = nil
297
+ reviewObj = Review.new()
298
+ util = Util.new
299
+ util.throwExceptionIfNullOrBlank(itemId, "Item Id");
300
+ begin
301
+ connection = App42::Connection::RESTConnection.new(@base_url)
302
+ query_params = Hash.new
303
+ params = {
304
+ 'apiKey'=> @api_key,
305
+ 'version' => @version,
306
+ 'timeStamp' => util.get_timestamp_utc,
307
+ }
308
+ query_params = params.clone
309
+ puts params
310
+ params.store("itemId", itemId);
311
+ puts query_params
312
+ signature = util.sign(@secret_key, params)
313
+ resource_url = "#{@version}/#{@resource}/#{itemId}/highest"
314
+ response = connection.get(signature, resource_url, query_params)
315
+ review = ReviewResponseBuilder.new
316
+ reviewObj = review.buildResponse(response)
317
+ rescue App42Exception =>e
318
+ raise e
319
+ rescue Exception => e
320
+ raise App42Exception.new(e)
321
+ end
322
+ return reviewObj
323
+ end
324
+
325
+ #
326
+ # Fetches the lowest review for the specified itemId
327
+ #
328
+ # @param itemId
329
+ # - The item for which the lowest review has to be fetched
330
+ #
331
+ # @return Review object containing the lowest review for a item
332
+ #
333
+ # @raise App42Exception
334
+ #
335
+
336
+ def get_lowest_review_by_item(itemId)
337
+ puts "get_lowest_review_by_item Review Called "
338
+ puts "Base url #{@base_url}"
339
+ response = nil
340
+ reviewObj = nil
341
+ reviewObj = Review.new()
342
+ util = Util.new
343
+ util.throwExceptionIfNullOrBlank(itemId, "Item Id");
344
+ begin
345
+ connection = App42::Connection::RESTConnection.new(@base_url)
346
+ query_params = Hash.new
347
+ params = {
348
+ 'apiKey'=> @api_key,
349
+ 'version' => @version,
350
+ 'timeStamp' => util.get_timestamp_utc,
351
+ }
352
+ query_params = params.clone
353
+ params.store("itemId", itemId);
354
+ puts query_params
355
+ signature = util.sign(@secret_key, params)
356
+ resource_url = "#{@version}/#{@resource}/#{itemId}/lowest"
357
+ response = connection.get(signature, resource_url, query_params)
358
+ review = ReviewResponseBuilder.new
359
+ reviewObj = review.buildResponse(response)
360
+ rescue App42Exception =>e
361
+ raise e
362
+ rescue Exception => e
363
+ raise App42Exception.new(e)
364
+ end
365
+ return reviewObj
366
+ end
367
+
368
+ #
369
+ # Fetches the average review for the specified itemId
370
+ #
371
+ # @param itemId
372
+ # - The item for which the average review has to be fetched
373
+ #
374
+ # @return Review object containing the average review for a item
375
+ #
376
+ # @raise App42Exception
377
+ #
378
+
379
+ def get_average_review_by_item(itemId)
380
+ puts "get_average_review_by_item Review Called "
381
+ puts "Base url #{@base_url}"
382
+ response = nil
383
+ reviewObj = nil
384
+ reviewObj = Review.new()
385
+ util = Util.new
386
+ util.throwExceptionIfNullOrBlank(itemId, "Item Id");
387
+ begin
388
+ connection = App42::Connection::RESTConnection.new(@base_url)
389
+ query_params = Hash.new
390
+ params = {
391
+ 'apiKey'=> @api_key,
392
+ 'version' => @version,
393
+ 'timeStamp' => util.get_timestamp_utc,
394
+ }
395
+ query_params = params.clone
396
+ params.store("itemId", itemId);
397
+ puts query_params
398
+ signature = util.sign(@secret_key, params)
399
+ resource_url = "#{@version}/#{@resource}/#{itemId}/average"
400
+ response = connection.get(signature, resource_url, query_params)
401
+ review = ReviewResponseBuilder.new
402
+ reviewObj = review.buildResponse(response)
403
+ rescue App42Exception =>e
404
+ raise e
405
+ rescue Exception => e
406
+ raise App42Exception.new(e)
407
+ end
408
+ return reviewObj
409
+ end
410
+
411
+ #
412
+ # Mutes the specified review
413
+ #
414
+ # @param reviewId
415
+ # - The Id of the review which has to be muted
416
+ #
417
+ # @return App42Response if muted successfully
418
+ #
419
+ # @raise App42Exception
420
+ #
421
+
422
+ def mute(reviewId)
423
+ puts "mute review Called "
424
+ puts "Base url #{@base_url}"
425
+ response = nil
426
+ reviewObj = nil
427
+ reviewObj = Review.new()
428
+ util = Util.new
429
+ util.throwExceptionIfNullOrBlank(reviewId, "Review Id");
430
+ begin
431
+ connection = App42::Connection::RESTConnection.new(@base_url)
432
+ body = {'app42' => {"review"=> {
433
+ "id" => reviewId
434
+ }}}.to_json
435
+ puts "Body #{body}"
436
+ query_params = Hash.new
437
+ params = {
438
+ 'apiKey'=> @api_key,
439
+ 'version' => @version,
440
+ 'timeStamp' => util.get_timestamp_utc,
441
+ }
442
+ query_params = params.clone
443
+ params.store("body", body)
444
+ puts query_params
445
+ signature = util.sign(@secret_key, params)
446
+ resource_url = "#{@version}/#{@resource}/mute"
447
+ response = connection.put(signature, resource_url, query_params, body)
448
+ review = ReviewResponseBuilder.new
449
+ reviewObj = review.buildResponse(response)
450
+ rescue App42Exception =>e
451
+ raise e
452
+ rescue Exception => e
453
+ raise App42Exception.new(e)
454
+ end
455
+ return reviewObj
456
+ end
457
+
458
+ #
459
+ # UnMutes the specified review
460
+ #
461
+ # @param reviewId
462
+ # - The Id of the review which has to be unmuted
463
+ #
464
+ # @return App42Response if unmuted successfully
465
+ #
466
+ # @raise App42Exception
467
+ #
468
+
469
+ def unmute(reviewId)
470
+ puts "unmute review Called "
471
+ puts "Base url #{@base_url}"
472
+ response = nil
473
+ reviewObj = nil
474
+ reviewObj = Review.new()
475
+ util = Util.new
476
+ util.throwExceptionIfNullOrBlank(reviewId, "Review Id");
477
+ begin
478
+ connection = App42::Connection::RESTConnection.new(@base_url)
479
+ body = {'app42' => {"review"=> {
480
+ "id" => reviewId
481
+ }}}.to_json
482
+ puts "Body #{body}"
483
+ query_params = Hash.new
484
+ params = {
485
+ 'apiKey'=> @api_key,
486
+ 'version' => @version,
487
+ 'timeStamp' => util.get_timestamp_utc,
488
+ }
489
+ query_params = params.clone
490
+ params.store("body", body)
491
+ puts query_params
492
+ signature = util.sign(@secret_key, params)
493
+ resource_url = "#{@version}/#{@resource}/unmute"
494
+ response = connection.put(signature, resource_url, query_params, body)
495
+ review = ReviewResponseBuilder.new
496
+ reviewObj = review.buildResponse(response)
497
+ rescue App42Exception =>e
498
+ raise e
499
+ rescue Exception => e
500
+ raise App42Exception.new(e)
501
+ end
502
+ return reviewObj
503
+ end
504
+
505
+ #
506
+ # Fetches count of all reviews for the App
507
+ #
508
+ # @return App42Response containing count of all the reviews for the App
509
+ #
510
+ # @raise App42Exception
511
+ #
512
+
513
+ def get_all_reviews_count()
514
+ puts "get_all_reviews_count Called "
515
+ puts "Base url #{@base_url}"
516
+ response = nil;
517
+ responseObj = App42Response.new
518
+ util = Util.new()
519
+ begin
520
+ connection = App42::Connection::RESTConnection.new(@base_url)
521
+ query_params = Hash.new
522
+ params = {
523
+ 'apiKey'=> @api_key,
524
+ 'version' => @version,
525
+ 'timeStamp' => util.get_timestamp_utc,
526
+ }
527
+ query_params = params.clone
528
+ puts query_params
529
+ signature = util.sign(@secret_key, params)
530
+ resource_url = "#{@version}/#{@resource}/count"
531
+ response = connection.get(signature, resource_url, query_params)
532
+ responseObj.strResponse=(response)
533
+ responseObj.isResponseSuccess=(true)
534
+ responseObj = ReviewResponseBuilder.new()
535
+ responseObj.getTotalRecords(response);
536
+ rescue App42Exception =>e
537
+ raise e
538
+ rescue Exception => e
539
+ raise App42Exception.new(e)
540
+ end
541
+ return responseObj
542
+ end
543
+
544
+ #
545
+ # Fetches count of All Reviews based on the itemId
546
+ #
547
+ # @param itemId
548
+ # - The item for which count of reviews have to be fetched
549
+ #
550
+ # @return App42Response containing count of all the reviews for a item
551
+ #
552
+ # @raise App42Exception
553
+ #
554
+
555
+ def get_reviews_count_by_item(itemId)
556
+ puts "get_reviews_count_by_item Called "
557
+ puts "Base url #{@base_url}"
558
+ response = nil;
559
+ responseObj = App42Response.new
560
+ util = Util.new
561
+ util.throwExceptionIfNullOrBlank(itemId, "Item Id");
562
+ begin
563
+ connection = App42::Connection::RESTConnection.new(@base_url)
564
+ query_params = Hash.new
565
+ params = {
566
+ 'apiKey'=> @api_key,
567
+ 'version' => @version,
568
+ 'timeStamp' => util.get_timestamp_utc,
569
+ }
570
+ query_params = params.clone
571
+ params.store("itemId", itemId)
572
+ puts query_params
573
+ signature = util.sign(@secret_key, params)
574
+ resource_url = "#{@version}/#{@resource}/item/#{itemId}/count"
575
+ response = connection.get(signature, resource_url, query_params)
576
+ responseObj.strResponse=(response)
577
+ responseObj.isResponseSuccess=(true)
578
+ responseObj = ReviewResponseBuilder.new()
579
+ responseObj.getTotalRecords(response);
580
+ rescue App42Exception =>e
581
+ raise e
582
+ rescue Exception => e
583
+ raise App42Exception.new(e)
584
+ end
585
+ return responseObj
586
+ end
587
+
588
+ end
589
+ end
590
+ end