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,421 +1,421 @@
1
- module GroupDocs
2
- class Document::Annotation < Api::Entity
3
-
4
- require 'groupdocs/document/annotation/reply'
5
- require 'groupdocs/document/annotation/reviewer'
6
- require 'groupdocs/document/annotation/marker'
7
-
8
- include Api::Helpers::AccessMode
9
-
10
- #AnnotationType = { Text: 0, Area: 1, Point: 2, TextStrikeout: 3, Polyline: 4, TextField: 5, Watermark: 6, TextReplacement: 7, Arrow: 8, TextRedaction 9, ResourceRedaction 10, TextUnderline 11, Distance 12, All 13 }
11
-
12
- # updated in release 1.7.0
13
- TYPES = %w(Text Area Point TextStrikeout Polyline TextField Watermark TextReplacement Arrow TextRedaction ResourceRedaction ResourceRedaction TextUnderline Distance All)
14
-
15
- # @attr [GroupDocs::Document] document
16
- attr_accessor :document
17
- # @attr [Integer] id
18
- attr_accessor :id
19
- # @attr [String] guid
20
- attr_accessor :guid
21
- # @attr [String] sessionGuid
22
- attr_accessor :sessionGuid
23
- # @attr [String] documentGuid
24
- attr_accessor :documentGuid
25
- # @attr [String] creatorGuid
26
- attr_accessor :creatorGuid
27
- # @attr [String] replyGuid
28
- attr_accessor :replyGuid
29
- # @attr [Time] createdOn
30
- attr_accessor :createdOn
31
- # @attr [Symbol] type
32
- attr_accessor :type
33
- # @attr [Symbol] access
34
- attr_accessor :access
35
- # @attr [GroupDocs::Document::Rectangle] box
36
- attr_accessor :box
37
- # @attr [Array<GroupDocs::Document::Annotation::Reply>] replies
38
- attr_accessor :replies
39
- # @attr [Hash] annotationPosition
40
- attr_accessor :annotationPosition
41
- #@attr [Double] AnnotationSizeInfo
42
- attr_accessor :width
43
- attr_accessor :height
44
- #@attr [String]TextFieldInfo
45
- attr_accessor :fieldText
46
- attr_accessor :fontFamily
47
- attr_accessor :fontSize
48
- #@attr [String]Font Color
49
- attr_accessor :fontColor
50
-
51
- #added in release 1.5.8
52
- #@attr [Int] pageNumber
53
- attr_accessor :pageNumber
54
- #@attr [Long] serverTime
55
- attr_accessor :serverTime
56
- #attr [Array]
57
-
58
- #added in release 1.7.0
59
- #@attr [Int] penColor
60
- attr_accessor :penColor
61
- #@attr [Int] penWidth
62
- attr_accessor :penWidth
63
- #@attr [Int] penStyle
64
- attr_accessor :penStyle
65
- #@attr [Int] creatorName
66
- attr_accessor :creatorName
67
- #@attr [Int] creatorEmail
68
- attr_accessor :creatorEmail
69
- #@attr [Long] penColor
70
- attr_accessor :layerId
71
- #@attr [Int] penWidth
72
- attr_accessor :backgroundColor
73
-
74
- #added in release 2.0.0
75
- #@attr [String] text
76
- attr_accessor :text
77
-
78
- # Compatibility with response JSON
79
- alias_method :annotationGuid=, :guid=
80
-
81
- # Human-readable accessors
82
- alias_accessor :session_guid, :sessionGuid
83
- alias_accessor :document_guid, :documentGuid
84
- alias_accessor :creator_guid, :creatorGuid
85
- alias_accessor :reply_guid, :replyGuid
86
- alias_accessor :created_on, :createdOn
87
- alias_accessor :annotation_position, :annotationPosition
88
-
89
- #added in release 1.5.8
90
- alias_accessor :page_number, :pageNumber
91
- alias_accessor :server_time, :serverTime
92
-
93
- #added in release 1.7.0
94
- alias_accessor :pen_color, :penColor
95
- alias_accessor :pen_width, :penWidth
96
- alias_accessor :pen_style, :penStyle
97
- alias_accessor :creator_name, :creatorName
98
- alias_accessor :creator_email, :creatorEmail
99
- alias_accessor :layer_id, :layerId
100
- alias_accessor :background_color, :backgroundColor
101
-
102
- #
103
- # Creates new GroupDocs::Document::Annotation.
104
- #
105
- # @raise [ArgumentError] If document is not passed or is not an instance of GroupDocs::Document
106
- #
107
- def initialize(options = {}, &blk)
108
- super(options, &blk)
109
- document.is_a?(GroupDocs::Document) or raise ArgumentError,
110
- "You have to pass GroupDocs::Document object: #{document.inspect}."
111
- end
112
-
113
- #
114
- # Updates type with machine-readable format.
115
- #
116
- # @param [Symbol] type
117
- # @raise [ArgumentError] if type is unknown
118
- #
119
- def type=(type)
120
- if type.is_a?(Symbol)
121
- type = type.to_s.camelize
122
- TYPES.include?(type) or raise ArgumentError, "Unknown type: #{type.inspect}"
123
- end
124
-
125
- @type = type
126
- end
127
-
128
- #
129
- # Returns type in human-readable format.
130
- #
131
- # @return [Symbol]
132
- #
133
- def type
134
- @type.underscore.to_sym
135
- end
136
-
137
- #
138
- # Converts access mode to machine-readable format.
139
- #
140
- # @param [Symbol] mode
141
- #
142
- def access=(mode)
143
- @access = (mode.is_a?(Symbol) ? parse_access_mode(mode) : mode)
144
- end
145
-
146
- #
147
- # Converts access mode to human-readable format.
148
- #
149
- # @return [Symbol]
150
- #
151
- def access
152
- parse_access_mode(@access)
153
- end
154
-
155
- #
156
- # Converts timestamp which is return by API server to Time object.
157
- #
158
- # @return [Time]
159
- #
160
- def created_on
161
- Time.at(@createdOn / 1000)
162
- end
163
-
164
- #
165
- # Coverts passed hash to GroupDocs::Document::Rectangle object.
166
- #
167
- # @param [Hash] options
168
- # @return [GroupDocs::Document::Rectangle]
169
- #
170
- def box=(options)
171
- @box = GroupDocs::Document::Rectangle.new(options)
172
- end
173
-
174
- #
175
- # Converts each reply to GroupDocs::Document::Annotation::Reply object.
176
- #
177
- # @param [Array<GroupDocs::Document::Annotation::Reply, Hash>] replies
178
- #
179
- def replies=(replies)
180
- if replies
181
- @replies = replies.map do |reply|
182
- if reply.is_a?(GroupDocs::Document::Annotation::Reply)
183
- reply
184
- else
185
- reply.merge!(:annotation => self)
186
- Document::Annotation::Reply.new(reply)
187
- end
188
- end
189
- end
190
- end
191
-
192
- #
193
- # Adds reply to annotation.
194
- #
195
- # @param [GroupDocs::Document::Annotation::Reply] reply
196
- # @raise [ArgumentError] if reply is not GroupDocs::Document::Annotation::Reply object
197
- #
198
- def add_reply(reply)
199
- reply.is_a?(GroupDocs::Document::Annotation::Reply) or raise ArgumentError,
200
- "Reply should be GroupDocs::Document::Annotation::Reply object, received: #{reply.inspect}"
201
-
202
- @replies ||= Array.new
203
- @replies << reply
204
- end
205
-
206
- #
207
- # Creates new annotation.
208
- #
209
- # @example
210
- # document = GroupDocs::Storage::Folder.list!.first.to_document
211
- # annotation = GroupDocs::Document::Annotation.new(document: document)
212
- # annotation.create!
213
- #
214
- # @param [Hash] info Annotation info
215
- # @option info [Array] :box
216
- # @option info [Array] :annotationPosition
217
- # @param [Hash] access Access credentials
218
- # @option access [String] :client_id
219
- # @option access [String] :private_key
220
- #
221
- def create!(info, access = {})
222
- json = Api::Request.new do |request|
223
- request[:access] = access
224
- request[:method] = :POST
225
- request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/annotations"
226
- request[:request_body] = info
227
- end.execute!
228
-
229
- json.each do |field, value|
230
- send(:"#{field}=", value) if respond_to?(:"#{field}=")
231
- end
232
- end
233
-
234
-
235
- #
236
- # Removes annotation.
237
- #
238
- # @param [Hash] access Access credentials
239
- # @option access [String] :client_id
240
- # @option access [String] :private_key
241
- #
242
- def remove!(access = {})
243
- Api::Request.new do |request|
244
- request[:access] = access
245
- request[:method] = :DELETE
246
- request[:path] = "/ant/{{client_id}}/annotations/#{guid}"
247
- end.execute!
248
- end
249
-
250
- #
251
- # added in release 1.6.0
252
- #
253
- # @example
254
- # document = GroupDocs::Storage::Folder.list!.first.to_document
255
- # annotation = GroupDocs::Document::Annotation.new(document: document)
256
- # annotation.remove_annotations!
257
- #
258
- # Removes all annotations from document.
259
- #
260
- # @param [Hash] access Access credentials
261
- # @option access [String] :client_id
262
- # @option access [String] :private_key
263
- #
264
- def remove_annotations!(access = {})
265
- json = Api::Request.new do |request|
266
- request[:access] = access
267
- request[:method] = :DELETE
268
- request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/annotations"
269
- end.execute!
270
- json[:delete_annotation_results]
271
- end
272
-
273
- #
274
- # Return an array of replies..
275
- #
276
- # @param [Hash] options
277
- # @option options [Time] :after
278
- # @param [Hash] access Access credentials
279
- # @option access [String] :client_id
280
- # @option access [String] :private_key
281
- # @return [Array<GroupDocs::Document::Annotation::Reply>]
282
- #
283
- # @raise [ArgumentError] If :after option is passed but it's not an instance of Time
284
- #
285
- def replies!(options = {}, access = {})
286
- Document::Annotation::Reply.get!(self, options, access)
287
- end
288
-
289
- #
290
- # Moves annotation to given coordinates.
291
- #
292
- # @param [Integer, Float] x
293
- # @param [Integer, Float] y
294
- # @param [Hash] access Access credentials
295
- # @option access [String] :client_id
296
- # @option access [String] :private_key
297
- #
298
- def move!(x, y, access = {})
299
- Api::Request.new do |request|
300
- request[:access] = access
301
- request[:method] = :PUT
302
- request[:path] = "/ant/{{client_id}}/annotations/#{guid}/position"
303
- request[:request_body] = { :x => x, :y => y }
304
- end.execute!
305
-
306
- self.annotation_position = { :x => x, :y => y }
307
- end
308
-
309
- #
310
- # Changed in release 1.5.8
311
- #
312
- # Moves annotation marker to given coordinates.
313
- #
314
- # @param [GroupDocs::Annotation::Marker] marker Marker position
315
- # @param [Hash] access Access credentials
316
- # @option access [String] :client_id
317
- # @option access [String] :private_key
318
- #
319
- def move_marker!(marker, access = {})
320
- marker.is_a?(GroupDocs::Document::Annotation::MarkerPosition) or raise ArgumentError,
321
- "Marker should be GroupDocs::Document::Annotation::MarkerPosition object, received: #{marker.inspect}"
322
- Api::Request.new do |request|
323
- request[:access] = access
324
- request[:method] = :PUT
325
- request[:path] = "/ant/{{client_id}}/annotations/#{guid}/markerPosition"
326
- request[:request_body] = marker
327
- end.execute!
328
-
329
- if box && page_number
330
- box.x = marker.position[:x]
331
- box.y = marker.position[:y]
332
- page_number = marker.page
333
- else
334
- self.box = { :x => marker.position[:x], :y => marker.position[:y] }
335
- self.page_number = marker.page
336
- end
337
- end
338
-
339
- #
340
- # Sets access mode.
341
- #
342
- # @param [Symbol] mode
343
- # @param [Hash] access Access credentials
344
- # @option access [String] :client_id
345
- # @option access [String] :private_key
346
- #
347
- def set_access!(mode, access = {})
348
- Api::Request.new do |request|
349
- request[:access] = access
350
- request[:method] = :PUT
351
- request[:path] = "/ant/{{client_id}}/annotations/#{guid}/annotationAccess"
352
- request[:request_body] = %w(public private).index(mode.to_s)
353
- end.execute!
354
-
355
- self.access = mode
356
- end
357
-
358
- #
359
- # Resize annotation.
360
- #
361
- # @param [Integer, Float] x
362
- # @param [Integer, Float] y
363
- # @param [Hash] access Access credentials
364
- # @option access [String] :client_id
365
- # @option access [String] :private_key
366
- #
367
- def resize!(x, y, access = {})
368
- Api::Request.new do |request|
369
- request[:access] = access
370
- request[:method] = :PUT
371
- request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
372
- request[:request_body] = { :width => x, :height => y }
373
- end.execute!
374
- self.box = { :width => x, :height => y }
375
-
376
- end
377
-
378
- #
379
- # Save Text Of Text Field.
380
- #
381
- # @param [String] fieldText
382
- # @param [String] fontFamily
383
- # @param [Integer, Float] fontSize
384
- # @param [Hash] access Access credentials
385
- # @option access [String] :client_id
386
- # @option access [String] :private_key
387
- #
388
- def text_info!(fieldText, fontFamily, fontSize, access = {})
389
- Api::Request.new do |request|
390
- request[:access] = access
391
- request[:method] = :PUT
392
- request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
393
- request[:request_body] = { :fieldText => fieldText, :fontFamily => fontFamily, :fontSize => fontSize }
394
- end.execute!
395
-
396
- self.fieldText = fieldText
397
- self.fontFamily = fontFamily
398
- self.fontSize = fontSize
399
- end
400
-
401
- #
402
- # Save Text Of Text Color.
403
- #
404
- # @param [Integer, Float] fontColor
405
- # @param [Hash] access Access credentials
406
- # @option access [String] :client_id
407
- # @option access [String] :private_key
408
- #
409
- def text_color!(font_color, access = {})
410
- Api::Request.new do |request|
411
- request[:access] = access
412
- request[:method] = :PUT
413
- request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
414
- request[:request_body] = { :fontColor => font_color }
415
- end.execute!
416
-
417
- self.fontColor = font_color
418
- end
419
-
420
- end # Document::Annotation
421
- end # GroupDocs
1
+ module GroupDocs
2
+ class Document::Annotation < Api::Entity
3
+
4
+ require 'groupdocs/document/annotation/reply'
5
+ require 'groupdocs/document/annotation/reviewer'
6
+ require 'groupdocs/document/annotation/marker'
7
+
8
+ include Api::Helpers::AccessMode
9
+
10
+ #AnnotationType = { Text: 0, Area: 1, Point: 2, TextStrikeout: 3, Polyline: 4, TextField: 5, Watermark: 6, TextReplacement: 7, Arrow: 8, TextRedaction 9, ResourceRedaction 10, TextUnderline 11, Distance 12, All 13 }
11
+
12
+ # updated in release 1.7.0
13
+ TYPES = %w(Text Area Point TextStrikeout Polyline TextField Watermark TextReplacement Arrow TextRedaction ResourceRedaction ResourceRedaction TextUnderline Distance All)
14
+
15
+ # @attr [GroupDocs::Document] document
16
+ attr_accessor :document
17
+ # @attr [Integer] id
18
+ attr_accessor :id
19
+ # @attr [String] guid
20
+ attr_accessor :guid
21
+ # @attr [String] sessionGuid
22
+ attr_accessor :sessionGuid
23
+ # @attr [String] documentGuid
24
+ attr_accessor :documentGuid
25
+ # @attr [String] creatorGuid
26
+ attr_accessor :creatorGuid
27
+ # @attr [String] replyGuid
28
+ attr_accessor :replyGuid
29
+ # @attr [Time] createdOn
30
+ attr_accessor :createdOn
31
+ # @attr [Symbol] type
32
+ attr_accessor :type
33
+ # @attr [Symbol] access
34
+ attr_accessor :access
35
+ # @attr [GroupDocs::Document::Rectangle] box
36
+ attr_accessor :box
37
+ # @attr [Array<GroupDocs::Document::Annotation::Reply>] replies
38
+ attr_accessor :replies
39
+ # @attr [Hash] annotationPosition
40
+ attr_accessor :annotationPosition
41
+ #@attr [Double] AnnotationSizeInfo
42
+ attr_accessor :width
43
+ attr_accessor :height
44
+ #@attr [String]TextFieldInfo
45
+ attr_accessor :fieldText
46
+ attr_accessor :fontFamily
47
+ attr_accessor :fontSize
48
+ #@attr [String]Font Color
49
+ attr_accessor :fontColor
50
+
51
+ #added in release 1.5.8
52
+ #@attr [Int] pageNumber
53
+ attr_accessor :pageNumber
54
+ #@attr [Long] serverTime
55
+ attr_accessor :serverTime
56
+ #attr [Array]
57
+
58
+ #added in release 1.7.0
59
+ #@attr [Int] penColor
60
+ attr_accessor :penColor
61
+ #@attr [Int] penWidth
62
+ attr_accessor :penWidth
63
+ #@attr [Int] penStyle
64
+ attr_accessor :penStyle
65
+ #@attr [Int] creatorName
66
+ attr_accessor :creatorName
67
+ #@attr [Int] creatorEmail
68
+ attr_accessor :creatorEmail
69
+ #@attr [Long] penColor
70
+ attr_accessor :layerId
71
+ #@attr [Int] penWidth
72
+ attr_accessor :backgroundColor
73
+
74
+ #added in release 2.0.0
75
+ #@attr [String] text
76
+ attr_accessor :text
77
+
78
+ # Compatibility with response JSON
79
+ alias_method :annotationGuid=, :guid=
80
+
81
+ # Human-readable accessors
82
+ alias_accessor :session_guid, :sessionGuid
83
+ alias_accessor :document_guid, :documentGuid
84
+ alias_accessor :creator_guid, :creatorGuid
85
+ alias_accessor :reply_guid, :replyGuid
86
+ alias_accessor :created_on, :createdOn
87
+ alias_accessor :annotation_position, :annotationPosition
88
+
89
+ #added in release 1.5.8
90
+ alias_accessor :page_number, :pageNumber
91
+ alias_accessor :server_time, :serverTime
92
+
93
+ #added in release 1.7.0
94
+ alias_accessor :pen_color, :penColor
95
+ alias_accessor :pen_width, :penWidth
96
+ alias_accessor :pen_style, :penStyle
97
+ alias_accessor :creator_name, :creatorName
98
+ alias_accessor :creator_email, :creatorEmail
99
+ alias_accessor :layer_id, :layerId
100
+ alias_accessor :background_color, :backgroundColor
101
+
102
+ #
103
+ # Creates new GroupDocs::Document::Annotation.
104
+ #
105
+ # @raise [ArgumentError] If document is not passed or is not an instance of GroupDocs::Document
106
+ #
107
+ def initialize(options = {}, &blk)
108
+ super(options, &blk)
109
+ document.is_a?(GroupDocs::Document) or raise ArgumentError,
110
+ "You have to pass GroupDocs::Document object: #{document.inspect}."
111
+ end
112
+
113
+ #
114
+ # Updates type with machine-readable format.
115
+ #
116
+ # @param [Symbol] type
117
+ # @raise [ArgumentError] if type is unknown
118
+ #
119
+ def type=(type)
120
+ if type.is_a?(Symbol)
121
+ type = type.to_s.camelize
122
+ TYPES.include?(type) or raise ArgumentError, "Unknown type: #{type.inspect}"
123
+ end
124
+
125
+ @type = type
126
+ end
127
+
128
+ #
129
+ # Returns type in human-readable format.
130
+ #
131
+ # @return [Symbol]
132
+ #
133
+ def type
134
+ @type.underscore.to_sym
135
+ end
136
+
137
+ #
138
+ # Converts access mode to machine-readable format.
139
+ #
140
+ # @param [Symbol] mode
141
+ #
142
+ def access=(mode)
143
+ @access = (mode.is_a?(Symbol) ? parse_access_mode(mode) : mode)
144
+ end
145
+
146
+ #
147
+ # Converts access mode to human-readable format.
148
+ #
149
+ # @return [Symbol]
150
+ #
151
+ def access
152
+ parse_access_mode(@access)
153
+ end
154
+
155
+ #
156
+ # Converts timestamp which is return by API server to Time object.
157
+ #
158
+ # @return [Time]
159
+ #
160
+ def created_on
161
+ Time.at(@createdOn / 1000)
162
+ end
163
+
164
+ #
165
+ # Coverts passed hash to GroupDocs::Document::Rectangle object.
166
+ #
167
+ # @param [Hash] options
168
+ # @return [GroupDocs::Document::Rectangle]
169
+ #
170
+ def box=(options)
171
+ @box = GroupDocs::Document::Rectangle.new(options)
172
+ end
173
+
174
+ #
175
+ # Converts each reply to GroupDocs::Document::Annotation::Reply object.
176
+ #
177
+ # @param [Array<GroupDocs::Document::Annotation::Reply, Hash>] replies
178
+ #
179
+ def replies=(replies)
180
+ if replies
181
+ @replies = replies.map do |reply|
182
+ if reply.is_a?(GroupDocs::Document::Annotation::Reply)
183
+ reply
184
+ else
185
+ reply.merge!(:annotation => self)
186
+ Document::Annotation::Reply.new(reply)
187
+ end
188
+ end
189
+ end
190
+ end
191
+
192
+ #
193
+ # Adds reply to annotation.
194
+ #
195
+ # @param [GroupDocs::Document::Annotation::Reply] reply
196
+ # @raise [ArgumentError] if reply is not GroupDocs::Document::Annotation::Reply object
197
+ #
198
+ def add_reply(reply)
199
+ reply.is_a?(GroupDocs::Document::Annotation::Reply) or raise ArgumentError,
200
+ "Reply should be GroupDocs::Document::Annotation::Reply object, received: #{reply.inspect}"
201
+
202
+ @replies ||= Array.new
203
+ @replies << reply
204
+ end
205
+
206
+ #
207
+ # Creates new annotation.
208
+ #
209
+ # @example
210
+ # document = GroupDocs::Storage::Folder.list!.first.to_document
211
+ # annotation = GroupDocs::Document::Annotation.new(document: document)
212
+ # annotation.create!
213
+ #
214
+ # @param [Hash] info Annotation info
215
+ # @option info [Array] :box
216
+ # @option info [Array] :annotationPosition
217
+ # @param [Hash] access Access credentials
218
+ # @option access [String] :client_id
219
+ # @option access [String] :private_key
220
+ #
221
+ def create!(info, access = {})
222
+ json = Api::Request.new do |request|
223
+ request[:access] = access
224
+ request[:method] = :POST
225
+ request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/annotations"
226
+ request[:request_body] = info
227
+ end.execute!
228
+
229
+ json.each do |field, value|
230
+ send(:"#{field}=", value) if respond_to?(:"#{field}=")
231
+ end
232
+ end
233
+
234
+
235
+ #
236
+ # Removes annotation.
237
+ #
238
+ # @param [Hash] access Access credentials
239
+ # @option access [String] :client_id
240
+ # @option access [String] :private_key
241
+ #
242
+ def remove!(access = {})
243
+ Api::Request.new do |request|
244
+ request[:access] = access
245
+ request[:method] = :DELETE
246
+ request[:path] = "/ant/{{client_id}}/annotations/#{guid}"
247
+ end.execute!
248
+ end
249
+
250
+ #
251
+ # added in release 1.6.0
252
+ #
253
+ # @example
254
+ # document = GroupDocs::Storage::Folder.list!.first.to_document
255
+ # annotation = GroupDocs::Document::Annotation.new(document: document)
256
+ # annotation.remove_annotations!
257
+ #
258
+ # Removes all annotations from document.
259
+ #
260
+ # @param [Hash] access Access credentials
261
+ # @option access [String] :client_id
262
+ # @option access [String] :private_key
263
+ #
264
+ def remove_annotations!(access = {})
265
+ json = Api::Request.new do |request|
266
+ request[:access] = access
267
+ request[:method] = :DELETE
268
+ request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/annotations"
269
+ end.execute!
270
+ json[:delete_annotation_results]
271
+ end
272
+
273
+ #
274
+ # Return an array of replies..
275
+ #
276
+ # @param [Hash] options
277
+ # @option options [Time] :after
278
+ # @param [Hash] access Access credentials
279
+ # @option access [String] :client_id
280
+ # @option access [String] :private_key
281
+ # @return [Array<GroupDocs::Document::Annotation::Reply>]
282
+ #
283
+ # @raise [ArgumentError] If :after option is passed but it's not an instance of Time
284
+ #
285
+ def replies!(options = {}, access = {})
286
+ Document::Annotation::Reply.get!(self, options, access)
287
+ end
288
+
289
+ #
290
+ # Moves annotation to given coordinates.
291
+ #
292
+ # @param [Integer, Float] x
293
+ # @param [Integer, Float] y
294
+ # @param [Hash] access Access credentials
295
+ # @option access [String] :client_id
296
+ # @option access [String] :private_key
297
+ #
298
+ def move!(x, y, access = {})
299
+ Api::Request.new do |request|
300
+ request[:access] = access
301
+ request[:method] = :PUT
302
+ request[:path] = "/ant/{{client_id}}/annotations/#{guid}/position"
303
+ request[:request_body] = { :x => x, :y => y }
304
+ end.execute!
305
+
306
+ self.annotation_position = { :x => x, :y => y }
307
+ end
308
+
309
+ #
310
+ # Changed in release 1.5.8
311
+ #
312
+ # Moves annotation marker to given coordinates.
313
+ #
314
+ # @param [GroupDocs::Annotation::Marker] marker Marker position
315
+ # @param [Hash] access Access credentials
316
+ # @option access [String] :client_id
317
+ # @option access [String] :private_key
318
+ #
319
+ def move_marker!(marker, access = {})
320
+ marker.is_a?(GroupDocs::Document::Annotation::MarkerPosition) or raise ArgumentError,
321
+ "Marker should be GroupDocs::Document::Annotation::MarkerPosition object, received: #{marker.inspect}"
322
+ Api::Request.new do |request|
323
+ request[:access] = access
324
+ request[:method] = :PUT
325
+ request[:path] = "/ant/{{client_id}}/annotations/#{guid}/markerPosition"
326
+ request[:request_body] = marker
327
+ end.execute!
328
+
329
+ if box && page_number
330
+ box.x = marker.position[:x]
331
+ box.y = marker.position[:y]
332
+ page_number = marker.page
333
+ else
334
+ self.box = { :x => marker.position[:x], :y => marker.position[:y] }
335
+ self.page_number = marker.page
336
+ end
337
+ end
338
+
339
+ #
340
+ # Sets access mode.
341
+ #
342
+ # @param [Symbol] mode
343
+ # @param [Hash] access Access credentials
344
+ # @option access [String] :client_id
345
+ # @option access [String] :private_key
346
+ #
347
+ def set_access!(mode, access = {})
348
+ Api::Request.new do |request|
349
+ request[:access] = access
350
+ request[:method] = :PUT
351
+ request[:path] = "/ant/{{client_id}}/annotations/#{guid}/annotationAccess"
352
+ request[:request_body] = %w(public private).index(mode.to_s)
353
+ end.execute!
354
+
355
+ self.access = mode
356
+ end
357
+
358
+ #
359
+ # Resize annotation.
360
+ #
361
+ # @param [Integer, Float] x
362
+ # @param [Integer, Float] y
363
+ # @param [Hash] access Access credentials
364
+ # @option access [String] :client_id
365
+ # @option access [String] :private_key
366
+ #
367
+ def resize!(x, y, access = {})
368
+ Api::Request.new do |request|
369
+ request[:access] = access
370
+ request[:method] = :PUT
371
+ request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
372
+ request[:request_body] = { :width => x, :height => y }
373
+ end.execute!
374
+ self.box = { :width => x, :height => y }
375
+
376
+ end
377
+
378
+ #
379
+ # Save Text Of Text Field.
380
+ #
381
+ # @param [String] fieldText
382
+ # @param [String] fontFamily
383
+ # @param [Integer, Float] fontSize
384
+ # @param [Hash] access Access credentials
385
+ # @option access [String] :client_id
386
+ # @option access [String] :private_key
387
+ #
388
+ def text_info!(fieldText, fontFamily, fontSize, access = {})
389
+ Api::Request.new do |request|
390
+ request[:access] = access
391
+ request[:method] = :PUT
392
+ request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
393
+ request[:request_body] = { :fieldText => fieldText, :fontFamily => fontFamily, :fontSize => fontSize }
394
+ end.execute!
395
+
396
+ self.fieldText = fieldText
397
+ self.fontFamily = fontFamily
398
+ self.fontSize = fontSize
399
+ end
400
+
401
+ #
402
+ # Save Text Of Text Color.
403
+ #
404
+ # @param [Integer, Float] fontColor
405
+ # @param [Hash] access Access credentials
406
+ # @option access [String] :client_id
407
+ # @option access [String] :private_key
408
+ #
409
+ def text_color!(font_color, access = {})
410
+ Api::Request.new do |request|
411
+ request[:access] = access
412
+ request[:method] = :PUT
413
+ request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
414
+ request[:request_body] = { :fontColor => font_color }
415
+ end.execute!
416
+
417
+ self.fontColor = font_color
418
+ end
419
+
420
+ end # Document::Annotation
421
+ end # GroupDocs