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,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
|