groupdocs 2.2.0 → 2.3.0

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 (324) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +9 -9
  3. data/CHANGELOG.md +482 -477
  4. data/Gemfile +3 -3
  5. data/LICENSE.txt +21 -21
  6. data/README.md +94 -94
  7. data/Rakefile +9 -9
  8. data/examples/README.md +12 -12
  9. data/examples/api-samples/Gemfile +5 -5
  10. data/examples/api-samples/Gemfile.lock +49 -49
  11. data/examples/api-samples/README.md +23 -23
  12. data/examples/api-samples/public/css/style.css +229 -229
  13. data/examples/api-samples/public/docs/annotation-sample.html +167 -167
  14. data/examples/api-samples/public/docs/docco.css +500 -500
  15. data/examples/api-samples/public/docs/envelope-sample.html +374 -374
  16. data/examples/api-samples/public/docs/sample01.html +181 -181
  17. data/examples/api-samples/public/docs/sample02.html +199 -199
  18. data/examples/api-samples/public/docs/sample03.html +318 -318
  19. data/examples/api-samples/public/docs/sample04.html +217 -217
  20. data/examples/api-samples/public/docs/sample05.html +296 -296
  21. data/examples/api-samples/public/docs/sample06.html +347 -347
  22. data/examples/api-samples/public/docs/sample07.html +209 -209
  23. data/examples/api-samples/public/docs/sample08.html +277 -277
  24. data/examples/api-samples/public/docs/sample09.html +314 -314
  25. data/examples/api-samples/public/docs/sample10.html +270 -270
  26. data/examples/api-samples/public/docs/sample11.html +462 -462
  27. data/examples/api-samples/public/docs/sample12.html +199 -199
  28. data/examples/api-samples/public/docs/sample13.html +201 -201
  29. data/examples/api-samples/public/docs/sample14.html +204 -204
  30. data/examples/api-samples/public/docs/sample15.html +182 -182
  31. data/examples/api-samples/public/docs/sample16.html +234 -234
  32. data/examples/api-samples/public/docs/sample17.html +309 -309
  33. data/examples/api-samples/public/docs/sample18.html +721 -721
  34. data/examples/api-samples/public/docs/sample19.html +631 -631
  35. data/examples/api-samples/public/docs/sample20.html +230 -230
  36. data/examples/api-samples/public/docs/sample21.html +790 -790
  37. data/examples/api-samples/public/docs/sample22.html +408 -408
  38. data/examples/api-samples/public/docs/sample25.html +550 -550
  39. data/examples/api-samples/public/templates/base-simple_source.html +191 -191
  40. data/examples/api-samples/public/templates/testdocument.html +100 -100
  41. data/examples/api-samples/public/templates/welcome.htm +137 -137
  42. data/examples/api-samples/samples/annotation-sample.rb +56 -56
  43. data/examples/api-samples/samples/envelope-sample.rb +133 -133
  44. data/examples/api-samples/samples/sample01.rb +44 -44
  45. data/examples/api-samples/samples/sample02.rb +50 -50
  46. data/examples/api-samples/samples/sample03.rb +79 -79
  47. data/examples/api-samples/samples/sample04.rb +54 -54
  48. data/examples/api-samples/samples/sample05.rb +83 -83
  49. data/examples/api-samples/samples/sample06.rb +86 -86
  50. data/examples/api-samples/samples/sample07.rb +59 -59
  51. data/examples/api-samples/samples/sample08.rb +76 -76
  52. data/examples/api-samples/samples/sample09.rb +85 -85
  53. data/examples/api-samples/samples/sample10.rb +70 -70
  54. data/examples/api-samples/samples/sample11.rb +132 -132
  55. data/examples/api-samples/samples/sample12.rb +48 -48
  56. data/examples/api-samples/samples/sample13.rb +49 -49
  57. data/examples/api-samples/samples/sample14.rb +54 -54
  58. data/examples/api-samples/samples/sample15.rb +43 -43
  59. data/examples/api-samples/samples/sample16.rb +57 -57
  60. data/examples/api-samples/samples/sample17.rb +70 -70
  61. data/examples/api-samples/samples/sample18.rb +190 -190
  62. data/examples/api-samples/samples/sample19.rb +188 -188
  63. data/examples/api-samples/samples/sample20.rb +68 -68
  64. data/examples/api-samples/samples/sample21.rb +212 -212
  65. data/examples/api-samples/samples/sample22.rb +109 -109
  66. data/examples/api-samples/samples/sample25.rb +127 -127
  67. data/examples/api-samples/views/_others_samples.haml +233 -233
  68. data/examples/api-samples/views/annotation_sample.haml +63 -63
  69. data/examples/api-samples/views/envelope_sample.haml +72 -72
  70. data/examples/api-samples/views/index.haml +235 -235
  71. data/examples/api-samples/views/layout.haml +3 -3
  72. data/examples/api-samples/views/sample01.haml +63 -63
  73. data/examples/api-samples/views/sample02.haml +52 -52
  74. data/examples/api-samples/views/sample03.haml +87 -87
  75. data/examples/api-samples/views/sample04.haml +55 -55
  76. data/examples/api-samples/views/sample05.haml +86 -86
  77. data/examples/api-samples/views/sample06.haml +58 -58
  78. data/examples/api-samples/views/sample07.haml +52 -52
  79. data/examples/api-samples/views/sample08.haml +100 -100
  80. data/examples/api-samples/views/sample09.haml +95 -95
  81. data/examples/api-samples/views/sample10.haml +93 -93
  82. data/examples/api-samples/views/sample11.haml +140 -140
  83. data/examples/api-samples/views/sample12.haml +68 -68
  84. data/examples/api-samples/views/sample13.haml +64 -64
  85. data/examples/api-samples/views/sample14.haml +60 -60
  86. data/examples/api-samples/views/sample15.haml +51 -51
  87. data/examples/api-samples/views/sample16.haml +50 -50
  88. data/examples/api-samples/views/sample17.haml +54 -54
  89. data/examples/api-samples/views/sample18.haml +143 -143
  90. data/examples/api-samples/views/sample19.haml +92 -92
  91. data/examples/api-samples/views/sample20.haml +54 -54
  92. data/examples/api-samples/views/sample21.haml +123 -123
  93. data/examples/api-samples/views/sample22.haml +106 -106
  94. data/examples/api-samples/views/sample25.haml +101 -101
  95. data/examples/api-samples/views/sample31.haml +2 -2
  96. data/examples/api-samples/web.rb +20 -20
  97. data/examples/viewer/Gemfile +5 -5
  98. data/examples/viewer/app.rb +52 -52
  99. data/groupdocs.gemspec +31 -31
  100. data/lib/groupdocs.rb +62 -62
  101. data/lib/groupdocs/api.rb +6 -6
  102. data/lib/groupdocs/api/entity.rb +112 -112
  103. data/lib/groupdocs/api/helpers.rb +11 -11
  104. data/lib/groupdocs/api/helpers/access_mode_helper.rb +27 -27
  105. data/lib/groupdocs/api/helpers/access_rights_helper.rb +55 -55
  106. data/lib/groupdocs/api/helpers/accessor_helper.rb +30 -30
  107. data/lib/groupdocs/api/helpers/byte_flag_helper.rb +49 -49
  108. data/lib/groupdocs/api/helpers/credentials_helper.rb +35 -35
  109. data/lib/groupdocs/api/helpers/mime_helper.rb +21 -21
  110. data/lib/groupdocs/api/helpers/path_helper.rb +28 -28
  111. data/lib/groupdocs/api/helpers/rest_helper.rb +99 -99
  112. data/lib/groupdocs/api/helpers/signature_public_helper.rb +22 -22
  113. data/lib/groupdocs/api/helpers/status_helper.rb +27 -27
  114. data/lib/groupdocs/api/helpers/url_helper.rb +101 -101
  115. data/lib/groupdocs/api/request.rb +91 -91
  116. data/lib/groupdocs/datasource.rb +249 -249
  117. data/lib/groupdocs/datasource/field.rb +39 -39
  118. data/lib/groupdocs/document.rb +1550 -1550
  119. data/lib/groupdocs/document/annotation.rb +421 -421
  120. data/lib/groupdocs/document/annotation/reply.rb +173 -173
  121. data/lib/groupdocs/document/annotation/reviewer.rb +66 -66
  122. data/lib/groupdocs/document/change.rb +56 -56
  123. data/lib/groupdocs/document/field.rb +53 -53
  124. data/lib/groupdocs/document/metadata.rb +32 -32
  125. data/lib/groupdocs/document/rectangle.rb +18 -18
  126. data/lib/groupdocs/document/view.rb +36 -36
  127. data/lib/groupdocs/errors.rb +8 -8
  128. data/lib/groupdocs/job.rb +468 -468
  129. data/lib/groupdocs/questionnaire.rb +530 -530
  130. data/lib/groupdocs/questionnaire/collector.rb +335 -335
  131. data/lib/groupdocs/questionnaire/execution.rb +181 -181
  132. data/lib/groupdocs/questionnaire/page.rb +43 -43
  133. data/lib/groupdocs/questionnaire/question.rb +108 -108
  134. data/lib/groupdocs/questionnaire/question/answer.rb +15 -15
  135. data/lib/groupdocs/signature.rb +380 -380
  136. data/lib/groupdocs/signature/contact.rb +181 -181
  137. data/lib/groupdocs/signature/envelope.rb +747 -747
  138. data/lib/groupdocs/signature/envelope/log.rb +20 -20
  139. data/lib/groupdocs/signature/field.rb +286 -286
  140. data/lib/groupdocs/signature/field/location.rb +71 -71
  141. data/lib/groupdocs/signature/form.rb +804 -804
  142. data/lib/groupdocs/signature/list.rb +92 -92
  143. data/lib/groupdocs/signature/recipient.rb +79 -79
  144. data/lib/groupdocs/signature/role.rb +54 -54
  145. data/lib/groupdocs/signature/shared.rb +6 -6
  146. data/lib/groupdocs/signature/shared/document_methods.rb +158 -158
  147. data/lib/groupdocs/signature/shared/entity_fields.rb +76 -76
  148. data/lib/groupdocs/signature/shared/entity_methods.rb +144 -144
  149. data/lib/groupdocs/signature/shared/field_methods.rb +354 -354
  150. data/lib/groupdocs/signature/shared/recipient_methods.rb +75 -75
  151. data/lib/groupdocs/signature/shared/resource_methods.rb +65 -65
  152. data/lib/groupdocs/signature/template.rb +124 -124
  153. data/lib/groupdocs/storage.rb +44 -44
  154. data/lib/groupdocs/storage/file.rb +432 -432
  155. data/lib/groupdocs/storage/folder.rb +288 -288
  156. data/lib/groupdocs/storage/package.rb +48 -48
  157. data/lib/groupdocs/storage/provider.rb +32 -32
  158. data/lib/groupdocs/subscription.rb +323 -323
  159. data/lib/groupdocs/subscription/limit.rb +20 -20
  160. data/lib/groupdocs/user.rb +955 -930
  161. data/lib/groupdocs/version.rb +3 -3
  162. data/spec/groupdocs/api/entity_spec.rb +55 -55
  163. data/spec/groupdocs/api/helpers/access_mode_helper_spec.rb +21 -21
  164. data/spec/groupdocs/api/helpers/access_rights_helper_spec.rb +43 -43
  165. data/spec/groupdocs/api/helpers/accessor_helper_spec.rb +16 -16
  166. data/spec/groupdocs/api/helpers/byte_flag_helper_spec.rb +23 -23
  167. data/spec/groupdocs/api/helpers/credentials_helpers_spec.rb +48 -48
  168. data/spec/groupdocs/api/helpers/mime_helper_spec.rb +16 -16
  169. data/spec/groupdocs/api/helpers/path_helper_spec.rb +15 -15
  170. data/spec/groupdocs/api/helpers/rest_helper_spec.rb +161 -161
  171. data/spec/groupdocs/api/helpers/signature_public_helper_spec.rb +21 -21
  172. data/spec/groupdocs/api/helpers/status_helper_spec.rb +22 -22
  173. data/spec/groupdocs/api/helpers/url_helper_spec.rb +112 -112
  174. data/spec/groupdocs/api/request_spec.rb +112 -112
  175. data/spec/groupdocs/datasource/field_spec.rb +29 -29
  176. data/spec/groupdocs/datasource_spec.rb +145 -145
  177. data/spec/groupdocs/document/annotation/reply_spec.rb +154 -154
  178. data/spec/groupdocs/document/annotation/reviewer_spec.rb +51 -51
  179. data/spec/groupdocs/document/annotation_spec.rb +234 -234
  180. data/spec/groupdocs/document/change_spec.rb +39 -39
  181. data/spec/groupdocs/document/field_spec.rb +28 -28
  182. data/spec/groupdocs/document/metadata_spec.rb +21 -21
  183. data/spec/groupdocs/document/rectangle_spec.rb +14 -14
  184. data/spec/groupdocs/document/view_spec.rb +33 -33
  185. data/spec/groupdocs/document_spec.rb +859 -859
  186. data/spec/groupdocs/errors_spec.rb +7 -7
  187. data/spec/groupdocs/job_spec.rb +323 -323
  188. data/spec/groupdocs/questionnaire/collector_spec.rb +197 -197
  189. data/spec/groupdocs/questionnaire/execution_spec.rb +162 -162
  190. data/spec/groupdocs/questionnaire/page_spec.rb +47 -47
  191. data/spec/groupdocs/questionnaire/question/answer_spec.rb +9 -9
  192. data/spec/groupdocs/questionnaire/question_spec.rb +75 -75
  193. data/spec/groupdocs/questionnaire_spec.rb +295 -295
  194. data/spec/groupdocs/signature/contact_spec.rb +142 -142
  195. data/spec/groupdocs/signature/envelope/log_spec.rb +15 -15
  196. data/spec/groupdocs/signature/envelope_spec.rb +384 -384
  197. data/spec/groupdocs/signature/field/location_spec.rb +40 -40
  198. data/spec/groupdocs/signature/field_spec.rb +235 -235
  199. data/spec/groupdocs/signature/form_spec.rb +205 -205
  200. data/spec/groupdocs/signature/list_spec.rb +87 -87
  201. data/spec/groupdocs/signature/recipient_spec.rb +26 -26
  202. data/spec/groupdocs/signature/role_spec.rb +47 -47
  203. data/spec/groupdocs/signature/template_spec.rb +80 -80
  204. data/spec/groupdocs/signature_spec.rb +194 -194
  205. data/spec/groupdocs/storage/file_spec.rb +303 -303
  206. data/spec/groupdocs/storage/folder_spec.rb +270 -270
  207. data/spec/groupdocs/storage/package_spec.rb +38 -38
  208. data/spec/groupdocs/storage/provider_spec.rb +21 -21
  209. data/spec/groupdocs/storage_spec.rb +27 -27
  210. data/spec/groupdocs/subscription/limit_spec.rb +16 -16
  211. data/spec/groupdocs/subscription_spec.rb +74 -74
  212. data/spec/groupdocs/user_spec.rb +257 -257
  213. data/spec/groupdocs_spec.rb +63 -63
  214. data/spec/spec_helper.rb +73 -73
  215. data/spec/support/json/annotation_access_set.json +11 -11
  216. data/spec/support/json/annotation_collaborators_get.json +16 -16
  217. data/spec/support/json/annotation_collaborators_set.json +16 -16
  218. data/spec/support/json/annotation_create.json +12 -12
  219. data/spec/support/json/annotation_list.json +32 -32
  220. data/spec/support/json/annotation_marker_move.json +10 -10
  221. data/spec/support/json/annotation_move.json +8 -8
  222. data/spec/support/json/annotation_remove.json +9 -9
  223. data/spec/support/json/annotation_replies_create.json +9 -9
  224. data/spec/support/json/annotation_replies_get.json +25 -25
  225. data/spec/support/json/annotation_reviewers_get.json +18 -18
  226. data/spec/support/json/comparison_changes.json +46 -46
  227. data/spec/support/json/comparison_compare.json +8 -8
  228. data/spec/support/json/comparison_document.json +10 -10
  229. data/spec/support/json/contact_add.json +12 -12
  230. data/spec/support/json/contacts_get.json +19 -19
  231. data/spec/support/json/contacts_import.json +8 -8
  232. data/spec/support/json/datasource_add.json +8 -8
  233. data/spec/support/json/datasource_get.json +22 -22
  234. data/spec/support/json/datasource_remove.json +8 -8
  235. data/spec/support/json/datasource_update.json +8 -8
  236. data/spec/support/json/delete_account.json +9 -9
  237. data/spec/support/json/document_access_info_get.json +14 -14
  238. data/spec/support/json/document_convert.json +8 -8
  239. data/spec/support/json/document_datasource.json +10 -10
  240. data/spec/support/json/document_fields.json +34 -34
  241. data/spec/support/json/document_formats.json +8 -8
  242. data/spec/support/json/document_metadata.json +15 -15
  243. data/spec/support/json/document_page_images_get.json +20 -20
  244. data/spec/support/json/document_questionnaire_create.json +9 -9
  245. data/spec/support/json/document_questionnaires.json +23 -23
  246. data/spec/support/json/document_sharers_remove.json +8 -8
  247. data/spec/support/json/document_sharers_set.json +16 -16
  248. data/spec/support/json/document_thumbnails.json +24 -24
  249. data/spec/support/json/document_views.json +32 -32
  250. data/spec/support/json/envelope_get.json +46 -46
  251. data/spec/support/json/envelope_logs.json +16 -16
  252. data/spec/support/json/envelope_recipient_add.json +26 -26
  253. data/spec/support/json/envelopes_all.json +48 -48
  254. data/spec/support/json/envelopes_resources.json +31 -31
  255. data/spec/support/json/file_compress.json +8 -8
  256. data/spec/support/json/file_copy.json +14 -14
  257. data/spec/support/json/file_delete.json +5 -5
  258. data/spec/support/json/file_move.json +14 -14
  259. data/spec/support/json/file_upload.json +8 -8
  260. data/spec/support/json/folder_create.json +8 -8
  261. data/spec/support/json/folder_delete.json +5 -5
  262. data/spec/support/json/folder_list.json +22 -22
  263. data/spec/support/json/folder_move.json +8 -8
  264. data/spec/support/json/folder_sharers_get.json +16 -16
  265. data/spec/support/json/folder_sharers_remove.json +8 -8
  266. data/spec/support/json/folder_sharers_set.json +16 -16
  267. data/spec/support/json/form_get.json +21 -21
  268. data/spec/support/json/forms_all.json +23 -23
  269. data/spec/support/json/job_add_url.json +8 -8
  270. data/spec/support/json/job_create.json +8 -8
  271. data/spec/support/json/job_documents.json +40 -40
  272. data/spec/support/json/job_file_add.json +8 -8
  273. data/spec/support/json/job_get.json +30 -30
  274. data/spec/support/json/job_update.json +7 -7
  275. data/spec/support/json/jobs_get.json +58 -58
  276. data/spec/support/json/list_add.json +12 -12
  277. data/spec/support/json/lists_get.json +19 -19
  278. data/spec/support/json/package_create.json +7 -7
  279. data/spec/support/json/questionnaire_collector.json +17 -17
  280. data/spec/support/json/questionnaire_collectors.json +38 -38
  281. data/spec/support/json/questionnaire_collectors_add.json +10 -10
  282. data/spec/support/json/questionnaire_create.json +10 -10
  283. data/spec/support/json/questionnaire_datasources.json +26 -26
  284. data/spec/support/json/questionnaire_execution_add.json +9 -9
  285. data/spec/support/json/questionnaire_execution_status_set.json +8 -8
  286. data/spec/support/json/questionnaire_execution_update.json +8 -8
  287. data/spec/support/json/questionnaire_executions.json +28 -28
  288. data/spec/support/json/questionnaire_get.json +17 -17
  289. data/spec/support/json/questionnaire_remove.json +8 -8
  290. data/spec/support/json/questionnaire_update.json +8 -8
  291. data/spec/support/json/questionnaires_get.json +40 -40
  292. data/spec/support/json/sign_documents.json +16 -16
  293. data/spec/support/json/signature_create.json +12 -12
  294. data/spec/support/json/signature_field_add.json +25 -25
  295. data/spec/support/json/signature_fields_get.json +27 -27
  296. data/spec/support/json/signature_roles_get.json +17 -17
  297. data/spec/support/json/signatures_get.json +19 -19
  298. data/spec/support/json/storage_info.json +10 -10
  299. data/spec/support/json/subscription_plan_get.json +9 -9
  300. data/spec/support/json/subscription_plans_get.json +17 -17
  301. data/spec/support/json/template_get.json +35 -35
  302. data/spec/support/json/template_get_documents.json +15 -15
  303. data/spec/support/json/template_get_recipients.json +20 -20
  304. data/spec/support/json/templates_all.json +37 -37
  305. data/spec/support/json/templates_get.json +21 -21
  306. data/spec/support/json/update_account.json +10 -10
  307. data/spec/support/json/user_area.json +67 -67
  308. data/spec/support/json/user_embed_key.json +38 -38
  309. data/spec/support/json/user_get_embed_key.json +67 -67
  310. data/spec/support/json/user_login.json +67 -67
  311. data/spec/support/json/user_profile_get.json +24 -24
  312. data/spec/support/json/user_providers.json +31 -31
  313. data/spec/support/json/user_roles.json +25 -25
  314. data/spec/support/json/user_users_get.json +27 -27
  315. data/spec/support/shared_examples/api/entity.rb +39 -39
  316. data/spec/support/shared_examples/api/helpers/access_mode_helper.rb +11 -11
  317. data/spec/support/shared_examples/api/helpers/status_helper.rb +11 -11
  318. data/spec/support/shared_examples/signature/shared/document_methods.rb +68 -68
  319. data/spec/support/shared_examples/signature/shared/entity_fields.rb +56 -56
  320. data/spec/support/shared_examples/signature/shared/entity_methods.rb +116 -116
  321. data/spec/support/shared_examples/signature/shared/field_methods.rb +220 -220
  322. data/spec/support/shared_examples/signature/shared/recipient_methods.rb +46 -46
  323. data/spec/support/shared_examples/signature/shared/resource_methods.rb +46 -46
  324. metadata +35 -55
