App42_RUBY_SDK 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. data/.gitignore +18 -0
  2. data/App42_RUBY_SDK.gemspec +31 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +25 -0
  6. data/Rakefile +1 -0
  7. data/lib/App42BadParameterException.rb +31 -0
  8. data/lib/App42Exception.rb +39 -0
  9. data/lib/App42LimitException.rb +15 -0
  10. data/lib/App42NotFoundException.rb +15 -0
  11. data/lib/App42Response.rb +13 -0
  12. data/lib/App42ResponseBuilder.rb +64 -0
  13. data/lib/App42SecurityException.rb +15 -0
  14. data/lib/App42_RUBY_SDK.rb +236 -0
  15. data/lib/App42_RUBY_SDK/version.rb +3 -0
  16. data/lib/ServiceAPI.rb +246 -0
  17. data/lib/appTab/App.rb +105 -0
  18. data/lib/appTab/BandwidthUnit.rb +57 -0
  19. data/lib/appTab/Bill.rb +182 -0
  20. data/lib/appTab/BillMonth.rb +94 -0
  21. data/lib/appTab/BillResponseBuilder.rb +242 -0
  22. data/lib/appTab/BillService.rb +457 -0
  23. data/lib/appTab/Currency.rb +79 -0
  24. data/lib/appTab/DiscountResponseBuilder.rb +71 -0
  25. data/lib/appTab/DiscountService.rb +240 -0
  26. data/lib/appTab/DiscountType.rb +54 -0
  27. data/lib/appTab/License.rb +25 -0
  28. data/lib/appTab/LicenseResponseBuilder.rb +88 -0
  29. data/lib/appTab/LicenseService.rb +399 -0
  30. data/lib/appTab/PackageData.rb +83 -0
  31. data/lib/appTab/PackageResponseBuilder.rb +114 -0
  32. data/lib/appTab/PackageService.rb +506 -0
  33. data/lib/appTab/SchemeData.rb +11 -0
  34. data/lib/appTab/SchemeResponseBuilder.rb +70 -0
  35. data/lib/appTab/SchemeService.rb +151 -0
  36. data/lib/appTab/StorageUnit.rb +54 -0
  37. data/lib/appTab/SubscribeService.rb +180 -0
  38. data/lib/appTab/Test.rb +41 -0
  39. data/lib/appTab/TimeUnit.rb +49 -0
  40. data/lib/appTab/Usage.rb +206 -0
  41. data/lib/appTab/UsageResponseBuilder.rb +152 -0
  42. data/lib/appTab/UsageService.rb +1799 -0
  43. data/lib/connection/RESTConnection.rb +711 -0
  44. data/lib/email/Email.rb +51 -0
  45. data/lib/email/EmailMIME.rb +51 -0
  46. data/lib/email/EmailResponseBuilder.rb +76 -0
  47. data/lib/email/EmailService.rb +244 -0
  48. data/lib/gallery/Album.rb +56 -0
  49. data/lib/gallery/AlbumResponseBuilder.rb +168 -0
  50. data/lib/gallery/AlbumService.rb +337 -0
  51. data/lib/gallery/PhotoService.rb +591 -0
  52. data/lib/game/Game.rb +39 -0
  53. data/lib/game/GameResponseBuilder.rb +106 -0
  54. data/lib/game/GameService.rb +268 -0
  55. data/lib/game/Reward.rb +24 -0
  56. data/lib/game/RewardResponseBuilder.rb +85 -0
  57. data/lib/game/RewardService.rb +440 -0
  58. data/lib/game/ScoreBoardService.rb +433 -0
  59. data/lib/game/ScoreService.rb +157 -0
  60. data/lib/geo/Geo.rb +51 -0
  61. data/lib/geo/GeoPoint.rb +43 -0
  62. data/lib/geo/GeoResponseBuilder.rb +145 -0
  63. data/lib/geo/GeoService.rb +506 -0
  64. data/lib/imageProcessor/Image.rb +42 -0
  65. data/lib/imageProcessor/ImageProcessorResponseBuilder.rb +40 -0
  66. data/lib/imageProcessor/ImageProcessorService.rb +1054 -0
  67. data/lib/log/Log.rb +49 -0
  68. data/lib/log/LogResponseBuilder.rb +61 -0
  69. data/lib/log/LogService.rb +920 -0
  70. data/lib/message/Queue.rb +50 -0
  71. data/lib/message/QueueResponseBuilder.rb +64 -0
  72. data/lib/message/QueueService.rb +469 -0
  73. data/lib/push/DeviceType.rb +56 -0
  74. data/lib/push/PushNotification.rb +38 -0
  75. data/lib/push/PushNotificationResposneBuilder.rb +74 -0
  76. data/lib/push/PushNotificationService.rb +458 -0
  77. data/lib/recommend/PreferenceData.rb +25 -0
  78. data/lib/recommend/Recommender.rb +48 -0
  79. data/lib/recommend/RecommenderResponseBuilder.rb +70 -0
  80. data/lib/recommend/RecommenderService.rb +1092 -0
  81. data/lib/recommend/RecommenderSimilarity.rb +52 -0
  82. data/lib/review/Review.rb +38 -0
  83. data/lib/review/ReviewResponseBuilder.rb +76 -0
  84. data/lib/review/ReviewService.rb +590 -0
  85. data/lib/session/Session.rb +43 -0
  86. data/lib/session/SessionResponseBuilder.rb +70 -0
  87. data/lib/session/SessionService.rb +427 -0
  88. data/lib/shopping/Cart.rb +77 -0
  89. data/lib/shopping/CartResponseBuilder.rb +118 -0
  90. data/lib/shopping/CartService.rb +902 -0
  91. data/lib/shopping/Catalogue.rb +79 -0
  92. data/lib/shopping/CatalogueResponseBuilder.rb +170 -0
  93. data/lib/shopping/CatalogueService.rb +649 -0
  94. data/lib/shopping/ItemData.rb +29 -0
  95. data/lib/shopping/PaymentStatus.rb +60 -0
  96. data/lib/social/Social.rb +35 -0
  97. data/lib/social/SocialResponseBuilder.rb +38 -0
  98. data/lib/social/SocialService.rb +585 -0
  99. data/lib/storage/OrderByType.rb +29 -0
  100. data/lib/storage/Query.rb +39 -0
  101. data/lib/storage/QueryBuilder.rb +118 -0
  102. data/lib/storage/Storage.rb +45 -0
  103. data/lib/storage/StorageResponseBuilder.rb +86 -0
  104. data/lib/storage/StorageService.rb +775 -0
  105. data/lib/upload/Upload.rb +40 -0
  106. data/lib/upload/UploadFileType.rb +83 -0
  107. data/lib/upload/UploadResponseBuilder.rb +58 -0
  108. data/lib/upload/UploadService.rb +960 -0
  109. data/lib/user/User.rb +102 -0
  110. data/lib/user/UserResponseBuilder.rb +105 -0
  111. data/lib/user/UserService.rb +1253 -0
  112. data/lib/util/util.rb +250 -0
  113. metadata +134 -9
  114. checksums.yaml +0 -7
@@ -0,0 +1,52 @@
1
+ # -----------------------------------------------------------------------
2
+ # Copyright © 2012 ShepHertz Technologies Pvt Ltd. All rights reserved.
3
+ # -----------------------------------------------------------------------
4
+
5
+ require '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 'App42Response.rb'
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 'App42ResponseBuilder.rb'
7
+ require 'review/Review.rb'
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.rb'
7
+ require 'util/util.rb'
8
+ require 'json/pure'
9
+ require 'App42Response.rb'
10
+ require 'review/ReviewResponseBuilder.rb'
11
+ require 'review/Review.rb'
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