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,40 @@
1
+ # -----------------------------------------------------------------------
2
+ # Copyright © 2012 ShepHertz Technologies Pvt Ltd. All rights reserved.
3
+ # -----------------------------------------------------------------------
4
+
5
+ require 'App42_Ruby_API/App42Response'
6
+
7
+ #
8
+ #
9
+ # This Upload object is the value object which contains the properties of
10
+ # Upload along with the setter & getter for those properties.
11
+ #
12
+ #
13
+
14
+ module App42
15
+ module Upload
16
+ class Upload < App42Response
17
+ attr_accessor :fileList
18
+ @fileList = Array.new
19
+ end
20
+
21
+ class File
22
+ attr_accessor :name, :userName, :type, :description, :url, :tinyUrl
23
+
24
+ @userName
25
+ @name
26
+ @type
27
+ @url
28
+ @description
29
+ @tinyUrl
30
+
31
+ #
32
+ # This is constructor that take no parameters
33
+ #
34
+ def initialize(upload)
35
+ upload.fileList.push(self)
36
+ end
37
+
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,83 @@
1
+ # -----------------------------------------------------------------------
2
+ # Copyright © 2012 ShepHertz Technologies Pvt Ltd. All rights reserved.
3
+ # -----------------------------------------------------------------------
4
+
5
+ require 'App42_Ruby_API/App42Response'
6
+
7
+ #
8
+ # An enum that defines the type of the file to be uploaded on cloud.
9
+ #
10
+
11
+ module App42
12
+ module Upload
13
+ class UploadFileType < App42Response
14
+ unless (const_defined?(:AUDIO))
15
+ AUDIO = "AUDIO"
16
+ end
17
+ unless (const_defined?(:VIDEO))
18
+ VIDEO = "VIDEO"
19
+ end
20
+ unless (const_defined?(:IMAGE))
21
+ IMAGE = "IMAGE"
22
+ end
23
+ unless (const_defined?(:BINARY))
24
+ BINARY = "BINARY"
25
+ end
26
+ unless (const_defined?(:TXT))
27
+ TXT = "TXT"
28
+ end
29
+ unless (const_defined?(:XML))
30
+ XML = "XML"
31
+ end
32
+ unless (const_defined?(:CSV))
33
+ CSV = "CSV"
34
+ end
35
+ unless (const_defined?(:JSON))
36
+ JSON = "JSON"
37
+ end
38
+ unless (const_defined?(:OTHER))
39
+ OTHER = "OTHER"
40
+ end
41
+
42
+ #
43
+ # Sets the value of the UploadFileType.
44
+ #
45
+ # @param string
46
+ # - the string of UploadFileType.
47
+ #
48
+ def enum(string)
49
+ return UploadFileType.const_get(string)
50
+ end
51
+
52
+ #
53
+ # Returns the value of the UploadFileType.
54
+ #
55
+ # @return the value of UploadFileType.
56
+ #
57
+
58
+ def isAvailable(string)
59
+ if(string == "AUDIO")
60
+ return "AUDIO"
61
+ elsif(string == "VIDEO")
62
+ return "VIDEO"
63
+ elsif(string == "IMAGE")
64
+ return "IMAGE"
65
+ elsif(string == "BINARY")
66
+ return "BINARY"
67
+ elsif(string == "TXT")
68
+ return "TXT"
69
+ elsif(string == "XML")
70
+ return "XML"
71
+ elsif(string == "CSV")
72
+ return "CSV"
73
+ elsif(string == "JSON")
74
+ return "JSON"
75
+ elsif(string == "OTHER")
76
+ return "OTHER";
77
+ else
78
+ return nil
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,58 @@
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 'upload/Upload'
8
+
9
+ module App42
10
+ module Upload
11
+
12
+ #
13
+ #
14
+ # UploadResponseBuilder class converts the JSON response retrieved from the
15
+ # server to the value object i.e User
16
+ #
17
+ #
18
+ class UploadResponseBuilder < App42ResponseBuilder
19
+
20
+ #
21
+ # Converts the response in JSON format to the value object i.e Upload
22
+ #
23
+ # @param json
24
+ # - response in JSON format
25
+ #
26
+ # @return Upload object filled with json data
27
+ #
28
+ #
29
+ def buildResponse(json)
30
+ puts "testing #{json}"
31
+ uploadObj = Upload.new()
32
+
33
+ fileList = Array.new
34
+ uploadObj.fileList=fileList
35
+
36
+ uploadObj.strResponse=json
37
+ uploadObj.isResponseSuccess = isResponseSuccess(json)
38
+ jsonObjUpload = getServiceJSONObject("upload", json)
39
+ jsonObjFiles = jsonObjUpload.fetch("files");
40
+
41
+ if jsonObjFiles.fetch("file").instance_of?(Hash)
42
+ jsonObjFile = jsonObjFiles.fetch("file")
43
+ fileObj = App42::Upload::File.new(uploadObj)
44
+ buildObjectFromJSONTree(fileObj, jsonObjFile);
45
+ else
46
+ jsonObjFileArray = jsonObjFiles["file"]
47
+
48
+ jsonObjFileArray.length.times do |i|
49
+ fileObj = App42::Upload::File.new(uploadObj)
50
+ jsonObjFile = jsonObjFileArray[i]
51
+ buildObjectFromJSONTree(fileObj, jsonObjFile);
52
+ end
53
+ end
54
+ return uploadObj
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,960 @@
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 'upload/UploadResponseBuilder'
11
+ require 'upload/Upload'
12
+ require 'upload/UploadFileType'
13
+
14
+ module App42
15
+ module Upload
16
+ #
17
+ # Uploads file on the cloud. Allows access to the files through url.
18
+ # Its especially useful for Mobile/Device apps. It minimizes the App footprint
19
+ # on the device.
20
+ #
21
+ # @see Upload
22
+ # @see App42Response
23
+ #
24
+ class UploadService
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 "File Upload->initialize"
34
+ @api_key = api_key
35
+ @secret_key = secret_key
36
+ @base_url = base_url
37
+ @resource = "upload"
38
+ @version = "1.0"
39
+ end
40
+
41
+ #
42
+ # Uploads file on the cloud.
43
+ #
44
+ # @param name
45
+ # - The name for the file which has to be saved. It is used to retrieve the file
46
+ # @param filePath
47
+ # - The local path for the file
48
+ # @param fileType
49
+ # - The type of the file. File can be either Audio, Video, Image, Binary, Txt, xml, json, csv or other
50
+ # Use the static constants e.g. Upload.AUDIO, Upload.XML etc.
51
+ # @param description
52
+ # - Description of the file to be uploaded.
53
+ #
54
+ # @return Upload object
55
+ #
56
+ # @raise App42Exception
57
+ #
58
+
59
+ def upload_file(name, filePath, fileType, description)
60
+ puts "upload File Called "
61
+ puts "Base url #{@base_url}"
62
+ response = nil;
63
+ uploadObj = nil;
64
+ uploadObj = Upload.new
65
+ util = Util.new
66
+ util.throwExceptionIfNullOrBlank(name, "Name");
67
+ util.throwExceptionIfNullOrBlank(filePath, "Filepath");
68
+ util.throwExceptionIfNullOrBlank(fileType, "fileType");
69
+ util.throwExceptionIfNullOrBlank(description, "Description");
70
+ if (FileTest.exists?(filePath) == false)
71
+ raise App42Exception.new("The file with the name #{filePath} not found")
72
+ end
73
+ begin
74
+ if (UploadFileType.new.isAvailable(fileType) == nil)
75
+ raise App42NotFoundException.new("Upload File Type #{fileType} does not Exist ");
76
+ end
77
+ connection = App42::Connection::RESTConnection.new(@base_url)
78
+ params = Hash.new
79
+ query_params = Hash.new
80
+ query_params = {
81
+ 'apiKey'=> @api_key,
82
+ 'version' => @version,
83
+ 'timeStamp' => util.get_timestamp_utc
84
+ }
85
+ params = query_params.clone
86
+ post_params = Hash.new
87
+ upload = UploadFileType.new()
88
+ post_params.store("name", name);
89
+ post_params.store("type", upload.enum(fileType))
90
+ post_params.store("description", description);
91
+ params = params.merge(post_params)
92
+ signature = util.sign(@secret_key, params)
93
+ resource_url = "#{@version}/#{@resource}"
94
+ response = connection.multipart(signature, resource_url, query_params, params, filePath)
95
+ upload = UploadResponseBuilder.new()
96
+ uploadObj = upload.buildResponse(response)
97
+ rescue App42Exception =>e
98
+ raise e
99
+ rescue Exception => e
100
+ raise App42Exception.new(e)
101
+ end
102
+ return uploadObj
103
+ end
104
+
105
+ #
106
+ # Uploads file on the cloud.
107
+ #
108
+ # @param name
109
+ # - The name for the file which has to be saved. It is used to
110
+ # retrieve the file
111
+ # @param inputStream
112
+ # - InputStream of the file to be uploaded.
113
+ # @param fileType
114
+ # - The type of the file. File can be either Audio, Video, Image,
115
+ # Binary, Txt, xml, json, csv or other Use the static constants
116
+ # e.g. Upload.AUDIO, Upload.XML etc.
117
+ # @param description
118
+ # - Description of the file to be uploaded.
119
+ #
120
+ # @return Upload object
121
+ #
122
+ # @raise App42Exception
123
+ #
124
+
125
+ def upload_file_by_stream(name, inputStream, fileType, description)
126
+ puts "upload File Called "
127
+ puts "Base url #{@base_url}"
128
+ response = nil;
129
+ uploadObj = nil;
130
+ uploadObj = Upload.new
131
+ util = Util.new
132
+ util.throwExceptionIfNullOrBlank(name, "Name");
133
+ util.throwExceptionIfNotValidExtension(name, "File Name");
134
+ util.throwExceptionIfNullOrBlank(fileType, "fileType");
135
+ util.throwExceptionIfNullOrBlank(description, "Description");
136
+ begin
137
+ connection = App42::Connection::RESTConnection.new(@base_url)
138
+ params = Hash.new
139
+ query_params = Hash.new
140
+ query_params = {
141
+ 'apiKey'=> @api_key,
142
+ 'version' => @version,
143
+ 'timeStamp' => util.get_timestamp_utc
144
+ }
145
+ params = query_params.clone
146
+ post_params = Hash.new
147
+ upload = UploadFileType.new()
148
+ post_params.store("name", name);
149
+ post_params.store("type", upload.enum(fileType))
150
+ post_params.store("description", description);
151
+ params = params.merge(post_params)
152
+ signature = util.sign(@secret_key, params)
153
+ resource_url = "#{@version}/#{@resource}"
154
+ response = connection.multipartStream(signature, resource_url, query_params, params, inputStream)
155
+ upload = UploadResponseBuilder.new()
156
+ uploadObj = upload.buildResponse(response)
157
+ rescue App42Exception =>e
158
+ raise e
159
+ rescue Exception => e
160
+ raise App42Exception.new(e)
161
+ end
162
+ return uploadObj
163
+ end
164
+
165
+ #
166
+ # Uploads file on the cloud for given user.
167
+ #
168
+ # @param name
169
+ # - The name for the file which has to be saved. It is used to
170
+ # retrieve the file
171
+ # @param userName
172
+ # - The name for the user for which file has to be saved.
173
+ # @param filePath
174
+ # - The local path for the file
175
+ # @param fileType
176
+ # - The type of the file. File can be either Audio, Video, Image,
177
+ # Binary, Txt, xml, json, csv or other Use the static constants
178
+ # e.g. Upload.AUDIO, Upload.XML etc.
179
+ # @param description
180
+ # - Description of the file to be uploaded.
181
+ #
182
+ # @return Upload object
183
+ #
184
+ # @raise App42Exception
185
+ #
186
+
187
+ def upload_file_for_user(name, userName, filePath, fileType, description)
188
+ puts "upload File for user Called "
189
+ puts "Base url #{@base_url}"
190
+ response = nil;
191
+ uploadObj = nil;
192
+ uploadObj = Upload.new
193
+ util = Util.new
194
+ util.throwExceptionIfNullOrBlank(name, "File Name");
195
+ util.throwExceptionIfNullOrBlank(userName, "User Name");
196
+ util.throwExceptionIfNullOrBlank(filePath, "Filepath");
197
+ util.throwExceptionIfNullOrBlank(fileType, "fileType");
198
+ util.throwExceptionIfNullOrBlank(description, "Description");
199
+ begin
200
+ connection = App42::Connection::RESTConnection.new(@base_url)
201
+ params = Hash.new
202
+ query_params = Hash.new
203
+ query_params = {
204
+ 'apiKey'=> @api_key,
205
+ 'version' => @version,
206
+ 'timeStamp' => util.get_timestamp_utc
207
+ }
208
+ params = query_params.clone
209
+ post_params = Hash.new
210
+ upload = UploadFileType.new()
211
+ post_params.store("name", name);
212
+ post_params.store("userName", userName);
213
+ post_params.store("type", upload.enum(fileType))
214
+ post_params.store("description", description);
215
+ params = params.merge(post_params)
216
+ signature = util.sign(@secret_key, params)
217
+ resource_url = "#{@version}/#{@resource}/#{userName}"
218
+ response = connection.multipart(signature, resource_url, query_params, params, filePath)
219
+ upload = UploadResponseBuilder.new()
220
+ uploadObj = upload.buildResponse(response)
221
+ rescue App42Exception =>e
222
+ raise e
223
+ rescue Exception => e
224
+ raise App42Exception.new(e)
225
+ end
226
+ return uploadObj
227
+ end
228
+
229
+ #
230
+ # Uploads file on the cloud.
231
+ #
232
+ # @param name
233
+ # - The name for the file which has to be saved. It is used to retrieve the file
234
+ # @param userName
235
+ # - The name for the user for which file has to be saved.
236
+ # @param filePath
237
+ # - The local path for the file
238
+ # @param uploadFileType
239
+ # - The type of the file. File can be either Audio, Video, Image, Binary, Txt, xml, json, csv or other
240
+ # Use the static constants e.g. Upload.AUDIO, Upload.XML etc.
241
+ # @param description
242
+ # - Description of the file to be uploaded.
243
+ #
244
+ # @return Upload object
245
+ #
246
+ # @raise App42Exception
247
+ #
248
+
249
+ def upload_file_for_user_by_stream(name, userName, inputStream, fileType, description)
250
+ puts "upload File Called "
251
+ puts "Base url #{@base_url}"
252
+ response = nil;
253
+ uploadObj = nil;
254
+ uploadObj = Upload.new
255
+ util = Util.new
256
+ util.throwExceptionIfNullOrBlank(name, "File Name");
257
+ util.throwExceptionIfNullOrBlank(userName, "User Name");
258
+ util.throwExceptionIfNotValidExtension(name, "File Name");
259
+ util.throwExceptionIfNullOrBlank(fileType, "fileType");
260
+ util.throwExceptionIfNullOrBlank(description, "Description");
261
+ if (FileTest.exists?(filePath) == false)
262
+ raise App42Exception.new("The file with the name #{filePath} not found")
263
+ end
264
+ begin
265
+ if (UploadFileType.new.isAvailable(fileType) == nil)
266
+ raise App42NotFoundException.new("Upload File Type #{fileType} does not Exist ");
267
+ end
268
+ connection = App42::Connection::RESTConnection.new(@base_url)
269
+ params = Hash.new
270
+ query_params = Hash.new
271
+ query_params = {
272
+ 'apiKey'=> @api_key,
273
+ 'version' => @version,
274
+ 'timeStamp' => util.get_timestamp_utc
275
+ }
276
+ params = query_params.clone
277
+ post_params = Hash.new
278
+ upload = UploadFileType.new()
279
+ post_params.store("name", name);
280
+ post_params.store("type", upload.enum(fileType))
281
+ post_params.store("description", description);
282
+ signature = util.sign(@secret_key, params)
283
+ resource_url = "#{@version}/#{@resource}"
284
+ response = connection.multipartStream(signature, resource_url, query_params, params, inputStream)
285
+ upload = UploadResponseBuilder.new()
286
+ uploadObj = upload.buildResponse(response)
287
+ rescue App42Exception =>e
288
+ raise e
289
+ rescue Exception => e
290
+ raise App42Exception.new(e)
291
+ end
292
+ return uploadObj
293
+ end
294
+
295
+ # Gets all the files By Paging for the App
296
+ #
297
+ # @param max
298
+ # - Maximum number of records to be fetched
299
+ # @param offset
300
+ # - From where the records are to be fetched
301
+ #
302
+ # @return Upload object
303
+ #
304
+ # @raise App42Exception
305
+ #
306
+
307
+ def get_all_files_by_paging(max, offset)
308
+ puts "getAllFilesByPaging Called "
309
+ puts "Base url #{@base_url}"
310
+ response = nil;
311
+ uploadObj = nil;
312
+ uploadObj = Upload.new
313
+ util = Util.new
314
+ util.validateMax(max);
315
+ util.throwExceptionIfNullOrBlank(max, "Max");
316
+ util.throwExceptionIfNullOrBlank(offset, "Offset");
317
+ begin
318
+ connection = App42::Connection::RESTConnection.new(@base_url)
319
+ query_params = Hash.new
320
+ params = {
321
+ 'apiKey'=> @api_key,
322
+ 'version' => @version,
323
+ 'timeStamp' => util.get_timestamp_utc,
324
+ }
325
+ query_params = params.clone
326
+ params.store("max", "" + (max.to_i).to_s)
327
+ params.store("offset", "" + (offset.to_i).to_s)
328
+ signature = util.sign(@secret_key, params)
329
+ resource_url = "#{@version}/#{@resource}/paging/#{(max.to_i).to_s}/#{(offset.to_i).to_s}"
330
+ response = connection.get(signature, resource_url, query_params)
331
+ upload = UploadResponseBuilder.new
332
+ uploadObj = upload.buildResponse(response)
333
+ rescue App42Exception =>e
334
+ raise e
335
+ rescue Exception => e
336
+ raise App42Exception.new(e)
337
+ end
338
+ return uploadObj
339
+ end
340
+
341
+ #
342
+ # Gets the file based on user name by Paging.
343
+ #
344
+ # @param userName
345
+ # - The name of the user for which file has to be retrieved
346
+ # @param max
347
+ # - Maximum number of records to be fetched
348
+ # @param offset
349
+ # - From where the records are to be fetched
350
+ #
351
+ # @return Upload object
352
+ #
353
+ # @raise App42Exception
354
+ #
355
+
356
+ def get_all_files_by_user_by_paging(userName, max, offset)
357
+ puts "getAllFilesByPaging Called "
358
+ puts "Base url #{@base_url}"
359
+ response = nil;
360
+ uploadObj = nil;
361
+ uploadObj = Upload.new
362
+ util = Util.new
363
+ util.validateMax(max);
364
+ util.throwExceptionIfNullOrBlank(userName, "User Name");
365
+ util.throwExceptionIfNullOrBlank(max, "Max");
366
+ util.throwExceptionIfNullOrBlank(offset, "Offset");
367
+ begin
368
+ connection = App42::Connection::RESTConnection.new(@base_url)
369
+ query_params = Hash.new
370
+ params = {
371
+ 'apiKey'=> @api_key,
372
+ 'version' => @version,
373
+ 'timeStamp' => util.get_timestamp_utc,
374
+ }
375
+ query_params = params.clone
376
+ params.store("userName", userName);
377
+ params.store("max", "" + (max.to_i).to_s)
378
+ params.store("offset", "" + (offset.to_i).to_s)
379
+ signature = util.sign(@secret_key, params)
380
+ resource_url = "#{@version}/#{@resource}/user/#{userName}/#{(max.to_i).to_s}/#{(offset.to_i).to_s}"
381
+ response = connection.get(signature, resource_url, query_params)
382
+ upload = UploadResponseBuilder.new
383
+ uploadObj = upload.buildResponse(response)
384
+ rescue App42Exception =>e
385
+ raise e
386
+ rescue Exception => e
387
+ raise App42Exception.new(e)
388
+ end
389
+ return uploadObj
390
+ end
391
+
392
+ #
393
+ # Get the files based on file type by Paging.
394
+ #
395
+ # @param uploadFileType
396
+ # - Type of the file e.g. Upload.AUDIO, Upload.XML etc.
397
+ # @param
398
+ # - max Maximum number of records to be fetched
399
+ # @param offset
400
+ # - From where the records are to be fetched
401
+ #
402
+ # @return Upload object
403
+ #
404
+ # @raise App42Exception
405
+ #
406
+
407
+ def get_files_by_type_by_paging(uploadFileType, max, offset)
408
+ puts "get_files_by_type_by_paging Called "
409
+ puts "Base url #{@base_url}"
410
+ response = nil;
411
+ uploadObj = nil;
412
+ uploadObj = Upload.new
413
+ util = Util.new
414
+ util.validateMax(max);
415
+ util.throwExceptionIfNullOrBlank(uploadFileType, "uploadFileType");
416
+ util.throwExceptionIfNullOrBlank(max, "Max");
417
+ util.throwExceptionIfNullOrBlank(offset, "Offset");
418
+ begin
419
+ if (UploadFileType.new.isAvailable(uploadFileType) == nil)
420
+ raise App42NotFoundException.new("Upload File Type #{uploadFileType} does not Exist ");
421
+ end
422
+ connection = App42::Connection::RESTConnection.new(@base_url)
423
+ query_params = Hash.new
424
+ params = {
425
+ 'apiKey'=> @api_key,
426
+ 'version' => @version,
427
+ 'timeStamp' => util.get_timestamp_utc,
428
+ }
429
+ query_params = params.clone
430
+ params.store("type", uploadFileType)
431
+ params.store("max", "" + (max.to_i).to_s)
432
+ params.store("offset", "" + (offset.to_i).to_s)
433
+ signature = util.sign(@secret_key, params)
434
+ resource_url = "#{@version}/#{@resource}/type/#{uploadFileType}/#{(max.to_i).to_s}/#{(offset.to_i).to_s}"
435
+ response = connection.get(signature, resource_url, query_params)
436
+ upload = UploadResponseBuilder.new
437
+ uploadObj = upload.buildResponse(response)
438
+ rescue App42Exception =>e
439
+ raise e
440
+ rescue Exception => e
441
+ raise App42Exception.new(e)
442
+ end
443
+ return uploadObj
444
+ end
445
+
446
+ #
447
+ # Gets all the files for the App
448
+ #
449
+ # @return Upload object
450
+ #
451
+ # @raise App42Exception
452
+ #
453
+
454
+ def get_all_files()
455
+ puts "Get All Files Called "
456
+ puts "Base url #{@base_url}"
457
+ response = nil;
458
+ uploadObj = nil;
459
+ uploadObj = Upload.new
460
+ util = Util.new
461
+ begin
462
+ connection = App42::Connection::RESTConnection.new(@base_url)
463
+ params = Hash.new
464
+ query_params = Hash.new
465
+ params = {
466
+ 'apiKey'=> @api_key,
467
+ 'version' => @version,
468
+ 'timeStamp' => util.get_timestamp_utc,
469
+ }
470
+ query_params = params.clone
471
+ signature = util.sign(@secret_key, params)
472
+ resource_url = "#{@version}/#{@resource}"
473
+ response = connection.get(signature, resource_url, query_params)
474
+ puts "Response is #{response}"
475
+ upload = UploadResponseBuilder.new()
476
+ uploadObj = upload.buildResponse(response)
477
+ rescue App42Exception =>e
478
+ raise e
479
+ rescue Exception => e
480
+ raise App42Exception.new(e)
481
+ end
482
+ return uploadObj
483
+ end
484
+
485
+ #
486
+ # Gets the file based on user name.
487
+ #
488
+ # @param name
489
+ # - The name of the file which has to be retrieved
490
+ # @param userName
491
+ # - The name of the user for which file has to be retrieved
492
+ #
493
+ # @return Upload object
494
+ #
495
+ # @raise App42Exception
496
+ #
497
+
498
+ def get_file_by_user(name, userName)
499
+ puts "Get File By User Called "
500
+ puts "Base url #{@base_url}"
501
+ response = nil;
502
+ uploadObj = nil;
503
+ uploadObj = Upload.new
504
+ util = Util.new
505
+ util.throwExceptionIfNullOrBlank(name, "File Name");
506
+ util.throwExceptionIfNullOrBlank(userName, "User Name");
507
+ begin
508
+ connection = App42::Connection::RESTConnection.new(@base_url)
509
+ query_params = Hash.new
510
+ params = {
511
+ 'apiKey'=> @api_key,
512
+ 'version' => @version,
513
+ 'timeStamp' => util.get_timestamp_utc,
514
+ }
515
+ query_params = params.clone
516
+ params.store("name", name);
517
+ params.store("userName", userName);
518
+ puts query_params
519
+ signature = util.sign(@secret_key, params)
520
+ resource_url = "#{@version}/#{@resource}/#{userName}/#{name}"
521
+ response = connection.get(signature, resource_url, query_params)
522
+ puts "Response is #{response}"
523
+ upload = UploadResponseBuilder.new()
524
+ uploadObj = upload.buildResponse(response)
525
+ rescue App42Exception =>e
526
+ raise e
527
+ rescue Exception => e
528
+ raise App42Exception.new(e)
529
+ end
530
+ return uploadObj
531
+ end
532
+
533
+ #
534
+ # Gets the file based on user name.
535
+ #
536
+ # @param userName
537
+ # - The name of the user for which file has to be retrieved
538
+ #
539
+ # @return Upload object
540
+ #
541
+ # @raise App42Exception
542
+ #
543
+
544
+ def get_all_files_by_user(userName)
545
+ puts "getAllFilesByUser Called "
546
+ puts "Base url #{@base_url}"
547
+ response = nil;
548
+ uploadObj = nil;
549
+ uploadObj = Upload.new
550
+ util = Util.new
551
+ util.throwExceptionIfNullOrBlank(userName, "userName");
552
+ begin
553
+ connection = App42::Connection::RESTConnection.new(@base_url)
554
+ query_params = Hash.new
555
+ params = {
556
+ 'apiKey'=> @api_key,
557
+ 'version' => @version,
558
+ 'timeStamp' => util.get_timestamp_utc,
559
+ }
560
+ query_params = params.clone
561
+ params.store("userName", userName);
562
+ puts query_params
563
+ signature = util.sign(@secret_key, params)
564
+ resource_url = "#{@version}/#{@resource}/user/#{userName}"
565
+ response = connection.get(signature, resource_url, query_params)
566
+ puts "Response is #{response}"
567
+ upload = UploadResponseBuilder.new()
568
+ uploadObj = upload.buildResponse(response)
569
+ rescue App42Exception =>e
570
+ raise e
571
+ rescue Exception => e
572
+ raise App42Exception.new(e)
573
+ end
574
+ return uploadObj
575
+ end
576
+
577
+ #
578
+ # Gets the file based on file name.
579
+ #
580
+ # @param name
581
+ # - The name of the file which has to be retrieved
582
+ #
583
+ # @return Upload object
584
+ #
585
+ # @raise App42Exception
586
+ #
587
+
588
+ def get_file_by_name(name)
589
+ puts "Get File By Name Called "
590
+ puts "Base url #{@base_url}"
591
+ response = nil;
592
+ uploadObj = nil;
593
+ uploadObj = Upload.new
594
+ util = Util.new
595
+ util.throwExceptionIfNullOrBlank(name, "File Name");
596
+ begin
597
+ connection = App42::Connection::RESTConnection.new(@base_url)
598
+ query_params = Hash.new
599
+ params = {
600
+ 'apiKey'=> @api_key,
601
+ 'version' => @version,
602
+ 'timeStamp' => util.get_timestamp_utc,
603
+ }
604
+ query_params = params.clone
605
+ params.store("name", name)
606
+ puts query_params
607
+ signature = util.sign(@secret_key, params)
608
+ resource_url = "#{@version}/#{@resource}/#{name}"
609
+ response = connection.get(signature, resource_url, query_params)
610
+ upload = UploadResponseBuilder.new()
611
+ uploadObj = upload.buildResponse(response)
612
+ rescue App42Exception =>e
613
+ raise e
614
+ rescue Exception => e
615
+ raise App42Exception.new(e)
616
+ end
617
+ return uploadObj
618
+ end
619
+
620
+ #
621
+ # Removes the file based on file name and user name.
622
+ #
623
+ # @param name
624
+ # - The name of the file which has to be removed
625
+ # @param userName
626
+ # - The name of the user for which file has to be removed
627
+ #
628
+ # @return App42Response if deleted successfully
629
+ #
630
+ # @raise App42Exception
631
+ #
632
+
633
+ def remove_file_by_user(name, userName)
634
+ puts "remove_file_by_user Called "
635
+ puts "Base url #{@base_url}"
636
+ response = nil;
637
+ responseObj = App42Response.new()
638
+ util = Util.new
639
+ util.throwExceptionIfNullOrBlank(name, "File Name");
640
+ util.throwExceptionIfNullOrBlank(userName, "User Name");
641
+ begin
642
+ connection = App42::Connection::RESTConnection.new(@base_url)
643
+ query_params = Hash.new
644
+ params = {
645
+ 'apiKey'=> @api_key,
646
+ 'version' => @version,
647
+ 'timeStamp' => util.get_timestamp_utc,
648
+ }
649
+ query_params = params.clone
650
+ params.store("name", name);
651
+ params.store("userName", userName);
652
+ puts query_params
653
+ signature = util.sign(@secret_key, params)
654
+ resource_url = "#{@version}/#{@resource}/#{userName}/#{name}"
655
+ response = connection.delete(signature, resource_url, query_params)
656
+ responseObj.strResponse=(response)
657
+ responseObj.isResponseSuccess=(true)
658
+ rescue App42Exception =>e
659
+ raise e
660
+ rescue Exception => e
661
+ raise App42Exception.new(e)
662
+ end
663
+ return responseObj
664
+ end
665
+
666
+ #
667
+ # Removes the file based on user name.
668
+ #
669
+ # @param userName
670
+ # - The name of the user for which file has to be removed
671
+ #
672
+ # @return App42Response if deleted successfully
673
+ #
674
+ # @raise App42Exception
675
+ #
676
+
677
+ def remove_all_files_by_user(userName)
678
+ puts "remove_all_files_by_user Called "
679
+ puts "Base url #{@base_url}"
680
+ response = nil;
681
+ responseObj = App42Response.new()
682
+ util = Util.new
683
+ util.throwExceptionIfNullOrBlank(userName, "User Name");
684
+ begin
685
+ connection = App42::Connection::RESTConnection.new(@base_url)
686
+ query_params = Hash.new
687
+ params = {
688
+ 'apiKey'=> @api_key,
689
+ 'version' => @version,
690
+ 'timeStamp' => util.get_timestamp_utc,
691
+ }
692
+ query_params = params.clone
693
+ params.store("userName", userName);
694
+ puts query_params
695
+ signature = util.sign(@secret_key, params)
696
+ resource_url = "#{@version}/#{@resource}/user/#{userName}"
697
+ response = connection.delete(signature, resource_url, query_params)
698
+ responseObj.strResponse=(response)
699
+ responseObj.isResponseSuccess=(true)
700
+ rescue App42Exception =>e
701
+ raise e
702
+ rescue Exception => e
703
+ raise App42Exception.new(e)
704
+ end
705
+ return responseObj
706
+ end
707
+
708
+ #
709
+ # Removes the file based on file name.
710
+ #
711
+ # @param name
712
+ # - The name of the file which has to be removed
713
+ #
714
+ # @return App42Response if deleted successfully
715
+ #
716
+ # @raise App42Exception
717
+ #
718
+
719
+ def remove_file_by_name(name)
720
+ puts "Remove File By Name Called "
721
+ puts "Base url #{@base_url}"
722
+ response = nil;
723
+ responseObj = App42Response.new();
724
+ util = Util.new
725
+ util.throwExceptionIfNullOrBlank(name, "Name");
726
+ begin
727
+ connection = App42::Connection::RESTConnection.new(@base_url)
728
+ query_params = Hash.new
729
+ params = {
730
+ 'apiKey'=> @api_key,
731
+ 'version' => @version,
732
+ 'timeStamp' => util.get_timestamp_utc,
733
+ }
734
+ query_params = params.clone
735
+ params.store("name", name)
736
+ puts query_params
737
+ signature = util.sign(@secret_key, params)
738
+ resource_url = "#{@version}/#{@resource}/#{name}"
739
+ response = connection.delete(signature, resource_url, query_params)
740
+ responseObj.strResponse=(response)
741
+ responseObj.isResponseSuccess=(true)
742
+ rescue App42Exception =>e
743
+ raise e
744
+ rescue Exception => e
745
+ raise App42Exception.new(e)
746
+ end
747
+ return responseObj
748
+ end
749
+
750
+ #
751
+ # Removes all the files for the App
752
+ #
753
+ # @return App42Response if deleted successfully
754
+ #
755
+ # @raise App42Exception
756
+ #
757
+
758
+ def remove_all_files()
759
+ puts "Remove File By Name Called "
760
+ puts "Base url #{@base_url}"
761
+ response = nil;
762
+ responseObj = App42Response.new();
763
+ util = Util.new
764
+ begin
765
+ connection = App42::Connection::RESTConnection.new(@base_url)
766
+ query_params = Hash.new
767
+ params = {
768
+ 'apiKey'=> @api_key,
769
+ 'version' => @version,
770
+ 'timeStamp' => util.get_timestamp_utc,
771
+ }
772
+ query_params = params.clone
773
+ signature = util.sign(@secret_key, params)
774
+ resource_url = "#{@version}/#{@resource}"
775
+ response = connection.delete(signature, resource_url, query_params)
776
+ responseObj.strResponse=(response)
777
+ responseObj.isResponseSuccess=(true)
778
+ rescue App42Exception =>e
779
+ raise e
780
+ rescue Exception => e
781
+ raise App42Exception.new(e)
782
+ end
783
+ return responseObj
784
+ end
785
+
786
+ #
787
+ # Get the files based on file type.
788
+ #
789
+ # @param uploadFileType
790
+ # - Type of the file e.g. Upload.AUDIO, Upload.XML etc.
791
+ #
792
+ # @return Upload object
793
+ #
794
+ # @raise App42Exception
795
+ #
796
+
797
+ def get_files_by_type(uploadFileType)
798
+ puts "get Files By Type Called "
799
+ puts "Base url #{@base_url}"
800
+ response = nil;
801
+ uploadObj = nil;
802
+ uploadObj = Upload.new
803
+ util = Util.new
804
+ util.throwExceptionIfNullOrBlank(uploadFileType, "uploadFileType");
805
+ begin
806
+ if (UploadFileType.new.isAvailable(uploadFileType) == nil)
807
+ raise App42NotFoundException.new("Upload File Type #{uploadFileType} does not Exist ");
808
+ end
809
+ connection = App42::Connection::RESTConnection.new(@base_url)
810
+ query_params = Hash.new
811
+ params = {
812
+ 'apiKey'=> @api_key,
813
+ 'version' => @version,
814
+ 'timeStamp' => util.get_timestamp_utc,
815
+ }
816
+ query_params = params.clone
817
+ params.store("type", uploadFileType)
818
+ puts query_params
819
+ signature = util.sign(@secret_key, params)
820
+ resource_url = "#{@version}/#{@resource}/type/#{uploadFileType}"
821
+ response = connection.get(signature, resource_url, query_params)
822
+ upload = UploadResponseBuilder.new()
823
+ uploadObj = upload.buildResponse(response)
824
+ rescue App42Exception =>e
825
+ raise e
826
+ rescue Exception => e
827
+ raise App42Exception.new(e)
828
+ end
829
+ return uploadObj
830
+ end
831
+
832
+ #
833
+ # Gets count of all the files for the App
834
+ #
835
+ # @return App42Response object
836
+ #
837
+ # @raise App42Exception
838
+ #
839
+
840
+ def get_all_files_count()
841
+ puts "get_all_files_count Called "
842
+ puts "Base url #{@base_url}"
843
+ response = nil;
844
+ responseObj = App42Response.new
845
+ util = Util.new
846
+ begin
847
+ connection = App42::Connection::RESTConnection.new(@base_url)
848
+ query_params = Hash.new
849
+ params = {
850
+ 'apiKey'=> @api_key,
851
+ 'version' => @version,
852
+ 'timeStamp' => util.get_timestamp_utc,
853
+ }
854
+ query_params = params.clone
855
+ puts query_params
856
+ signature = util.sign(@secret_key, params)
857
+ resource_url = "#{@version}/#{@resource}/count"
858
+ response = connection.get(signature, resource_url, query_params)
859
+ responseObj.strResponse=(response)
860
+ responseObj.isResponseSuccess=(true)
861
+ responseObj = UploadResponseBuilder.new()
862
+ responseObj.getTotalRecords(response);
863
+ rescue App42Exception =>e
864
+ raise e
865
+ rescue Exception => e
866
+ raise App42Exception.new(e)
867
+ end
868
+ return responseObj
869
+ end
870
+
871
+ # Gets the count of file based on user name.
872
+ #
873
+ # @param userName
874
+ # - The name of the user for which count of the file has to be retrieved
875
+ #
876
+ # @return App42Response object
877
+ #
878
+ # @raise App42Exception
879
+ #
880
+
881
+ def get_all_files_count_by_user(userName)
882
+ puts "get_all_files_count_by_user Called "
883
+ puts "Base url #{@base_url}"
884
+ response = nil;
885
+ responseObj = App42Response.new
886
+ util = Util.new
887
+ util.throwExceptionIfNullOrBlank(userName, "User Name");
888
+ begin
889
+ connection = App42::Connection::RESTConnection.new(@base_url)
890
+ query_params = Hash.new
891
+ params = {
892
+ 'apiKey'=> @api_key,
893
+ 'version' => @version,
894
+ 'timeStamp' => util.get_timestamp_utc,
895
+ }
896
+ query_params = params.clone
897
+ params.store("userName", userName);
898
+ puts query_params
899
+ signature = util.sign(@secret_key, params)
900
+ resource_url = "#{@version}/#{@resource}/user/#{userName}/count"
901
+ response = connection.get(signature, resource_url, query_params)
902
+ responseObj.strResponse=(response)
903
+ responseObj.isResponseSuccess=(true)
904
+ responseObj = UploadResponseBuilder.new()
905
+ responseObj.getTotalRecords(response);
906
+ rescue App42Exception =>e
907
+ raise e
908
+ rescue Exception => e
909
+ raise App42Exception.new(e)
910
+ end
911
+ return responseObj
912
+ end
913
+
914
+ #
915
+ # Get the count of files based on file type.
916
+ #
917
+ # @param uploadFileType
918
+ # - Type of the file e.g. Upload.AUDIO, Upload.XML etc.
919
+ #
920
+ # @return App42Response object
921
+ #
922
+ # @raise App42Exception
923
+ #
924
+
925
+ def get_files_count_by_type(uploadFileType)
926
+ puts "getFilesCountByType Called "
927
+ puts "Base url #{@base_url}"
928
+ response = nil;
929
+ responseObj = App42Response.new
930
+ util = Util.new
931
+ util.throwExceptionIfNullOrBlank(uploadFileType, "uploadFileType");
932
+ begin
933
+ connection = App42::Connection::RESTConnection.new(@base_url)
934
+ query_params = Hash.new
935
+ params = {
936
+ 'apiKey'=> @api_key,
937
+ 'version' => @version,
938
+ 'timeStamp' => util.get_timestamp_utc,
939
+ }
940
+ query_params = params.clone
941
+ params.store("type", uploadFileType);
942
+ puts query_params
943
+ signature = util.sign(@secret_key, params)
944
+ resource_url = "#{@version}/#{@resource}/type/#{uploadFileType}/count"
945
+ response = connection.get(signature, resource_url, query_params)
946
+ responseObj.strResponse=(response)
947
+ responseObj.isResponseSuccess=(true)
948
+ responseObj = UploadResponseBuilder.new()
949
+ responseObj.getTotalRecords(response);
950
+ rescue App42Exception =>e
951
+ raise e
952
+ rescue Exception => e
953
+ raise App42Exception.new(e)
954
+ end
955
+ return responseObj
956
+ end
957
+
958
+ end
959
+ end
960
+ end