@@ -1,335 +1,335 @@
1
- module GroupDocs
2
- class Questionnaire::Collector < Api::Entity
3
-
4
- include Api::Helpers::Status
5
-
6
- #
7
- # Returns collector by its guid.
8
- #
9
- # @param [String] guid
10
- # @param [Hash] access Access credentials
11
- # @option access [String] :client_id
12
- # @option access [String] :private_key
13
- # @return [GroupDocs::Questionnaire::Collector]
14
- #
15
- def self.get!(guid, access = {})
16
- json = Api::Request.new do |request|
17
- request[:access] = access
18
- request[:method] = :GET
19
- request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}"
20
- end.execute!
21
-
22
- collector = json[:collector]
23
- collector.merge!(:questionnaire => Questionnaire.new(:id => collector[:questionnaire_id]))
24
-
25
- new(collector)
26
- end
27
-
28
- # @attr [Integer] id
29
- attr_accessor :id
30
- # @attr [String] guid
31
- attr_accessor :guid
32
- # @attr [GroupDocs::Questionnaire] questionnaire
33
- attr_accessor :questionnaire
34
- # @attr [Integer] questionnaire_id
35
- attr_accessor :questionnaire_id
36
- # @attr [Symbol] status
37
- attr_accessor :status
38
- # @attr [Symbol] type
39
- attr_accessor :type
40
- # @attr [Integer] resolved_executions
41
- attr_accessor :resolved_executions
42
- # @attr [Array<String>] emails
43
- attr_accessor :emails
44
- # @attr [Time] modified
45
- attr_accessor :modified
46
-
47
- #
48
- # Creates new GroupDocs::Questionnaire::Collector.
49
- #
50
- # @raise [ArgumentError] If questionnaire is not passed or is not an instance of GroupDocs::Questionnaire
51
- #
52
- def initialize(options = {}, &blk)
53
- super(options, &blk)
54
- questionnaire.is_a?(GroupDocs::Questionnaire) or raise ArgumentError,
55
- "You have to pass GroupDocs::Questionnaire object: #{questionnaire.inspect}."
56
- end
57
-
58
- #
59
- # Converts status to human-readable format.
60
- # @return [Symbol]
61
- #
62
- def status
63
- parse_status(@status)
64
- end
65
-
66
- #
67
- # Updates type with machine-readable format.
68
- #
69
- # @param [Symbol] type
70
- #
71
- def type=(type)
72
- @type = type.is_a?(Symbol) ? type.to_s.capitalize : type
73
- end
74
-
75
- #
76
- # Converts type to human-readable format.
77
- # @return [Symbol]
78
- #
79
- def type
80
- parse_status(@type)
81
- end
82
-
83
- #
84
- # Converts timestamp which is return by API server to Time object.
85
- # @return [Time]
86
- #
87
- def modified
88
- Time.at(@modified / 1000)
89
- end
90
-
91
- #
92
- # Adds collector.
93
- #
94
- # @example
95
- # questionnaire = GroupDocs::Questionnaire.get!(1)
96
- # collector = GroupDocs::Questionnaire::Collector.new(questionnaire: questionnaire)
97
- # collector.type = :link
98
- # collector.add!
99
- #
100
- # @param [Hash] access Access credentials
101
- # @option access [String] :client_id
102
- # @option access [String] :private_key
103
- #
104
- def add!(access = {})
105
- json = Api::Request.new do |request|
106
- request[:access] = access
107
- request[:method] = :POST
108
- request[:path] = "/merge/{{client_id}}/questionnaires/#{questionnaire.guid}/collectors"
109
- request[:request_body] = to_hash
110
- end.execute!
111
-
112
- self.id = json[:collector_id]
113
- self.guid = json[:collector_guid]
114
- end
115
-
116
- #
117
- # Updates collector.
118
- #
119
- # @example
120
- # questionnaire = GroupDocs::Questionnaire.get!(1)
121
- # collector = questionnaire.collectors!.first
122
- # collector.type = :embedded
123
- # collector.update!
124
- #
125
- # @param [Hash] access Access credentials
126
- # @option access [String] :client_id
127
- # @option access [String] :private_key
128
- #
129
- def update!(access = {})
130
- Api::Request.new do |request|
131
- request[:access] = access
132
- request[:method] = :PUT
133
- request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}"
134
- request[:request_body] = to_hash
135
- end.execute!
136
- end
137
-
138
- #
139
- # Removes collector.
140
- #
141
- # @param [Hash] access Access credentials
142
- # @option access [String] :client_id
143
- # @option access [String] :private_key
144
- #
145
- def remove!(access = {})
146
- Api::Request.new do |request|
147
- request[:access] = access
148
- request[:method] = :DELETE
149
- request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}"
150
- end.execute!
151
- end
152
-
153
- #
154
- # Returns an array of questionnaire collector executions.
155
- #
156
- # @param [Hash] access Access credentials
157
- # @option access [String] :client_id
158
- # @option access [String] :private_key
159
- # @return [Array<GroupDocs::Questionnaire::Execution>]
160
- #
161
- def executions!(access = {})
162
- json = Api::Request.new do |request|
163
- request[:access] = access
164
- request[:method] = :GET
165
- request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}/executions"
166
- end.execute!
167
-
168
- json[:executions].map do |execution|
169
- Questionnaire::Execution.new(execution)
170
- end
171
- end
172
-
173
- #
174
- # Adds new questionnaire execution.
175
- #
176
- # @example
177
- # questionnaire = GroupDocs::Questionnaire.get!(1)
178
- # collector = questionnaire.collectors!.first
179
- # execution = GroupDocs::Questionnaire::Execution.new
180
- # execution.executive = GroupDocs::User.new(primary_email: 'john@smith.com')
181
- # # make sure to save execution as it has updated attributes
182
- # execution = collector.add_execution!(execution)
183
- # #=> #<GroupDocs::Questionnaire::Execution @id=1, @questionnaire_id=1>
184
- #
185
- # @param [GroupDocs::Questionnaire::Execution] execution
186
- # @param [Hash] access Access credentials
187
- # @option access [String] :client_id
188
- # @option access [String] :private_key
189
- # @return [GroupDocs::Questionnaire::Execution] updated execution
190
- #
191
- def add_execution!(execution, access = {})
192
- execution.is_a?(GroupDocs::Questionnaire::Execution) or raise ArgumentError,
193
- "Execution should be GroupDocs::Questionnaire::Execution object, received: #{execution.inspect}"
194
-
195
- json = Api::Request.new do |request|
196
- request[:access] = access
197
- request[:method] = :POST
198
- request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}/executions"
199
- request[:request_body] = execution.to_hash
200
- end.execute!
201
-
202
- execution.id = json[:execution_id]
203
- execution.guid = json[:execution_guid]
204
- execution.collector_id = json[:collector_id]
205
-
206
- execution
207
- end
208
-
209
- #
210
- # Creates new job to merge datasource into questionnaire collector.
211
- #
212
- # @example
213
- # # get template and its first field
214
- # document = GroupDocs::Document.templates!.first
215
- # field = document.fields!.first
216
- # # create questionnaire
217
- # answer = GroupDocs::Questionnaire::Question::Answer.new(text: 'Text', value: 'Value1')
218
- # question = GroupDocs::Questionnaire::Question.new(field: field.name, text: 'Question', answers: [answer])
219
- # page = GroupDocs::Questionnaire::Page.new(number: field.page, questions: [question])
220
- # questionnaire = GroupDocs::Questionnaire.new(name: 'Questionnaire', description: 'Description', pages: [page])
221
- # questionnaire.create!
222
- # # add questionnaire to document
223
- # document.add_questionnaire! questionnaire
224
- # # create collector
225
- # collector = GroupDocs::Questionnaire::Collector.new(questionnaire: questionnaire)
226
- # collector.type = :link
227
- # collector.add!
228
- # # create datasource and its field
229
- # field = GroupDocs::DataSource::Field.new(field: field.name, values: %w(test1 test2))
230
- # datasource = GroupDocs::DataSource.new(fields: [field])
231
- # datasource.add!
232
- # # fill collector with datasrouce and send results to email
233
- # collector.fill!(datasource, email_results: true)
234
- #
235
- # @param [GroupDocs::DataSource] datasource
236
- # @param [Hash] options
237
- # @option options [Boolean] :new_type New file format type
238
- # @option options [Boolean] :email_results Set to true if converted document should be emailed
239
- # @param [Hash] access Access credentials
240
- # @option access [String] :client_id
241
- # @option access [String] :private_key
242
- # @return [GroupDocs::Job]
243
- #
244
- # @raise [ArgumentError] if datasource is not GroupDocs::DataSource object
245
- #
246
- def fill!(datasource, options = {}, access = {})
247
- datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError,
248
- "Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}"
249
-
250
- api = Api::Request.new do |request|
251
- request[:access] = access
252
- request[:method] = :POST
253
- request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}/datasources/#{datasource.id}"
254
- end
255
- api.add_params(options)
256
- json = api.execute!
257
-
258
- Job.new(:id => json[:job_id])
259
- end
260
-
261
-
262
- #
263
- # Added in release 1.5.8
264
- #
265
- # Get questionnaire by collector guid
266
- #
267
- # @param [Hash] access Access credentials
268
- # @option access [String] :client_id
269
- # @option access [String] :private_key
270
- #
271
- def get_questionnaire!(access = {})
272
- api = Api::Request.new do |request|
273
- request[:access] = access
274
- request[:method] = :GET
275
- request[:path] = "/merge/{{client_id}}/questionnaires/collector/#{guid}"
276
- end
277
- json = api.execute!
278
- Questionnaire.new(json[:questionnaire])
279
-
280
- end
281
-
282
- #
283
- # Added in release 1.7.0
284
- #
285
- # Decorate questionnaire collector
286
- #
287
- # @example
288
- # questionnaire = GroupDocs::Questionnaire.get!(1)
289
- # collector = questionnaire.collectors!.first
290
- # style = GroupDocs::Questionnaire::QuestionnaireCollectorStyle.new
291
- # style.collectorId = collector.id
292
- # title = GroupDocs::Questionnaire::QuestionnaireCollectorStyle::Title.new
293
- # title.color = 'blue'
294
- # style.title = title
295
- #
296
- # @param [Hash] access Access credentials
297
- # @option access [String] :client_id
298
- # @option access [String] :private_key
299
- #
300
- def decorate!(style, access = {})
301
- style.is_a?(GroupDocs::Questionnaire::QuestionnaireCollectorStyle) or raise ArgumentError,
302
- "Style should be GroupDocs::Questionnaire::QuestionnaireCollectorStyle object, received: #{style.inspect}"
303
- Api::Request.new do |request|
304
- request[:access] = access
305
- request[:method] = :POST
306
- request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}/decorate"
307
- request[:request_body] = style
308
- end.execute!
309
- end
310
-
311
-
312
- #
313
- # Added in release 1.7.0
314
- #
315
- # Returns questionnaire collector style
316
- #
317
- # @example
318
- # questionnaire = GroupDocs::Questionnaire.get!(1)
319
- # collector = questionnaire.collectors!.first
320
- # collector.decorate!
321
- #
322
- # @param [Hash] access Access credentials
323
- # @option access [String] :client_id
324
- # @option access [String] :private_key
325
- #
326
- def get_decorate!(access = {})
327
- Api::Request.new do |request|
328
- request[:access] = access
329
- request[:method] = :GET
330
- request[:path] = "/merge/{{client_id}}/questionnaires/collector/#{guid}/style"
331
- end.execute!
332
- end
333
-
334
- end # Questionnaire::Collector
335
- end # GroupDocs
1
+ module GroupDocs
2
+ class Questionnaire::Collector < Api::Entity
3
+
4
+ include Api::Helpers::Status
5
+
6
+ #
7
+ # Returns collector by its guid.
8
+ #
9
+ # @param [String] guid
10
+ # @param [Hash] access Access credentials
11
+ # @option access [String] :client_id
12
+ # @option access [String] :private_key
13
+ # @return [GroupDocs::Questionnaire::Collector]
14
+ #
15
+ def self.get!(guid, access = {})
16
+ json = Api::Request.new do |request|
17
+ request[:access] = access
18
+ request[:method] = :GET
19
+ request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}"
20
+ end.execute!
21
+
22
+ collector = json[:collector]
23
+ collector.merge!(:questionnaire => Questionnaire.new(:id => collector[:questionnaire_id]))
24
+
25
+ new(collector)
26
+ end
27
+
28
+ # @attr [Integer] id
29
+ attr_accessor :id
30
+ # @attr [String] guid
31
+ attr_accessor :guid
32
+ # @attr [GroupDocs::Questionnaire] questionnaire
33
+ attr_accessor :questionnaire
34
+ # @attr [Integer] questionnaire_id
35
+ attr_accessor :questionnaire_id
36
+ # @attr [Symbol] status
37
+ attr_accessor :status
38
+ # @attr [Symbol] type
39
+ attr_accessor :type
40
+ # @attr [Integer] resolved_executions
41
+ attr_accessor :resolved_executions
42
+ # @attr [Array<String>] emails
43
+ attr_accessor :emails
44
+ # @attr [Time] modified
45
+ attr_accessor :modified
46
+
47
+ #
48
+ # Creates new GroupDocs::Questionnaire::Collector.
49
+ #
50
+ # @raise [ArgumentError] If questionnaire is not passed or is not an instance of GroupDocs::Questionnaire
51
+ #
52
+ def initialize(options = {}, &blk)
53
+ super(options, &blk)
54
+ questionnaire.is_a?(GroupDocs::Questionnaire) or raise ArgumentError,
55
+ "You have to pass GroupDocs::Questionnaire object: #{questionnaire.inspect}."
56
+ end
57
+
58
+ #
59
+ # Converts status to human-readable format.
60
+ # @return [Symbol]
61
+ #
62
+ def status
63
+ parse_status(@status)
64
+ end
65
+
66
+ #
67
+ # Updates type with machine-readable format.
68
+ #
69
+ # @param [Symbol] type
70
+ #
71
+ def type=(type)
72
+ @type = type.is_a?(Symbol) ? type.to_s.capitalize : type
73
+ end
74
+
75
+ #
76
+ # Converts type to human-readable format.
77
+ # @return [Symbol]
78
+ #
79
+ def type
80
+ parse_status(@type)
81
+ end
82
+
83
+ #
84
+ # Converts timestamp which is return by API server to Time object.
85
+ # @return [Time]
86
+ #
87
+ def modified
88
+ Time.at(@modified / 1000)
89
+ end
90
+
91
+ #
92
+ # Adds collector.
93
+ #
94
+ # @example
95
+ # questionnaire = GroupDocs::Questionnaire.get!(1)
96
+ # collector = GroupDocs::Questionnaire::Collector.new(questionnaire: questionnaire)
97
+ # collector.type = :link
98
+ # collector.add!
99
+ #
100
+ # @param [Hash] access Access credentials
101
+ # @option access [String] :client_id
102
+ # @option access [String] :private_key
103
+ #
104
+ def add!(access = {})
105
+ json = Api::Request.new do |request|
106
+ request[:access] = access
107
+ request[:method] = :POST
108
+ request[:path] = "/merge/{{client_id}}/questionnaires/#{questionnaire.guid}/collectors"
109
+ request[:request_body] = to_hash
110
+ end.execute!
111
+
112
+ self.id = json[:collector_id]
113
+ self.guid = json[:collector_guid]
114
+ end
115
+
116
+ #
117
+ # Updates collector.
118
+ #
119
+ # @example
120
+ # questionnaire = GroupDocs::Questionnaire.get!(1)
121
+ # collector = questionnaire.collectors!.first
122
+ # collector.type = :embedded
123
+ # collector.update!
124
+ #
125
+ # @param [Hash] access Access credentials
126
+ # @option access [String] :client_id
127
+ # @option access [String] :private_key
128
+ #
129
+ def update!(access = {})
130
+ Api::Request.new do |request|
131
+ request[:access] = access
132
+ request[:method] = :PUT
133
+ request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}"
134
+ request[:request_body] = to_hash
135
+ end.execute!
136
+ end
137
+
138
+ #
139
+ # Removes collector.
140
+ #
141
+ # @param [Hash] access Access credentials
142
+ # @option access [String] :client_id
143
+ # @option access [String] :private_key
144
+ #
145
+ def remove!(access = {})
146
+ Api::Request.new do |request|
147
+ request[:access] = access
148
+ request[:method] = :DELETE
149
+ request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}"
150
+ end.execute!
151
+ end
152
+
153
+ #
154
+ # Returns an array of questionnaire collector executions.
155
+ #
156
+ # @param [Hash] access Access credentials
157
+ # @option access [String] :client_id
158
+ # @option access [String] :private_key
159
+ # @return [Array<GroupDocs::Questionnaire::Execution>]
160
+ #
161
+ def executions!(access = {})
162
+ json = Api::Request.new do |request|
163
+ request[:access] = access
164
+ request[:method] = :GET
165
+ request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}/executions"
166
+ end.execute!
167
+
168
+ json[:executions].map do |execution|
169
+ Questionnaire::Execution.new(execution)
170
+ end
171
+ end
172
+
173
+ #
174
+ # Adds new questionnaire execution.
175
+ #
176
+ # @example
177
+ # questionnaire = GroupDocs::Questionnaire.get!(1)
178
+ # collector = questionnaire.collectors!.first
179
+ # execution = GroupDocs::Questionnaire::Execution.new
180
+ # execution.executive = GroupDocs::User.new(primary_email: 'john@smith.com')
181
+ # # make sure to save execution as it has updated attributes
182
+ # execution = collector.add_execution!(execution)
183
+ # #=> #<GroupDocs::Questionnaire::Execution @id=1, @questionnaire_id=1>
184
+ #
185
+ # @param [GroupDocs::Questionnaire::Execution] execution
186
+ # @param [Hash] access Access credentials
187
+ # @option access [String] :client_id
188
+ # @option access [String] :private_key
189
+ # @return [GroupDocs::Questionnaire::Execution] updated execution
190
+ #
191
+ def add_execution!(execution, access = {})
192
+ execution.is_a?(GroupDocs::Questionnaire::Execution) or raise ArgumentError,
193
+ "Execution should be GroupDocs::Questionnaire::Execution object, received: #{execution.inspect}"
194
+
195
+ json = Api::Request.new do |request|
196
+ request[:access] = access
197
+ request[:method] = :POST
198
+ request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}/executions"
199
+ request[:request_body] = execution.to_hash
200
+ end.execute!
201
+
202
+ execution.id = json[:execution_id]
203
+ execution.guid = json[:execution_guid]
204
+ execution.collector_id = json[:collector_id]
205
+
206
+ execution
207
+ end
208
+
209
+ #
210
+ # Creates new job to merge datasource into questionnaire collector.
211
+ #
212
+ # @example
213
+ # # get template and its first field
214
+ # document = GroupDocs::Document.templates!.first
215
+ # field = document.fields!.first
216
+ # # create questionnaire
217
+ # answer = GroupDocs::Questionnaire::Question::Answer.new(text: 'Text', value: 'Value1')
218
+ # question = GroupDocs::Questionnaire::Question.new(field: field.name, text: 'Question', answers: [answer])
219
+ # page = GroupDocs::Questionnaire::Page.new(number: field.page, questions: [question])
220
+ # questionnaire = GroupDocs::Questionnaire.new(name: 'Questionnaire', description: 'Description', pages: [page])
221
+ # questionnaire.create!
222
+ # # add questionnaire to document
223
+ # document.add_questionnaire! questionnaire
224
+ # # create collector
225
+ # collector = GroupDocs::Questionnaire::Collector.new(questionnaire: questionnaire)
226
+ # collector.type = :link
227
+ # collector.add!
228
+ # # create datasource and its field
229
+ # field = GroupDocs::DataSource::Field.new(field: field.name, values: %w(test1 test2))
230
+ # datasource = GroupDocs::DataSource.new(fields: [field])
231
+ # datasource.add!
232
+ # # fill collector with datasrouce and send results to email
233
+ # collector.fill!(datasource, email_results: true)
234
+ #
235
+ # @param [GroupDocs::DataSource] datasource
236
+ # @param [Hash] options
237
+ # @option options [Boolean] :new_type New file format type
238
+ # @option options [Boolean] :email_results Set to true if converted document should be emailed
239
+ # @param [Hash] access Access credentials
240
+ # @option access [String] :client_id
241
+ # @option access [String] :private_key
242
+ # @return [GroupDocs::Job]
243
+ #
244
+ # @raise [ArgumentError] if datasource is not GroupDocs::DataSource object
245
+ #
246
+ def fill!(datasource, options = {}, access = {})
247
+ datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError,
248
+ "Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}"
249
+
250
+ api = Api::Request.new do |request|
251
+ request[:access] = access
252
+ request[:method] = :POST
253
+ request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}/datasources/#{datasource.id}"
254
+ end
255
+ api.add_params(options)
256
+ json = api.execute!
257
+
258
+ Job.new(:id => json[:job_id])
259
+ end
260
+
261
+
262
+ #
263
+ # Added in release 1.5.8
264
+ #
265
+ # Get questionnaire by collector guid
266
+ #
267
+ # @param [Hash] access Access credentials
268
+ # @option access [String] :client_id
269
+ # @option access [String] :private_key
270
+ #
271
+ def get_questionnaire!(access = {})
272
+ api = Api::Request.new do |request|
273
+ request[:access] = access
274
+ request[:method] = :GET
275
+ request[:path] = "/merge/{{client_id}}/questionnaires/collector/#{guid}"
276
+ end
277
+ json = api.execute!
278
+ Questionnaire.new(json[:questionnaire])
279
+
280
+ end
281
+
282
+ #
283
+ # Added in release 1.7.0
284
+ #
285
+ # Decorate questionnaire collector
286
+ #
287
+ # @example
288
+ # questionnaire = GroupDocs::Questionnaire.get!(1)
289
+ # collector = questionnaire.collectors!.first
290
+ # style = GroupDocs::Questionnaire::QuestionnaireCollectorStyle.new
291
+ # style.collectorId = collector.id
292
+ # title = GroupDocs::Questionnaire::QuestionnaireCollectorStyle::Title.new
293
+ # title.color = 'blue'
294
+ # style.title = title
295
+ #
296
+ # @param [Hash] access Access credentials
297
+ # @option access [String] :client_id
298
+ # @option access [String] :private_key
299
+ #
300
+ def decorate!(style, access = {})
301
+ style.is_a?(GroupDocs::Questionnaire::QuestionnaireCollectorStyle) or raise ArgumentError,
302
+ "Style should be GroupDocs::Questionnaire::QuestionnaireCollectorStyle object, received: #{style.inspect}"
303
+ Api::Request.new do |request|
304
+ request[:access] = access
305
+ request[:method] = :POST
306
+ request[:path] = "/merge/{{client_id}}/questionnaires/collectors/#{guid}/decorate"
307
+ request[:request_body] = style
308
+ end.execute!
309
+ end
310
+
311
+
312
+ #
313
+ # Added in release 1.7.0
314
+ #
315
+ # Returns questionnaire collector style
316
+ #
317
+ # @example
318
+ # questionnaire = GroupDocs::Questionnaire.get!(1)
319
+ # collector = questionnaire.collectors!.first
320
+ # collector.decorate!
321
+ #
322
+ # @param [Hash] access Access credentials
323
+ # @option access [String] :client_id
324
+ # @option access [String] :private_key
325
+ #
326
+ def get_decorate!(access = {})
327
+ Api::Request.new do |request|
328
+ request[:access] = access
329
+ request[:method] = :GET
330
+ request[:path] = "/merge/{{client_id}}/questionnaires/collector/#{guid}/style"
331
+ end.execute!
332
+ end
333
+
334
+ end # Questionnaire::Collector
335
+ end # GroupDocs