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,68 +1,68 @@
1
- #GET request
2
- get '/sample-20-how-to-get-compare-change-list-for-document' do
3
- haml :sample20
4
- end
5
-
6
- #POST request
7
- post '/sample-20-how-to-get-compare-change-list-for-document' do
8
- #Set variables
9
- set :client_id, params[:clientId]
10
- set :private_key, params[:privateKey]
11
- set :resultFileId, params[:resultFileId]
12
- set :base_path, params[:basePath]
13
-
14
- begin
15
-
16
- #Check required variables
17
- raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.resultFileId.empty?
18
-
19
- #Prepare base path
20
- if settings.base_path.empty?
21
- base_path = 'https://api.groupdocs.com'
22
- elsif settings.base_path.match('/v2.0')
23
- base_path = settings.base_path.split('/v2.0')[0]
24
- else
25
- base_path = settings.base_path
26
- end
27
-
28
- #Configure your access to API server
29
- GroupDocs.configure do |groupdocs|
30
- groupdocs.client_id = settings.client_id
31
- groupdocs.private_key = settings.private_key
32
- #Optionally specify API server and version
33
- groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
34
- end
35
-
36
- #Construct new storage file
37
- file = GroupDocs::Storage::File.new(guid: settings.resultFileId)
38
- #Construct new document
39
- document = GroupDocs::Document.new(file: file)
40
-
41
- #Get compare changes
42
- changes = document.changes!()
43
- result = ''
44
- result += "<table class='border'>"
45
- result += "<tr><td><font color='green'>Change Name</font></td><td><font color='green'>Change</font></td></tr>"
46
- changes.each do |change|
47
- result += "<tr><td>id</td><td>#{change.id}</td></tr>"
48
- result += "<tr><td>type</td><td>#{change.type}</td></tr>"
49
- result += "<tr><td>text</td><td>#{change.text}</td></tr>"
50
- result += "<tr><td>page id</td><td>#{change.page[:Id]}</td></tr>"
51
- result += "<tr><td>page weight</td><td>#{change.page[:Width]}</td></tr>"
52
- result += "<tr><td>page height</td><td>#{change.page[:Height]}</td></tr>"
53
- result += "<tr><td>box x</td><td>#{change.box.x}</td></tr>"
54
- result += "<tr><td>box y</td><td>#{change.box.y}</td></tr>"
55
- result += "<tr><td>box weight</td><td>#{change.box.width}</td></tr>"
56
- result += "<tr><td>box height</td><td>#{change.box.height}</td></tr>"
57
- result += "<tr bgcolor='#808080'><td></td><td></td></tr>"
58
- end
59
-
60
- result += '</table>'
61
-
62
- rescue Exception => e
63
- err = e.message
64
- end
65
-
66
- #Set variables for template
67
- haml :sample20, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :resultFileId => settings.resultFileId, :result => result, :err => err}
68
- end
1
+ #GET request
2
+ get '/sample-20-how-to-get-compare-change-list-for-document' do
3
+ haml :sample20
4
+ end
5
+
6
+ #POST request
7
+ post '/sample-20-how-to-get-compare-change-list-for-document' do
8
+ #Set variables
9
+ set :client_id, params[:clientId]
10
+ set :private_key, params[:privateKey]
11
+ set :resultFileId, params[:resultFileId]
12
+ set :base_path, params[:basePath]
13
+
14
+ begin
15
+
16
+ #Check required variables
17
+ raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.resultFileId.empty?
18
+
19
+ #Prepare base path
20
+ if settings.base_path.empty?
21
+ base_path = 'https://api.groupdocs.com'
22
+ elsif settings.base_path.match('/v2.0')
23
+ base_path = settings.base_path.split('/v2.0')[0]
24
+ else
25
+ base_path = settings.base_path
26
+ end
27
+
28
+ #Configure your access to API server
29
+ GroupDocs.configure do |groupdocs|
30
+ groupdocs.client_id = settings.client_id
31
+ groupdocs.private_key = settings.private_key
32
+ #Optionally specify API server and version
33
+ groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
34
+ end
35
+
36
+ #Construct new storage file
37
+ file = GroupDocs::Storage::File.new(guid: settings.resultFileId)
38
+ #Construct new document
39
+ document = GroupDocs::Document.new(file: file)
40
+
41
+ #Get compare changes
42
+ changes = document.changes!()
43
+ result = ''
44
+ result += "<table class='border'>"
45
+ result += "<tr><td><font color='green'>Change Name</font></td><td><font color='green'>Change</font></td></tr>"
46
+ changes.each do |change|
47
+ result += "<tr><td>id</td><td>#{change.id}</td></tr>"
48
+ result += "<tr><td>type</td><td>#{change.type}</td></tr>"
49
+ result += "<tr><td>text</td><td>#{change.text}</td></tr>"
50
+ result += "<tr><td>page id</td><td>#{change.page[:Id]}</td></tr>"
51
+ result += "<tr><td>page weight</td><td>#{change.page[:Width]}</td></tr>"
52
+ result += "<tr><td>page height</td><td>#{change.page[:Height]}</td></tr>"
53
+ result += "<tr><td>box x</td><td>#{change.box.x}</td></tr>"
54
+ result += "<tr><td>box y</td><td>#{change.box.y}</td></tr>"
55
+ result += "<tr><td>box weight</td><td>#{change.box.width}</td></tr>"
56
+ result += "<tr><td>box height</td><td>#{change.box.height}</td></tr>"
57
+ result += "<tr bgcolor='#808080'><td></td><td></td></tr>"
58
+ end
59
+
60
+ result += '</table>'
61
+
62
+ rescue Exception => e
63
+ err = e.message
64
+ end
65
+
66
+ #Set variables for template
67
+ haml :sample20, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :resultFileId => settings.resultFileId, :result => result, :err => err}
68
+ end
@@ -1,212 +1,212 @@
1
- #GET request
2
- get '/sample-21-how-to-create-and-upload-envelop-to-groupdocs-account' do
3
- haml :sample21
4
- end
5
-
6
- #POST request
7
- post '/sample21/signature_callback' do
8
- #Set download path
9
- downloads_path = "#{File.dirname(__FILE__)}/../public/downloads"
10
-
11
- #Get callback request
12
- data = JSON.parse(request.body.read)
13
- begin
14
- raise 'Empty params!' if data.empty?
15
- source_id = nil
16
- client_id = nil
17
- private_key = nil
18
-
19
- #Get value of SourceId
20
- data.each do |key, value|
21
- if key == 'SourceId'
22
- source_id = value
23
- end
24
- end
25
-
26
- #Get private key and client_id from file user_info.txt
27
- if File.exist?("#{File.dirname(__FILE__)}/../public/user_info.txt")
28
- contents = File.read("#{File.dirname(__FILE__)}/../public/user_info.txt")
29
- contents = contents.split(' ')
30
- client_id = contents.first
31
- private_key = contents.last
32
- end
33
-
34
- #Create Job instance
35
- job = GroupDocs::Signature::Envelope.new({:id => source_id})
36
-
37
- #Get document by job id
38
- documents = job.documents!({}, {:client_id => client_id, :private_key => private_key})
39
-
40
- #Download converted file
41
- documents[0].file.download!(downloads_path, {:client_id => client_id, :private_key => private_key})
42
-
43
- rescue Exception => e
44
- err = e.message
45
- end
46
- end
47
-
48
-
49
- #GET request
50
- get '/sample21/check' do
51
-
52
- #Check is there download directory
53
- unless File.directory?("#{File.dirname(__FILE__)}/../public/downloads")
54
- return 'Directory was not found.'
55
- end
56
-
57
- #Get file name from download directory
58
- name = nil
59
- Dir.entries("#{File.dirname(__FILE__)}/../public/downloads").each do |file|
60
- name = file if file != '.' && file != '..'
61
- end
62
-
63
- name
64
- end
65
-
66
- #GET request
67
- get '/sample21/downloads/:filename' do |filename|
68
- #Send file with header to download it
69
- send_file "#{File.dirname(__FILE__)}/../public/downloads/#{filename}", :filename => filename, :type => 'Application/octet-stream'
70
- end
71
-
72
- #POST request
73
- post '/sample-21-how-to-create-and-upload-envelop-to-groupdocs-account' do
74
- #Set variables
75
- set :client_id, params[:clientId]
76
- set :private_key, params[:privateKey]
77
- set :email, params[:email]
78
- set :name, params[:name]
79
- set :lastName, params[:lastName]
80
- set :fileId, params[:fileId]
81
- set :callback, params[:callback]
82
- set :base_path, params[:basePath]
83
- set :url, params[:url]
84
- set :source, params[:source]
85
-
86
- #Set download path
87
- downloads_path = "#{File.dirname(__FILE__)}/../public/downloads"
88
-
89
- #Remove all files from download directory or create folder if it not there
90
- if File.directory?(downloads_path)
91
- Dir.foreach(downloads_path) { |f| fn = File.join(downloads_path, f); File.delete(fn) if f != '.' && f != '..' }
92
- else
93
- Dir::mkdir(downloads_path)
94
- end
95
-
96
- begin
97
- #Check required variables
98
- raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.email.empty? or settings.name.empty? or settings.lastName.empty?
99
-
100
- #Prepare base path
101
- if settings.base_path.empty?
102
- base_path = 'https://api.groupdocs.com'
103
- elsif settings.base_path.match('/v2.0')
104
- base_path = settings.base_path.split('/v2.0')[0]
105
- else
106
- base_path = settings.base_path
107
- end
108
-
109
- #Configure your access to API server
110
- GroupDocs.configure do |groupdocs|
111
- groupdocs.client_id = settings.client_id
112
- groupdocs.private_key = settings.private_key
113
- #Optionally specify API server and version
114
- groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
115
- end
116
-
117
- #Write client and private key to the file for callback job
118
- if settings.callback
119
- out_file = File.new("#{File.dirname(__FILE__)}/../public/user_info.txt", 'w')
120
- #White space is required
121
- out_file.write("#{settings.client_id} ")
122
- out_file.write("#{settings.private_key}")
123
- out_file.close
124
- end
125
-
126
- file = nil
127
- #Get document by file GUID
128
- case settings.source
129
- when 'guid'
130
- #Create instance of File
131
- file = GroupDocs::Storage::File.new({:guid => settings.fileId}).to_document.metadata!()
132
- file = file.last_view.document.file.to_document
133
- when 'local'
134
- #Construct path
135
- file_path = "#{Dir.tmpdir}/#{params[:file][:filename]}"
136
-
137
- #Open file
138
- File.open(file_path, 'wb') { |f| f.write(params[:file][:tempfile].read) }
139
- #Make a request to API using client_id and private_key
140
- file = GroupDocs::Storage::File.upload!(file_path, {}).to_document
141
- when 'url'
142
- #Upload file from defined url
143
- file = GroupDocs::Storage::File.upload_web!(settings.url).to_document
144
- else
145
- raise 'Wrong GUID source.'
146
- end
147
-
148
- name = file.name
149
- #Create envelope using user id and entered by user name
150
- envelope = GroupDocs::Signature::Envelope.new
151
- envelope.name = file.name
152
- envelope.email_subject = 'Sing this!'
153
- envelope.create!({})
154
-
155
- #Add uploaded document to envelope
156
- envelope.add_document!(file, {})
157
-
158
- #Get role list for current user
159
- roles = GroupDocs::Signature::Role.get!({})
160
-
161
- #Create new recipient
162
- recipient = GroupDocs::Signature::Recipient.new
163
- recipient.email = settings.email
164
- recipient.first_name = settings.name
165
- recipient.last_name = settings.lastName
166
- recipient.role_id = roles.detect { |role| role.name == 'Signer' }.id
167
-
168
- #Add recipient to envelope
169
- recipient = envelope.add_recipient!(recipient)
170
-
171
-
172
- #Get document id
173
- document = envelope.documents!({})
174
-
175
-
176
- #Get field and add the location to field
177
- field = GroupDocs::Signature::Field.get!({}).detect { |f| f.type == :signature }
178
- field.location = {:location_x => 0.15, :location_y => 0.73, :location_w => 150, :location_h => 50, :page => 1}
179
- field.name = 'EMPLOYEE SIGNATURE'
180
-
181
- #Add field to envelope
182
- envelope.add_field!(field, document[0], recipient, {})
183
-
184
-
185
- #Send envelop
186
- envelope.send!({:callbackUrl => settings.callback})
187
-
188
- #Prepare to sign url
189
- iframe = "/signature2/signembed/#{envelope.id}/#{recipient.id}"
190
- #Construct result string
191
- url = GroupDocs::Api::Request.new(:path => iframe).prepare_and_sign_url
192
- #Generate iframe URL
193
- case base_path
194
- when 'https://stage-api-groupdocs.dynabic.com'
195
- iframe = "https://stage-api-groupdocs.dynabic.com#{url}"
196
- when 'https://dev-api-groupdocs.dynabic.com'
197
- iframe = "https://dev-apps.groupdocs.com#{url}"
198
- else
199
- iframe = "https://apps.groupdocs.com#{url}"
200
- end
201
-
202
- #Make iframe
203
- iframe = "<iframe id='downloadframe' src='#{iframe}' width='800' height='1000'></iframe>"
204
- #Create message
205
- message = "<p>File was uploaded to GroupDocs. Here you can see your <strong>#{name}</strong> file in the GroupDocs Embedded Viewer.</p>"
206
- rescue Exception => e
207
- err = e.message
208
- end
209
-
210
- #Set variables for template
211
- haml :sample21, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :email => settings.email, :name => settings.name, :lastName => settings.lastName, :iframe => iframe, :massage => message, :err => err, :callback => settings.callback,}
212
- end
1
+ #GET request
2
+ get '/sample-21-how-to-create-and-upload-envelop-to-groupdocs-account' do
3
+ haml :sample21
4
+ end
5
+
6
+ #POST request
7
+ post '/sample21/signature_callback' do
8
+ #Set download path
9
+ downloads_path = "#{File.dirname(__FILE__)}/../public/downloads"
10
+
11
+ #Get callback request
12
+ data = JSON.parse(request.body.read)
13
+ begin
14
+ raise 'Empty params!' if data.empty?
15
+ source_id = nil
16
+ client_id = nil
17
+ private_key = nil
18
+
19
+ #Get value of SourceId
20
+ data.each do |key, value|
21
+ if key == 'SourceId'
22
+ source_id = value
23
+ end
24
+ end
25
+
26
+ #Get private key and client_id from file user_info.txt
27
+ if File.exist?("#{File.dirname(__FILE__)}/../public/user_info.txt")
28
+ contents = File.read("#{File.dirname(__FILE__)}/../public/user_info.txt")
29
+ contents = contents.split(' ')
30
+ client_id = contents.first
31
+ private_key = contents.last
32
+ end
33
+
34
+ #Create Job instance
35
+ job = GroupDocs::Signature::Envelope.new({:id => source_id})
36
+
37
+ #Get document by job id
38
+ documents = job.documents!({}, {:client_id => client_id, :private_key => private_key})
39
+
40
+ #Download converted file
41
+ documents[0].file.download!(downloads_path, {:client_id => client_id, :private_key => private_key})
42
+
43
+ rescue Exception => e
44
+ err = e.message
45
+ end
46
+ end
47
+
48
+
49
+ #GET request
50
+ get '/sample21/check' do
51
+
52
+ #Check is there download directory
53
+ unless File.directory?("#{File.dirname(__FILE__)}/../public/downloads")
54
+ return 'Directory was not found.'
55
+ end
56
+
57
+ #Get file name from download directory
58
+ name = nil
59
+ Dir.entries("#{File.dirname(__FILE__)}/../public/downloads").each do |file|
60
+ name = file if file != '.' && file != '..'
61
+ end
62
+
63
+ name
64
+ end
65
+
66
+ #GET request
67
+ get '/sample21/downloads/:filename' do |filename|
68
+ #Send file with header to download it
69
+ send_file "#{File.dirname(__FILE__)}/../public/downloads/#{filename}", :filename => filename, :type => 'Application/octet-stream'
70
+ end
71
+
72
+ #POST request
73
+ post '/sample-21-how-to-create-and-upload-envelop-to-groupdocs-account' do
74
+ #Set variables
75
+ set :client_id, params[:clientId]
76
+ set :private_key, params[:privateKey]
77
+ set :email, params[:email]
78
+ set :name, params[:name]
79
+ set :lastName, params[:lastName]
80
+ set :fileId, params[:fileId]
81
+ set :callback, params[:callback]
82
+ set :base_path, params[:basePath]
83
+ set :url, params[:url]
84
+ set :source, params[:source]
85
+
86
+ #Set download path
87
+ downloads_path = "#{File.dirname(__FILE__)}/../public/downloads"
88
+
89
+ #Remove all files from download directory or create folder if it not there
90
+ if File.directory?(downloads_path)
91
+ Dir.foreach(downloads_path) { |f| fn = File.join(downloads_path, f); File.delete(fn) if f != '.' && f != '..' }
92
+ else
93
+ Dir::mkdir(downloads_path)
94
+ end
95
+
96
+ begin
97
+ #Check required variables
98
+ raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.email.empty? or settings.name.empty? or settings.lastName.empty?
99
+
100
+ #Prepare base path
101
+ if settings.base_path.empty?
102
+ base_path = 'https://api.groupdocs.com'
103
+ elsif settings.base_path.match('/v2.0')
104
+ base_path = settings.base_path.split('/v2.0')[0]
105
+ else
106
+ base_path = settings.base_path
107
+ end
108
+
109
+ #Configure your access to API server
110
+ GroupDocs.configure do |groupdocs|
111
+ groupdocs.client_id = settings.client_id
112
+ groupdocs.private_key = settings.private_key
113
+ #Optionally specify API server and version
114
+ groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
115
+ end
116
+
117
+ #Write client and private key to the file for callback job
118
+ if settings.callback
119
+ out_file = File.new("#{File.dirname(__FILE__)}/../public/user_info.txt", 'w')
120
+ #White space is required
121
+ out_file.write("#{settings.client_id} ")
122
+ out_file.write("#{settings.private_key}")
123
+ out_file.close
124
+ end
125
+
126
+ file = nil
127
+ #Get document by file GUID
128
+ case settings.source
129
+ when 'guid'
130
+ #Create instance of File
131
+ file = GroupDocs::Storage::File.new({:guid => settings.fileId}).to_document.metadata!()
132
+ file = file.last_view.document.file.to_document
133
+ when 'local'
134
+ #Construct path
135
+ file_path = "#{Dir.tmpdir}/#{params[:file][:filename]}"
136
+
137
+ #Open file
138
+ File.open(file_path, 'wb') { |f| f.write(params[:file][:tempfile].read) }
139
+ #Make a request to API using client_id and private_key
140
+ file = GroupDocs::Storage::File.upload!(file_path, {}).to_document
141
+ when 'url'
142
+ #Upload file from defined url
143
+ file = GroupDocs::Storage::File.upload_web!(settings.url).to_document
144
+ else
145
+ raise 'Wrong GUID source.'
146
+ end
147
+
148
+ name = file.name
149
+ #Create envelope using user id and entered by user name
150
+ envelope = GroupDocs::Signature::Envelope.new
151
+ envelope.name = file.name
152
+ envelope.email_subject = 'Sing this!'
153
+ envelope.create!({})
154
+
155
+ #Add uploaded document to envelope
156
+ envelope.add_document!(file, {})
157
+
158
+ #Get role list for current user
159
+ roles = GroupDocs::Signature::Role.get!({})
160
+
161
+ #Create new recipient
162
+ recipient = GroupDocs::Signature::Recipient.new
163
+ recipient.email = settings.email
164
+ recipient.first_name = settings.name
165
+ recipient.last_name = settings.lastName
166
+ recipient.role_id = roles.detect { |role| role.name == 'Signer' }.id
167
+
168
+ #Add recipient to envelope
169
+ recipient = envelope.add_recipient!(recipient)
170
+
171
+
172
+ #Get document id
173
+ document = envelope.documents!({})
174
+
175
+
176
+ #Get field and add the location to field
177
+ field = GroupDocs::Signature::Field.get!({}).detect { |f| f.type == :signature }
178
+ field.location = {:location_x => 0.15, :location_y => 0.73, :location_w => 150, :location_h => 50, :page => 1}
179
+ field.name = 'EMPLOYEE SIGNATURE'
180
+
181
+ #Add field to envelope
182
+ envelope.add_field!(field, document[0], recipient, {})
183
+
184
+
185
+ #Send envelop
186
+ envelope.send!({:callbackUrl => settings.callback})
187
+
188
+ #Prepare to sign url
189
+ iframe = "/signature2/signembed/#{envelope.id}/#{recipient.id}"
190
+ #Construct result string
191
+ url = GroupDocs::Api::Request.new(:path => iframe).prepare_and_sign_url
192
+ #Generate iframe URL
193
+ case base_path
194
+ when 'https://stage-api-groupdocs.dynabic.com'
195
+ iframe = "https://stage-api-groupdocs.dynabic.com#{url}"
196
+ when 'https://dev-api-groupdocs.dynabic.com'
197
+ iframe = "https://dev-apps.groupdocs.com#{url}"
198
+ else
199
+ iframe = "https://apps.groupdocs.com#{url}"
200
+ end
201
+
202
+ #Make iframe
203
+ iframe = "<iframe id='downloadframe' src='#{iframe}' width='800' height='1000'></iframe>"
204
+ #Create message
205
+ message = "<p>File was uploaded to GroupDocs. Here you can see your <strong>#{name}</strong> file in the GroupDocs Embedded Viewer.</p>"
206
+ rescue Exception => e
207
+ err = e.message
208
+ end
209
+
210
+ #Set variables for template
211
+ haml :sample21, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :email => settings.email, :name => settings.name, :lastName => settings.lastName, :iframe => iframe, :massage => message, :err => err, :callback => settings.callback,}
212
+ end