ecoportal-api-graphql 1.3.17 → 2.0.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 (466) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +384 -15
  3. data/LICENSE +21 -21
  4. data/README.md +24 -24
  5. data/lib/ecoportal/api/common/graphql/CLAUDE.md +36 -0
  6. data/lib/ecoportal/api/common/graphql/auth_service.rb +115 -115
  7. data/lib/ecoportal/api/common/graphql/class_helpers.rb +46 -46
  8. data/lib/ecoportal/api/common/graphql/client.rb +69 -69
  9. data/lib/ecoportal/api/common/graphql/hash_helpers.rb +105 -105
  10. data/lib/ecoportal/api/common/graphql/model/CLAUDE.md +28 -0
  11. data/lib/ecoportal/api/common/graphql/model/as_input.rb +54 -54
  12. data/lib/ecoportal/api/common/graphql/model/diffable/classic_diff_service.rb +49 -49
  13. data/lib/ecoportal/api/common/graphql/model/diffable/diff_service.rb +188 -188
  14. data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff.rb +55 -55
  15. data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff_nesting.rb +295 -295
  16. data/lib/ecoportal/api/common/graphql/model/diffable/leaf_diff_service.rb +97 -0
  17. data/lib/ecoportal/api/common/graphql/model/diffable.rb +1 -0
  18. data/lib/ecoportal/api/common/graphql/model.rb +17 -17
  19. data/lib/ecoportal/api/common/graphql/patches.rb +1 -1
  20. data/lib/ecoportal/api/common/graphql/query_integration.rb +45 -45
  21. data/lib/ecoportal/api/common/graphql.rb +16 -16
  22. data/lib/ecoportal/api/common.graphql.rb +8 -8
  23. data/lib/ecoportal/api/graphql/CLAUDE.md +37 -0
  24. data/lib/ecoportal/api/graphql/base/CLAUDE.md +50 -0
  25. data/lib/ecoportal/api/graphql/base/action.rb +1 -1
  26. data/lib/ecoportal/api/graphql/base/action_category.rb +15 -15
  27. data/lib/ecoportal/api/graphql/base/action_event.rb +23 -0
  28. data/lib/ecoportal/api/graphql/base/action_event_page.rb +16 -0
  29. data/lib/ecoportal/api/graphql/base/activity.rb +38 -0
  30. data/lib/ecoportal/api/graphql/base/activity_log.rb +38 -0
  31. data/lib/ecoportal/api/graphql/base/ai_summary_version.rb +13 -8
  32. data/lib/ecoportal/api/graphql/base/auth_log.rb +24 -0
  33. data/lib/ecoportal/api/graphql/base/authorization_result.rb +20 -0
  34. data/lib/ecoportal/api/graphql/base/contractor_entity/member_changes.rb +17 -5
  35. data/lib/ecoportal/api/graphql/base/contractor_entity.rb +24 -24
  36. data/lib/ecoportal/api/graphql/base/date_time.rb +12 -12
  37. data/lib/ecoportal/api/graphql/base/delta_result.rb +16 -16
  38. data/lib/ecoportal/api/graphql/base/field.rb +12 -12
  39. data/lib/ecoportal/api/graphql/base/file_attachment.rb +15 -15
  40. data/lib/ecoportal/api/graphql/base/file_container.rb +12 -4
  41. data/lib/ecoportal/api/graphql/base/location_classification_type.rb +2 -0
  42. data/lib/ecoportal/api/graphql/base/location_node.rb +14 -14
  43. data/lib/ecoportal/api/graphql/base/location_structure/draft/structure.rb +37 -37
  44. data/lib/ecoportal/api/graphql/base/location_structure/draft.rb +93 -93
  45. data/lib/ecoportal/api/graphql/base/location_structure.rb +3 -0
  46. data/lib/ecoportal/api/graphql/base/minimal_dashboard.rb +25 -0
  47. data/lib/ecoportal/api/graphql/base/organization.rb +2 -0
  48. data/lib/ecoportal/api/graphql/base/page/data_field/actions_list.rb +9 -9
  49. data/lib/ecoportal/api/graphql/base/page/data_field/ai_summary.rb +18 -18
  50. data/lib/ecoportal/api/graphql/base/page/data_field/checklist.rb +29 -29
  51. data/lib/ecoportal/api/graphql/base/page/data_field/collection.rb +1 -1
  52. data/lib/ecoportal/api/graphql/base/page/data_field/contractor_entities.rb +25 -2
  53. data/lib/ecoportal/api/graphql/base/page/data_field/cross_reference.rb +1 -1
  54. data/lib/ecoportal/api/graphql/base/page/data_field/date_field.rb +23 -23
  55. data/lib/ecoportal/api/graphql/base/page/data_field/file_field.rb +46 -7
  56. data/lib/ecoportal/api/graphql/base/page/data_field/geo.rb +24 -24
  57. data/lib/ecoportal/api/graphql/base/page/data_field/image_gallery.rb +6 -3
  58. data/lib/ecoportal/api/graphql/base/page/data_field/law.rb +8 -8
  59. data/lib/ecoportal/api/graphql/base/page/data_field/mailbox.rb +9 -9
  60. data/lib/ecoportal/api/graphql/base/page/data_field/people.rb +50 -12
  61. data/lib/ecoportal/api/graphql/base/page/data_field/plain_text.rb +17 -17
  62. data/lib/ecoportal/api/graphql/base/page/data_field/rich_text.rb +26 -26
  63. data/lib/ecoportal/api/graphql/base/page/data_field/signature.rb +9 -9
  64. data/lib/ecoportal/api/graphql/base/page/data_field/smart_fill.rb +17 -17
  65. data/lib/ecoportal/api/graphql/base/page/data_field/table.rb +9 -9
  66. data/lib/ecoportal/api/graphql/base/page/data_field/tag_field.rb +21 -21
  67. data/lib/ecoportal/api/graphql/base/page/data_field.rb +12 -18
  68. data/lib/ecoportal/api/graphql/base/page/phased.rb +15 -15
  69. data/lib/ecoportal/api/graphql/base/page/section.rb +48 -48
  70. data/lib/ecoportal/api/graphql/base/page_info.rb +12 -12
  71. data/lib/ecoportal/api/graphql/base/pages_workflow/operation_interface.rb +39 -39
  72. data/lib/ecoportal/api/graphql/base/pages_workflow/operations/assign_to.rb +27 -27
  73. data/lib/ecoportal/api/graphql/base/pages_workflow/operations/send_notification.rb +30 -30
  74. data/lib/ecoportal/api/graphql/base/pages_workflow/recipient_config.rb +34 -34
  75. data/lib/ecoportal/api/graphql/base/pages_workflow.rb +35 -35
  76. data/lib/ecoportal/api/graphql/base/permissions.rb +15 -0
  77. data/lib/ecoportal/api/graphql/base/person_member.rb +22 -22
  78. data/lib/ecoportal/api/graphql/base/person_member_changelog.rb +23 -0
  79. data/lib/ecoportal/api/graphql/base/preset_view.rb +135 -0
  80. data/lib/ecoportal/api/graphql/base/preview_page.rb +23 -23
  81. data/lib/ecoportal/api/graphql/base/register.rb +6 -1
  82. data/lib/ecoportal/api/graphql/base/resource.rb +13 -13
  83. data/lib/ecoportal/api/graphql/base.rb +9 -0
  84. data/lib/ecoportal/api/graphql/builder/CLAUDE.md +65 -0
  85. data/lib/ecoportal/api/graphql/builder/action.rb +41 -41
  86. data/lib/ecoportal/api/graphql/builder/contractor_entity.rb +10 -0
  87. data/lib/ecoportal/api/graphql/builder/location_structure/draft.rb +64 -64
  88. data/lib/ecoportal/api/graphql/builder/location_structure.rb +40 -40
  89. data/lib/ecoportal/api/graphql/builder/page.rb +0 -16
  90. data/lib/ecoportal/api/graphql/builder/register/preset_view.rb +84 -84
  91. data/lib/ecoportal/api/graphql/builder/register.rb +49 -49
  92. data/lib/ecoportal/api/graphql/builder/template.rb +18 -0
  93. data/lib/ecoportal/api/graphql/compat/filter_translator.rb +1 -1
  94. data/lib/ecoportal/api/graphql/compat/page_reference.rb +23 -23
  95. data/lib/ecoportal/api/graphql/compat/pages.rb +7 -2
  96. data/lib/ecoportal/api/graphql/compat/registers.rb +84 -84
  97. data/lib/ecoportal/api/graphql/compat/response.rb +14 -0
  98. data/lib/ecoportal/api/graphql/compat/search_results.rb +33 -33
  99. data/lib/ecoportal/api/graphql/compat.rb +17 -17
  100. data/lib/ecoportal/api/graphql/concerns/data_field_access.rb +71 -71
  101. data/lib/ecoportal/api/graphql/concerns/fragment_definitions.rb +68 -68
  102. data/lib/ecoportal/api/graphql/concerns/snake_camel_access.rb +60 -60
  103. data/lib/ecoportal/api/graphql/concerns/threadable.rb +58 -0
  104. data/lib/ecoportal/api/graphql/concerns.rb +1 -0
  105. data/lib/ecoportal/api/graphql/connection/action.rb +1 -1
  106. data/lib/ecoportal/api/graphql/connection/action_category.rb +1 -1
  107. data/lib/ecoportal/api/graphql/connection/activity.rb +11 -0
  108. data/lib/ecoportal/api/graphql/connection/activity_log.rb +11 -0
  109. data/lib/ecoportal/api/graphql/connection/auth_log.rb +11 -0
  110. data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +1 -1
  111. data/lib/ecoportal/api/graphql/connection/minimal_dashboard.rb +11 -0
  112. data/lib/ecoportal/api/graphql/connection/page.rb +1 -1
  113. data/lib/ecoportal/api/graphql/connection/pages_workflow_command.rb +1 -1
  114. data/lib/ecoportal/api/graphql/connection/person_member.rb +1 -1
  115. data/lib/ecoportal/api/graphql/connection/person_member_changelog.rb +11 -0
  116. data/lib/ecoportal/api/graphql/connection/preset_view.rb +11 -11
  117. data/lib/ecoportal/api/graphql/connection/preview_page.rb +1 -1
  118. data/lib/ecoportal/api/graphql/connection.rb +5 -0
  119. data/lib/ecoportal/api/graphql/diff/pairing/signals.rb +21 -1
  120. data/lib/ecoportal/api/graphql/error/locations_error/fetch_nested.rb +51 -51
  121. data/lib/ecoportal/api/graphql/error/locations_error.rb +28 -28
  122. data/lib/ecoportal/api/graphql/error/locations_validation_error.rb +20 -20
  123. data/lib/ecoportal/api/graphql/error/validation_errors.rb +28 -28
  124. data/lib/ecoportal/api/graphql/error.rb +12 -12
  125. data/lib/ecoportal/api/graphql/file_upload/client.rb +198 -139
  126. data/lib/ecoportal/api/graphql/file_upload.rb +10 -10
  127. data/lib/ecoportal/api/graphql/fragment/action.rb +65 -65
  128. data/lib/ecoportal/api/graphql/fragment/action_category.rb +17 -17
  129. data/lib/ecoportal/api/graphql/fragment/activity.rb +84 -0
  130. data/lib/ecoportal/api/graphql/fragment/activity_log.rb +75 -0
  131. data/lib/ecoportal/api/graphql/fragment/auth_log.rb +29 -0
  132. data/lib/ecoportal/api/graphql/fragment/authorization_result.rb +14 -0
  133. data/lib/ecoportal/api/graphql/fragment/contractor_entity.rb +20 -20
  134. data/lib/ecoportal/api/graphql/fragment/location_node.rb +1 -0
  135. data/lib/ecoportal/api/graphql/fragment/locations_error.rb +19 -19
  136. data/lib/ecoportal/api/graphql/fragment/minimal_dashboard.rb +31 -0
  137. data/lib/ecoportal/api/graphql/fragment/pages/common_page_union.rb +21 -0
  138. data/lib/ecoportal/api/graphql/fragment/pages.rb +15 -15
  139. data/lib/ecoportal/api/graphql/fragment/pagination.rb +17 -17
  140. data/lib/ecoportal/api/graphql/fragment/permissions.rb +98 -0
  141. data/lib/ecoportal/api/graphql/fragment/person_member_changelog.rb +33 -0
  142. data/lib/ecoportal/api/graphql/fragment.rb +7 -0
  143. data/lib/ecoportal/api/graphql/helpers/locations_tree.rb +41 -41
  144. data/lib/ecoportal/api/graphql/helpers.rb +10 -10
  145. data/lib/ecoportal/api/graphql/input/action/archive.rb +14 -14
  146. data/lib/ecoportal/api/graphql/input/action/create.rb +13 -13
  147. data/lib/ecoportal/api/graphql/input/action/update.rb +12 -0
  148. data/lib/ecoportal/api/graphql/input/action.rb +14 -14
  149. data/lib/ecoportal/api/graphql/input/contractor_entity/create.rb +14 -14
  150. data/lib/ecoportal/api/graphql/input/contractor_entity/destroy.rb +13 -13
  151. data/lib/ecoportal/api/graphql/input/contractor_entity/manager_settings.rb +20 -0
  152. data/lib/ecoportal/api/graphql/input/contractor_entity/update.rb +6 -27
  153. data/lib/ecoportal/api/graphql/input/contractor_entity.rb +1 -0
  154. data/lib/ecoportal/api/graphql/input/date_range.rb +16 -0
  155. data/lib/ecoportal/api/graphql/input/delta_input.rb +16 -16
  156. data/lib/ecoportal/api/graphql/input/id_diff.rb +11 -11
  157. data/lib/ecoportal/api/graphql/input/location_structure/apply_commands.rb +2 -2
  158. data/lib/ecoportal/api/graphql/input/location_structure/archive_command.rb +13 -13
  159. data/lib/ecoportal/api/graphql/input/location_structure/delete_command.rb +13 -13
  160. data/lib/ecoportal/api/graphql/input/location_structure/draft/add_commands.rb +2 -2
  161. data/lib/ecoportal/api/graphql/input/location_structure/draft/create.rb +15 -15
  162. data/lib/ecoportal/api/graphql/input/location_structure/draft/delete.rb +15 -15
  163. data/lib/ecoportal/api/graphql/input/location_structure/draft/drop_bad_commands.rb +16 -16
  164. data/lib/ecoportal/api/graphql/input/location_structure/draft/publish.rb +16 -16
  165. data/lib/ecoportal/api/graphql/input/location_structure/draft.rb +19 -19
  166. data/lib/ecoportal/api/graphql/input/location_structure/insert_command.rb +13 -13
  167. data/lib/ecoportal/api/graphql/input/location_structure/move_command.rb +14 -14
  168. data/lib/ecoportal/api/graphql/input/location_structure/reorder_command.rb +13 -13
  169. data/lib/ecoportal/api/graphql/input/location_structure/unarchive_command.rb +13 -13
  170. data/lib/ecoportal/api/graphql/input/location_structure/update_command.rb +6 -2
  171. data/lib/ecoportal/api/graphql/input/location_structure.rb +20 -20
  172. data/lib/ecoportal/api/graphql/input/page/archive.rb +14 -14
  173. data/lib/ecoportal/api/graphql/input/page/build_from_template.rb +13 -13
  174. data/lib/ecoportal/api/graphql/input/page/create_draft.rb +13 -13
  175. data/lib/ecoportal/api/graphql/input/page/create_from_template.rb +18 -18
  176. data/lib/ecoportal/api/graphql/input/page/delete_draft.rb +13 -13
  177. data/lib/ecoportal/api/graphql/input/page/publish_draft.rb +13 -13
  178. data/lib/ecoportal/api/graphql/input/page/review_task.rb +14 -14
  179. data/lib/ecoportal/api/graphql/input/page/unarchive.rb +14 -14
  180. data/lib/ecoportal/api/graphql/input/page/update.rb +2 -2
  181. data/lib/ecoportal/api/graphql/input/page.rb +26 -26
  182. data/lib/ecoportal/api/graphql/input/preset_view/create.rb +18 -18
  183. data/lib/ecoportal/api/graphql/input/preset_view/permission.rb +16 -16
  184. data/lib/ecoportal/api/graphql/input/preset_view/update.rb +17 -2
  185. data/lib/ecoportal/api/graphql/input/preset_view.rb +14 -14
  186. data/lib/ecoportal/api/graphql/input/register/create.rb +18 -18
  187. data/lib/ecoportal/api/graphql/input/register/update.rb +15 -15
  188. data/lib/ecoportal/api/graphql/input/register.rb +13 -13
  189. data/lib/ecoportal/api/graphql/input/search.rb +13 -13
  190. data/lib/ecoportal/api/graphql/input/search_conf/ai_generator.rb +234 -234
  191. data/lib/ecoportal/api/graphql/input/search_conf.rb +1 -1
  192. data/lib/ecoportal/api/graphql/input/search_filter.rb +12 -12
  193. data/lib/ecoportal/api/graphql/input/search_sorter.rb +11 -11
  194. data/lib/ecoportal/api/graphql/input/workflow_command/add_action_tag.rb +18 -18
  195. data/lib/ecoportal/api/graphql/input/workflow_command/add_binding.rb +18 -18
  196. data/lib/ecoportal/api/graphql/input/workflow_command/add_checklist_field_item.rb +19 -0
  197. data/lib/ecoportal/api/graphql/input/workflow_command/add_comment_tagging_user_group.rb +18 -18
  198. data/lib/ecoportal/api/graphql/input/workflow_command/add_default_direct_strategy_user.rb +18 -18
  199. data/lib/ecoportal/api/graphql/input/workflow_command/add_default_strategy.rb +18 -18
  200. data/lib/ecoportal/api/graphql/input/workflow_command/add_direct_strategy_user.rb +18 -18
  201. data/lib/ecoportal/api/graphql/input/workflow_command/add_force.rb +18 -18
  202. data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_field_config.rb +23 -23
  203. data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_helper.rb +18 -18
  204. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation.rb +18 -18
  205. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_direct_strategy_user.rb +18 -18
  206. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_strategy.rb +18 -18
  207. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_action_type.rb +18 -18
  208. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_filter.rb +18 -18
  209. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_people_field.rb +18 -18
  210. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_task_config.rb +18 -18
  211. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_user.rb +18 -18
  212. data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback.rb +23 -23
  213. data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback_action.rb +18 -18
  214. data/lib/ecoportal/api/graphql/input/workflow_command/add_section.rb +18 -18
  215. data/lib/ecoportal/api/graphql/input/workflow_command/add_select_field_option.rb +19 -19
  216. data/lib/ecoportal/api/graphql/input/workflow_command/add_smart_fill_config.rb +23 -0
  217. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage.rb +3 -2
  218. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_section.rb +18 -18
  219. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_tag.rb +18 -18
  220. data/lib/ecoportal/api/graphql/input/workflow_command/add_strategy.rb +18 -18
  221. data/lib/ecoportal/api/graphql/input/workflow_command/add_task.rb +18 -18
  222. data/lib/ecoportal/api/graphql/input/workflow_command/add_task_assignment_user_group.rb +18 -18
  223. data/lib/ecoportal/api/graphql/input/workflow_command/add_viewable_field.rb +45 -0
  224. data/lib/ecoportal/api/graphql/input/workflow_command/add_workflow_callback.rb +18 -18
  225. data/lib/ecoportal/api/graphql/input/workflow_command/archive_public_config.rb +19 -0
  226. data/lib/ecoportal/api/graphql/input/workflow_command/collapse_section.rb +18 -18
  227. data/lib/ecoportal/api/graphql/input/workflow_command/create_public_config.rb +19 -0
  228. data/lib/ecoportal/api/graphql/input/workflow_command/edit_binding.rb +18 -18
  229. data/lib/ecoportal/api/graphql/input/workflow_command/edit_checklist_field_item.rb +19 -0
  230. data/lib/ecoportal/api/graphql/input/workflow_command/edit_creator_permissions.rb +18 -18
  231. data/lib/ecoportal/api/graphql/input/workflow_command/edit_default_strategy.rb +18 -18
  232. data/lib/ecoportal/api/graphql/input/workflow_command/edit_field_configuration.rb +12 -2
  233. data/lib/ecoportal/api/graphql/input/workflow_command/edit_force.rb +18 -18
  234. data/lib/ecoportal/api/graphql/input/workflow_command/edit_gauge_field_stop.rb +19 -19
  235. data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_field_config.rb +19 -19
  236. data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_helper.rb +18 -18
  237. data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation.rb +18 -18
  238. data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation_strategy.rb +18 -18
  239. data/lib/ecoportal/api/graphql/input/workflow_command/edit_public_config.rb +19 -0
  240. data/lib/ecoportal/api/graphql/input/workflow_command/edit_reminder.rb +18 -18
  241. data/lib/ecoportal/api/graphql/input/workflow_command/edit_required_sign_offs.rb +18 -18
  242. data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_comment_tagging.rb +18 -18
  243. data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_task_assignment.rb +18 -18
  244. data/lib/ecoportal/api/graphql/input/workflow_command/edit_scheduled_callback.rb +22 -22
  245. data/lib/ecoportal/api/graphql/input/workflow_command/edit_section_header.rb +18 -18
  246. data/lib/ecoportal/api/graphql/input/workflow_command/edit_select_field_option.rb +19 -19
  247. data/lib/ecoportal/api/graphql/input/workflow_command/edit_smart_fill_config.rb +21 -0
  248. data/lib/ecoportal/api/graphql/input/workflow_command/edit_stage.rb +18 -18
  249. data/lib/ecoportal/api/graphql/input/workflow_command/edit_strategy.rb +18 -18
  250. data/lib/ecoportal/api/graphql/input/workflow_command/edit_task_due.rb +18 -18
  251. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_advanced_settings.rb +19 -0
  252. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_basic_settings.rb +27 -0
  253. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_container_uid.rb +45 -0
  254. data/lib/ecoportal/api/graphql/input/workflow_command/{edit_page_creator_permissions.rb → edit_template_creator_permissions.rb} +3 -2
  255. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_descriptions.rb +19 -0
  256. data/lib/ecoportal/api/graphql/input/workflow_command/edit_trigger.rb +18 -18
  257. data/lib/ecoportal/api/graphql/input/workflow_command/expand_section.rb +18 -18
  258. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/action_list.rb +31 -0
  259. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/contractor_entities.rb +24 -24
  260. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/cross_reference.rb +3 -1
  261. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/date.rb +15 -2
  262. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/file.rb +21 -0
  263. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/gauge.rb +20 -20
  264. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/image_gallery.rb +3 -2
  265. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/location_field.rb +24 -24
  266. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/people.rb +27 -3
  267. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/plain_text.rb +3 -2
  268. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/rich_text.rb +3 -2
  269. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/select.rb +3 -2
  270. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/signature.rb +20 -20
  271. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/table.rb +25 -25
  272. data/lib/ecoportal/api/graphql/input/workflow_command/move_field.rb +3 -2
  273. data/lib/ecoportal/api/graphql/input/workflow_command/move_stage.rb +18 -18
  274. data/lib/ecoportal/api/graphql/input/workflow_command/move_viewable_field.rb +33 -0
  275. data/lib/ecoportal/api/graphql/input/workflow_command/remove_action_tag.rb +18 -18
  276. data/lib/ecoportal/api/graphql/input/workflow_command/remove_binding.rb +18 -18
  277. data/lib/ecoportal/api/graphql/input/workflow_command/remove_callback.rb +18 -18
  278. data/lib/ecoportal/api/graphql/input/workflow_command/remove_checklist_field_item.rb +19 -0
  279. data/lib/ecoportal/api/graphql/input/workflow_command/remove_comment_tagging_user_group.rb +18 -18
  280. data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_direct_strategy_user.rb +18 -18
  281. data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_strategy.rb +18 -18
  282. data/lib/ecoportal/api/graphql/input/workflow_command/remove_direct_strategy_user.rb +18 -18
  283. data/lib/ecoportal/api/graphql/input/workflow_command/remove_field.rb +18 -18
  284. data/lib/ecoportal/api/graphql/input/workflow_command/remove_force.rb +18 -18
  285. data/lib/ecoportal/api/graphql/input/workflow_command/remove_linked_helper.rb +18 -18
  286. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation.rb +18 -18
  287. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_direct_strategy_user.rb +18 -18
  288. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_strategy.rb +18 -18
  289. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_action_type.rb +18 -18
  290. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_filter.rb +18 -18
  291. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_people_field.rb +18 -18
  292. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_task_config.rb +18 -18
  293. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_user.rb +18 -18
  294. data/lib/ecoportal/api/graphql/input/workflow_command/remove_scheduled_callback.rb +18 -18
  295. data/lib/ecoportal/api/graphql/input/workflow_command/remove_section.rb +18 -18
  296. data/lib/ecoportal/api/graphql/input/workflow_command/remove_smart_fill_config.rb +19 -0
  297. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage.rb +18 -18
  298. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_section.rb +18 -18
  299. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_tag.rb +18 -18
  300. data/lib/ecoportal/api/graphql/input/workflow_command/remove_strategy.rb +18 -18
  301. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task.rb +18 -18
  302. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_assignment_user_group.rb +18 -18
  303. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_due.rb +18 -18
  304. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_priority_level.rb +18 -18
  305. data/lib/ecoportal/api/graphql/input/workflow_command/remove_viewable_field.rb +21 -0
  306. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_forces.rb +3 -2
  307. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_section.rb +3 -2
  308. data/lib/ecoportal/api/graphql/input/workflow_command.rb +43 -5
  309. data/lib/ecoportal/api/graphql/input.rb +1 -0
  310. data/lib/ecoportal/api/graphql/interface/base_page.rb +36 -3
  311. data/lib/ecoportal/api/graphql/interface/location_structure/command.rb +2 -1
  312. data/lib/ecoportal/api/graphql/interface/location_structure/node.rb +43 -43
  313. data/lib/ecoportal/api/graphql/interface/location_structure.rb +14 -14
  314. data/lib/ecoportal/api/graphql/interface.rb +11 -11
  315. data/lib/ecoportal/api/graphql/logic/base_model.rb +15 -15
  316. data/lib/ecoportal/api/graphql/logic/base_query.rb +193 -193
  317. data/lib/ecoportal/api/graphql/logic/connection.rb +17 -0
  318. data/lib/ecoportal/api/graphql/logic/input.rb +127 -0
  319. data/lib/ecoportal/api/graphql/logic/mutation.rb +59 -59
  320. data/lib/ecoportal/api/graphql/logic/payload.rb +42 -42
  321. data/lib/ecoportal/api/graphql/logic/query.rb +23 -23
  322. data/lib/ecoportal/api/graphql/logic/query_array.rb +30 -30
  323. data/lib/ecoportal/api/graphql/logic/query_connection.rb +48 -48
  324. data/lib/ecoportal/api/graphql/logic.rb +18 -18
  325. data/lib/ecoportal/api/graphql/model/account.rb +15 -15
  326. data/lib/ecoportal/api/graphql/model/action.rb +22 -22
  327. data/lib/ecoportal/api/graphql/model/action_event.rb +14 -0
  328. data/lib/ecoportal/api/graphql/model/action_event_page.rb +10 -0
  329. data/lib/ecoportal/api/graphql/model/activity.rb +14 -0
  330. data/lib/ecoportal/api/graphql/model/activity_log.rb +31 -0
  331. data/lib/ecoportal/api/graphql/model/ai_summary_version.rb +10 -10
  332. data/lib/ecoportal/api/graphql/model/auth_log.rb +11 -0
  333. data/lib/ecoportal/api/graphql/model/authorization_result.rb +12 -0
  334. data/lib/ecoportal/api/graphql/model/contractor_entity.rb +12 -12
  335. data/lib/ecoportal/api/graphql/model/field.rb +10 -10
  336. data/lib/ecoportal/api/graphql/model/file_attachment.rb +10 -10
  337. data/lib/ecoportal/api/graphql/model/file_container.rb +11 -11
  338. data/lib/ecoportal/api/graphql/model/location_node.rb +14 -14
  339. data/lib/ecoportal/api/graphql/model/location_structure/draft/structure.rb +15 -15
  340. data/lib/ecoportal/api/graphql/model/location_structure/draft.rb +15 -15
  341. data/lib/ecoportal/api/graphql/model/location_structure.rb +16 -16
  342. data/lib/ecoportal/api/graphql/model/minimal_dashboard.rb +14 -0
  343. data/lib/ecoportal/api/graphql/model/organization.rb +27 -0
  344. data/lib/ecoportal/api/graphql/model/page/basic.rb +14 -14
  345. data/lib/ecoportal/api/graphql/model/page/data_field.rb +12 -12
  346. data/lib/ecoportal/api/graphql/model/page/phased/stage.rb +14 -14
  347. data/lib/ecoportal/api/graphql/model/page/section.rb +12 -12
  348. data/lib/ecoportal/api/graphql/model/page_union.rb +21 -21
  349. data/lib/ecoportal/api/graphql/model/pages_workflow.rb +20 -20
  350. data/lib/ecoportal/api/graphql/model/permissions.rb +179 -0
  351. data/lib/ecoportal/api/graphql/model/person_member.rb +7 -0
  352. data/lib/ecoportal/api/graphql/model/person_member_changelog.rb +15 -0
  353. data/lib/ecoportal/api/graphql/model/preset_view.rb +10 -10
  354. data/lib/ecoportal/api/graphql/model/preview_page.rb +10 -10
  355. data/lib/ecoportal/api/graphql/model/register.rb +10 -10
  356. data/lib/ecoportal/api/graphql/model/resource.rb +13 -13
  357. data/lib/ecoportal/api/graphql/model/user.rb +14 -14
  358. data/lib/ecoportal/api/graphql/model.rb +9 -0
  359. data/lib/ecoportal/api/graphql/mutation/action/archive.rb +41 -41
  360. data/lib/ecoportal/api/graphql/mutation/action/create.rb +40 -40
  361. data/lib/ecoportal/api/graphql/mutation/action/update.rb +40 -40
  362. data/lib/ecoportal/api/graphql/mutation/action.rb +14 -14
  363. data/lib/ecoportal/api/graphql/mutation/ai_summary/generate.rb +21 -11
  364. data/lib/ecoportal/api/graphql/mutation/ai_summary/submit_feedback.rb +26 -11
  365. data/lib/ecoportal/api/graphql/mutation/ai_summary.rb +13 -13
  366. data/lib/ecoportal/api/graphql/mutation/contractor_entity/create.rb +40 -40
  367. data/lib/ecoportal/api/graphql/mutation/contractor_entity/destroy.rb +40 -40
  368. data/lib/ecoportal/api/graphql/mutation/contractor_entity/update.rb +40 -40
  369. data/lib/ecoportal/api/graphql/mutation/contractor_entity/update_manager_settings.rb +37 -0
  370. data/lib/ecoportal/api/graphql/mutation/contractor_entity.rb +1 -0
  371. data/lib/ecoportal/api/graphql/mutation/file_container/upload.rb +78 -0
  372. data/lib/ecoportal/api/graphql/mutation/file_container.rb +15 -0
  373. data/lib/ecoportal/api/graphql/mutation/location_structure/apply_commands.rb +54 -54
  374. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/add_commands.rb +55 -55
  375. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/create.rb +54 -54
  376. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/delete.rb +43 -43
  377. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/drop_bad_commands.rb +56 -56
  378. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/publish.rb +66 -66
  379. data/lib/ecoportal/api/graphql/mutation/location_structure/draft.rb +18 -18
  380. data/lib/ecoportal/api/graphql/mutation/location_structure.rb +13 -13
  381. data/lib/ecoportal/api/graphql/mutation/page/approve_review_task.rb +1 -1
  382. data/lib/ecoportal/api/graphql/mutation/page/archive.rb +40 -40
  383. data/lib/ecoportal/api/graphql/mutation/page/batch_update_review_task.rb +1 -1
  384. data/lib/ecoportal/api/graphql/mutation/page/build_from_template.rb +50 -50
  385. data/lib/ecoportal/api/graphql/mutation/page/create_draft.rb +1 -1
  386. data/lib/ecoportal/api/graphql/mutation/page/create_from_template.rb +43 -43
  387. data/lib/ecoportal/api/graphql/mutation/page/delete_draft.rb +1 -1
  388. data/lib/ecoportal/api/graphql/mutation/page/publish_draft.rb +1 -1
  389. data/lib/ecoportal/api/graphql/mutation/page/reject_review_task.rb +1 -1
  390. data/lib/ecoportal/api/graphql/mutation/page/restart_review_task.rb +1 -1
  391. data/lib/ecoportal/api/graphql/mutation/page/unarchive.rb +40 -40
  392. data/lib/ecoportal/api/graphql/mutation/page/undo_review_task.rb +1 -1
  393. data/lib/ecoportal/api/graphql/mutation/page/update.rb +40 -40
  394. data/lib/ecoportal/api/graphql/mutation/page.rb +28 -28
  395. data/lib/ecoportal/api/graphql/mutation/preset_view/create.rb +35 -35
  396. data/lib/ecoportal/api/graphql/mutation/preset_view/destroy.rb +1 -1
  397. data/lib/ecoportal/api/graphql/mutation/preset_view/permission.rb +37 -37
  398. data/lib/ecoportal/api/graphql/mutation/preset_view/update.rb +35 -35
  399. data/lib/ecoportal/api/graphql/mutation/preset_view.rb +15 -15
  400. data/lib/ecoportal/api/graphql/mutation/register/create.rb +35 -35
  401. data/lib/ecoportal/api/graphql/mutation/register/destroy.rb +1 -1
  402. data/lib/ecoportal/api/graphql/mutation/register/update.rb +35 -35
  403. data/lib/ecoportal/api/graphql/mutation/register.rb +14 -14
  404. data/lib/ecoportal/api/graphql/mutation/template/update_related_page.rb +79 -0
  405. data/lib/ecoportal/api/graphql/mutation/template.rb +1 -0
  406. data/lib/ecoportal/api/graphql/mutation.rb +1 -1
  407. data/lib/ecoportal/api/graphql/payload/action/archive.rb +13 -13
  408. data/lib/ecoportal/api/graphql/payload/action/create.rb +13 -13
  409. data/lib/ecoportal/api/graphql/payload/action/update.rb +13 -13
  410. data/lib/ecoportal/api/graphql/payload/action.rb +14 -14
  411. data/lib/ecoportal/api/graphql/payload/ai_summary_generate.rb +12 -12
  412. data/lib/ecoportal/api/graphql/payload/contractor_entity/create.rb +13 -13
  413. data/lib/ecoportal/api/graphql/payload/contractor_entity/destroy.rb +12 -12
  414. data/lib/ecoportal/api/graphql/payload/contractor_entity/manager_settings.rb +20 -0
  415. data/lib/ecoportal/api/graphql/payload/contractor_entity/update.rb +12 -12
  416. data/lib/ecoportal/api/graphql/payload/contractor_entity.rb +1 -0
  417. data/lib/ecoportal/api/graphql/payload/location_structure/apply_commands.rb +51 -51
  418. data/lib/ecoportal/api/graphql/payload/location_structure/command_execution_result.rb +50 -50
  419. data/lib/ecoportal/api/graphql/payload/location_structure/draft/add_commands.rb +30 -30
  420. data/lib/ecoportal/api/graphql/payload/location_structure/draft/delete.rb +30 -30
  421. data/lib/ecoportal/api/graphql/payload/location_structure/draft/drop_bad_commands.rb +43 -43
  422. data/lib/ecoportal/api/graphql/payload/location_structure/draft/publish.rb +63 -63
  423. data/lib/ecoportal/api/graphql/payload/location_structure/draft.rb +18 -18
  424. data/lib/ecoportal/api/graphql/payload/location_structure.rb +14 -14
  425. data/lib/ecoportal/api/graphql/payload/ok_payload.rb +1 -1
  426. data/lib/ecoportal/api/graphql/payload/page/archive.rb +13 -13
  427. data/lib/ecoportal/api/graphql/payload/page/build_from_template.rb +13 -13
  428. data/lib/ecoportal/api/graphql/payload/page/create_from_template.rb +13 -13
  429. data/lib/ecoportal/api/graphql/payload/page/draft.rb +1 -1
  430. data/lib/ecoportal/api/graphql/payload/page/review_task.rb +1 -1
  431. data/lib/ecoportal/api/graphql/payload/page/unarchive.rb +13 -13
  432. data/lib/ecoportal/api/graphql/payload/page/update.rb +13 -13
  433. data/lib/ecoportal/api/graphql/payload/preset_view.rb +1 -1
  434. data/lib/ecoportal/api/graphql/payload/register.rb +1 -1
  435. data/lib/ecoportal/api/graphql/payload/template/update_related_page.rb +15 -0
  436. data/lib/ecoportal/api/graphql/payload/template.rb +1 -0
  437. data/lib/ecoportal/api/graphql/payload/upload.rb +12 -0
  438. data/lib/ecoportal/api/graphql/payload.rb +1 -0
  439. data/lib/ecoportal/api/graphql/query/action.rb +33 -33
  440. data/lib/ecoportal/api/graphql/query/action_categories.rb +53 -53
  441. data/lib/ecoportal/api/graphql/query/actions.rb +43 -43
  442. data/lib/ecoportal/api/graphql/query/activity_logs.rb +78 -0
  443. data/lib/ecoportal/api/graphql/query/auth_logs.rb +51 -0
  444. data/lib/ecoportal/api/graphql/query/contractor_entities.rb +53 -53
  445. data/lib/ecoportal/api/graphql/query/dashboard_search.rb +57 -0
  446. data/lib/ecoportal/api/graphql/query/file_upload_signature.rb +76 -76
  447. data/lib/ecoportal/api/graphql/query/location_classifications.rb +39 -39
  448. data/lib/ecoportal/api/graphql/query/location_structure.rb +2 -0
  449. data/lib/ecoportal/api/graphql/query/location_structures.rb +2 -0
  450. data/lib/ecoportal/api/graphql/query/page.rb +6 -1
  451. data/lib/ecoportal/api/graphql/query/page_activities.rb +56 -0
  452. data/lib/ecoportal/api/graphql/query/page_delta.rb +47 -47
  453. data/lib/ecoportal/api/graphql/query/pages.rb +59 -59
  454. data/lib/ecoportal/api/graphql/query/permissions.rb +35 -0
  455. data/lib/ecoportal/api/graphql/query/person_member_changelogs.rb +53 -0
  456. data/lib/ecoportal/api/graphql/query/register_preset_views.rb +1 -1
  457. data/lib/ecoportal/api/graphql/query/register_preview_pages.rb +83 -83
  458. data/lib/ecoportal/api/graphql/query/templates.rb +53 -53
  459. data/lib/ecoportal/api/graphql/query.rb +6 -0
  460. data/lib/ecoportal/api/graphql_version.rb +1 -1
  461. data/lib/ecoportal/api-graphql.rb +10 -10
  462. metadata +78 -12
  463. data/lib/ecoportal/api/graphql/input/workflow_command/edit_page.rb +0 -28
  464. data/lib/ecoportal/api/graphql/mutation/smart_fill/generate.rb +0 -36
  465. data/lib/ecoportal/api/graphql/mutation/smart_fill/submit_feedback.rb +0 -40
  466. data/lib/ecoportal/api/graphql/mutation/smart_fill.rb +0 -13
@@ -1,84 +1,84 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Builder
5
- class Register
6
- # Sub-builder for preset view operations within a register context.
7
- # Access via: api.register.preset_view
8
- #
9
- # Usage:
10
- # pv = api.register.preset_view
11
- #
12
- # # List preset views for a register (find IDs for presetViewId in searches)
13
- # views = pv.list('REG_ID')
14
- # views.map { |v| "#{v.name} (#{v.id}) global=#{v.global?}" }
15
- #
16
- # # Create a preset view
17
- # pv.create(input: {
18
- # registerId: 'REG_ID',
19
- # name: 'Active Pages',
20
- # customPresetView: true,
21
- # fieldConfigs: [{ key: 'name', weight: 0 }, { key: 'state', weight: 1 }],
22
- # sorter: { key: 'created_at', direction: 'desc' }
23
- # })
24
- #
25
- # # Share with a user (view access)
26
- # pv.permission(input: {
27
- # id: 'VIEW_ID',
28
- # permissions: [{ level: 'view', to: { userId: 'USER_ID' } }]
29
- # })
30
- class PresetView
31
- attr_reader :client
32
-
33
- def initialize(client)
34
- @client = client
35
- end
36
-
37
- # List all preset views for a register. Returns an array of PresetView objects.
38
- def list(register_id, search_conf: nil, &block)
39
- Query::RegisterPresetViews.new(client).query(
40
- registerId: register_id,
41
- searchConf: search_conf,
42
- &block
43
- ).nodes
44
- end
45
-
46
- def create(**kargs, &block)
47
- createMutation.query(**kargs, &block)
48
- end
49
-
50
- def update(**kargs, &block)
51
- updateMutation.query(**kargs, &block)
52
- end
53
-
54
- def permission(**kargs, &block)
55
- permissionMutation.query(**kargs, &block)
56
- end
57
-
58
- def destroy(**kargs, &block)
59
- destroyMutation.query(**kargs, &block)
60
- end
61
-
62
- private
63
-
64
- def createMutation
65
- Mutation::PresetView::Create.new(client)
66
- end
67
-
68
- def updateMutation
69
- Mutation::PresetView::Update.new(client)
70
- end
71
-
72
- def permissionMutation
73
- Mutation::PresetView::Permission.new(client)
74
- end
75
-
76
- def destroyMutation
77
- Mutation::PresetView::Destroy.new(client)
78
- end
79
- end
80
- end
81
- end
82
- end
83
- end
84
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Builder
5
+ class Register
6
+ # Sub-builder for preset view operations within a register context.
7
+ # Access via: api.register.preset_view
8
+ #
9
+ # Usage:
10
+ # pv = api.register.preset_view
11
+ #
12
+ # # List preset views for a register (find IDs for presetViewId in searches)
13
+ # views = pv.list('REG_ID')
14
+ # views.map { |v| "#{v.name} (#{v.id}) global=#{v.global?}" }
15
+ #
16
+ # # Create a preset view
17
+ # pv.create(input: {
18
+ # registerId: 'REG_ID',
19
+ # name: 'Active Pages',
20
+ # customPresetView: true,
21
+ # fieldConfigs: [{ key: 'name', weight: 0 }, { key: 'state', weight: 1 }],
22
+ # sorter: { key: 'created_at', direction: 'desc' }
23
+ # })
24
+ #
25
+ # # Share with a user (view access)
26
+ # pv.permission(input: {
27
+ # id: 'VIEW_ID',
28
+ # permissions: [{ level: 'view', to: { userId: 'USER_ID' } }]
29
+ # })
30
+ class PresetView
31
+ attr_reader :client
32
+
33
+ def initialize(client)
34
+ @client = client
35
+ end
36
+
37
+ # List all preset views for a register. Returns an array of PresetView objects.
38
+ def list(register_id, search_conf: nil, &block)
39
+ Query::RegisterPresetViews.new(client).query(
40
+ registerId: register_id,
41
+ searchConf: search_conf,
42
+ &block
43
+ ).nodes
44
+ end
45
+
46
+ def create(**kargs, &block)
47
+ createMutation.query(**kargs, &block)
48
+ end
49
+
50
+ def update(**kargs, &block)
51
+ updateMutation.query(**kargs, &block)
52
+ end
53
+
54
+ def permission(**kargs, &block)
55
+ permissionMutation.query(**kargs, &block)
56
+ end
57
+
58
+ def destroy(**kargs, &block)
59
+ destroyMutation.query(**kargs, &block)
60
+ end
61
+
62
+ private
63
+
64
+ def createMutation
65
+ Mutation::PresetView::Create.new(client)
66
+ end
67
+
68
+ def updateMutation
69
+ Mutation::PresetView::Update.new(client)
70
+ end
71
+
72
+ def permissionMutation
73
+ Mutation::PresetView::Permission.new(client)
74
+ end
75
+
76
+ def destroyMutation
77
+ Mutation::PresetView::Destroy.new(client)
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -1,49 +1,49 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Builder
5
- class Register
6
- attr_reader :client
7
-
8
- def initialize(client)
9
- @client = client
10
- end
11
-
12
- # Register CRUD
13
- def create(**kargs, &block)
14
- createMutation.query(**kargs, &block)
15
- end
16
-
17
- def update(**kargs, &block)
18
- updateMutation.query(**kargs, &block)
19
- end
20
-
21
- def destroy(**kargs, &block)
22
- destroyMutation.query(**kargs, &block)
23
- end
24
-
25
- # Preset view sub-builder — list, create, update, permission, destroy
26
- def preset_view
27
- Register::PresetView.new(client)
28
- end
29
-
30
- private
31
-
32
- def createMutation
33
- Mutation::Register::Create.new(client)
34
- end
35
-
36
- def updateMutation
37
- Mutation::Register::Update.new(client)
38
- end
39
-
40
- def destroyMutation
41
- Mutation::Register::Destroy.new(client)
42
- end
43
- end
44
- end
45
- end
46
- end
47
- end
48
-
49
- require_relative 'register/preset_view'
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Builder
5
+ class Register
6
+ attr_reader :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ # Register CRUD
13
+ def create(**kargs, &block)
14
+ createMutation.query(**kargs, &block)
15
+ end
16
+
17
+ def update(**kargs, &block)
18
+ updateMutation.query(**kargs, &block)
19
+ end
20
+
21
+ def destroy(**kargs, &block)
22
+ destroyMutation.query(**kargs, &block)
23
+ end
24
+
25
+ # Preset view sub-builder — list, create, update, permission, destroy
26
+ def preset_view
27
+ Register::PresetView.new(client)
28
+ end
29
+
30
+ private
31
+
32
+ def createMutation
33
+ Mutation::Register::Create.new(client)
34
+ end
35
+
36
+ def updateMutation
37
+ Mutation::Register::Update.new(client)
38
+ end
39
+
40
+ def destroyMutation
41
+ Mutation::Register::Destroy.new(client)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ require_relative 'register/preset_view'
@@ -40,6 +40,20 @@ module Ecoportal
40
40
  )
41
41
  end
42
42
 
43
+ # Edits an existing related-pages entry. Only the keys you pass are sent — absent keys
44
+ # are left alone server-side, so this is a partial update, not a replace.
45
+ def update_related_page(template_id:, id:, patch_ver:, title: nil, register_id: nil, filters: nil, &block)
46
+ updateRelatedPageMutation.query(
47
+ template_id: template_id,
48
+ id: id,
49
+ patch_ver: patch_ver,
50
+ title: title,
51
+ register_id: register_id,
52
+ filters: filters,
53
+ &block
54
+ )
55
+ end
56
+
43
57
  def destroy_related_page(template_id:, id:, patch_ver:, &block)
44
58
  destroyRelatedPageMutation.query(template_id: template_id, id: id, patch_ver: patch_ver, &block)
45
59
  end
@@ -70,6 +84,10 @@ module Ecoportal
70
84
  Mutation::Template::CreateRelatedPage.new(client)
71
85
  end
72
86
 
87
+ def updateRelatedPageMutation
88
+ Mutation::Template::UpdateRelatedPage.new(client)
89
+ end
90
+
73
91
  def destroyRelatedPageMutation
74
92
  Mutation::Template::DestroyRelatedPage.new(client)
75
93
  end
@@ -18,7 +18,7 @@ module Ecoportal
18
18
  # tag_filter passed through (same ES backend, same format)
19
19
  # register_filter passed through
20
20
  # and_filter / or_filter passed through
21
- # Operation/param shapes per the repo's internal docs.
21
+ # Operation/param shapes per .ai-assistance/code/search_filters.md.
22
22
  class FilterTranslator
23
23
  class << self
24
24
  def to_graphql(filter)
@@ -1,23 +1,23 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Compat
5
- # Returned by Compat::Pages#create — mirrors the v2 reference object.
6
- # Scripts access .page_id and .active_stage_id after page creation.
7
- class PageReference
8
- attr_reader :page_id, :active_stage_id, :page
9
-
10
- def initialize(page)
11
- @page = page
12
- @page_id = page.id
13
- @active_stage_id = page.respond_to?(:current_stage_id) ? page.current_stage_id : nil
14
- end
15
-
16
- def success?
17
- !@page_id.nil?
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Compat
5
+ # Returned by Compat::Pages#create — mirrors the v2 reference object.
6
+ # Scripts access .page_id and .active_stage_id after page creation.
7
+ class PageReference
8
+ attr_reader :page_id, :active_stage_id, :page
9
+
10
+ def initialize(page)
11
+ @page = page
12
+ @page_id = page.id
13
+ @active_stage_id = page.respond_to?(:current_stage_id) ? page.current_stage_id : nil
14
+ end
15
+
16
+ def success?
17
+ !@page_id.nil?
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -18,8 +18,13 @@ module Ecoportal
18
18
  # Fetch a page by ID with full data — metadata, stages, sections, data fields.
19
19
  # When stage_id is provided, wraps the result in a StageView that filters
20
20
  # sections and components to that stage only — matching v2 per-stage behaviour.
21
- def get(id, stage_id: nil)
22
- page = Query::Page.new(@client).query(id: id) do
21
+ # @param variables [Hash] optional CommonPageUnion document-variable overrides
22
+ # (`showHiddenData:`, `content:`, `only_content:`, `fields:`). `content: false`
23
+ # skips field values AND `attachedFiles` — the one selection preauthorized on the
24
+ # `files: download` ability — so structure-only readers (e.g. template tooling on a
25
+ # least-privilege account) can read pages without that grant.
26
+ def get(id, stage_id: nil, **variables)
27
+ page = Query::Page.new(@client).query(id: id, **variables) do
23
28
  spread :CommonPageUnion
24
29
  end
25
30
  stage_id ? StageView.new(page, stage_id) : page
@@ -1,84 +1,84 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Compat
5
- # v2-compatible registers API backed by GraphQL register search.
6
- # Scripts call: apiv2.registers.search(register_id, options) { |result| ... }
7
- #
8
- # With a block: yields each PreviewPage result (cursor-paginated).
9
- # Without a block (or only_first: true): returns a SearchResults object
10
- # with .total and .total_before_filtering.
11
- #
12
- # Filter translation:
13
- # v2 date_filter { lbound:, ubound: } → GraphQL date_filter { gte:, lte: }
14
- # v2 tag_filter { tags:, mode: } → passed through (same ES backend)
15
- # SearchConf filter objects → passed through directly
16
- class Registers
17
- def initialize(client)
18
- @client = client
19
- end
20
-
21
- # Options:
22
- # sort: 'created_at' | 'updated_at'
23
- # dir: 'asc' | 'desc'
24
- # query: String (full-text search)
25
- # filters: Array of filter objects or v2 filter hashes
26
- # batch_size: Integer (results per request, default 20)
27
- # include_archived: Boolean (default false)
28
- # only_first: Boolean — return after first page (no block needed)
29
- def search(register_id, options = {}, &block)
30
- conf = build_search_conf(options)
31
- first = options.fetch(:batch_size, 20)
32
- query = Query::RegisterPreviewPages.new(@client)
33
-
34
- args = {
35
- registerId: register_id,
36
- searchConf: conf.to_h,
37
- includeArchived: options.fetch(:include_archived, false),
38
- first: first
39
- }
40
-
41
- if block || !options[:only_first]
42
- # Block mode: yield each result, stop if only_first
43
- query.each(**args) do |result|
44
- block&.call(result)
45
- break if options[:only_first]
46
- end
47
- else
48
- # No-block mode: return SearchResults with .total etc.
49
- raw = query.query(**args)
50
- SearchResults.new(raw)
51
- end
52
- end
53
-
54
- private
55
-
56
- def build_search_conf(options)
57
- conf = Input::SearchConf.new
58
-
59
- if (sort_key = options[:sort])
60
- direction = options.fetch(:dir, 'desc').to_sym
61
- conf.sort(sort_key.to_sym, direction)
62
- end
63
-
64
- conf.query(options[:query]) if options[:query]
65
-
66
- Array(options[:filters]).compact.each do |filter|
67
- conf.filter(translate_filter(filter))
68
- end
69
-
70
- conf
71
- end
72
-
73
- # Translates a v2-style filter hash to a GraphQL-compatible filter hash.
74
- # SearchConf filter objects (respond to to_h and are not Hash) pass through.
75
- # v2 date_filter: lbound/ubound → gte/lte
76
- # Other v2 types (tag_filter etc.): passed through — same ES backend.
77
- def translate_filter(filter)
78
- FilterTranslator.to_graphql(filter)
79
- end
80
- end
81
- end
82
- end
83
- end
84
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Compat
5
+ # v2-compatible registers API backed by GraphQL register search.
6
+ # Scripts call: apiv2.registers.search(register_id, options) { |result| ... }
7
+ #
8
+ # With a block: yields each PreviewPage result (cursor-paginated).
9
+ # Without a block (or only_first: true): returns a SearchResults object
10
+ # with .total and .total_before_filtering.
11
+ #
12
+ # Filter translation:
13
+ # v2 date_filter { lbound:, ubound: } → GraphQL date_filter { gte:, lte: }
14
+ # v2 tag_filter { tags:, mode: } → passed through (same ES backend)
15
+ # SearchConf filter objects → passed through directly
16
+ class Registers
17
+ def initialize(client)
18
+ @client = client
19
+ end
20
+
21
+ # Options:
22
+ # sort: 'created_at' | 'updated_at'
23
+ # dir: 'asc' | 'desc'
24
+ # query: String (full-text search)
25
+ # filters: Array of filter objects or v2 filter hashes
26
+ # batch_size: Integer (results per request, default 20)
27
+ # include_archived: Boolean (default false)
28
+ # only_first: Boolean — return after first page (no block needed)
29
+ def search(register_id, options = {}, &block)
30
+ conf = build_search_conf(options)
31
+ first = options.fetch(:batch_size, 20)
32
+ query = Query::RegisterPreviewPages.new(@client)
33
+
34
+ args = {
35
+ registerId: register_id,
36
+ searchConf: conf.to_h,
37
+ includeArchived: options.fetch(:include_archived, false),
38
+ first: first
39
+ }
40
+
41
+ if block || !options[:only_first]
42
+ # Block mode: yield each result, stop if only_first
43
+ query.each(**args) do |result|
44
+ block&.call(result)
45
+ break if options[:only_first]
46
+ end
47
+ else
48
+ # No-block mode: return SearchResults with .total etc.
49
+ raw = query.query(**args)
50
+ SearchResults.new(raw)
51
+ end
52
+ end
53
+
54
+ private
55
+
56
+ def build_search_conf(options)
57
+ conf = Input::SearchConf.new
58
+
59
+ if (sort_key = options[:sort])
60
+ direction = options.fetch(:dir, 'desc').to_sym
61
+ conf.sort(sort_key.to_sym, direction)
62
+ end
63
+
64
+ conf.query(options[:query]) if options[:query]
65
+
66
+ Array(options[:filters]).compact.each do |filter|
67
+ conf.filter(translate_filter(filter))
68
+ end
69
+
70
+ conf
71
+ end
72
+
73
+ # Translates a v2-style filter hash to a GraphQL-compatible filter hash.
74
+ # SearchConf filter objects (respond to to_h and are not Hash) pass through.
75
+ # v2 date_filter: lbound/ubound → gte/lte
76
+ # Other v2 types (tag_filter etc.): passed through — same ES backend.
77
+ def translate_filter(filter)
78
+ FilterTranslator.to_graphql(filter)
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -5,7 +5,21 @@ module Ecoportal
5
5
  # Wraps a GraphQL mutation payload to expose the v2-compatible response interface.
6
6
  # Scripts check .success? and .status after update/create operations.
7
7
  class Response
8
+ # The payload contract this wrapper delegates to. Guarded at construction so a
9
+ # payload of the wrong shape fails LOUD here, instead of silently downstream.
10
+ # This is the class of drift behind the eco-helpers 3.2.19 KPI-counter
11
+ # regression, where a Compat::Response (duck-typed, not a Common::Response)
12
+ # slipped through an `is_a?` check and every GraphQL update went uncounted.
13
+ PAYLOAD_CONTRACT = %i[success? error? error_doc item].freeze
14
+
8
15
  def initialize(payload)
16
+ missing = PAYLOAD_CONTRACT.reject { |meth| payload.respond_to?(meth) }
17
+ unless missing.empty?
18
+ raise ArgumentError,
19
+ "Compat::Response payload #{payload.class} does not honour the expected " \
20
+ "response contract; missing: #{missing.join(', ')}"
21
+ end
22
+
9
23
  @payload = payload
10
24
  end
11
25
 
@@ -1,33 +1,33 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Compat
5
- # Wraps a GraphQL connection object to expose the v2-compatible search
6
- # result interface. eco-helpers scripts access:
7
- # search_results.total — filtered count
8
- # search_results.total_before_filtering — pre-filter count (approximated)
9
- # (also Enumerable for iteration)
10
- class SearchResults
11
- include Enumerable
12
-
13
- attr_reader :total, :total_before_filtering
14
-
15
- def initialize(connection)
16
- @total = connection.totalCount
17
- # GraphQL does not expose a pre-filter count — use the same value.
18
- @total_before_filtering = connection.totalCount
19
- @nodes = connection.nodes
20
- end
21
-
22
- def each(&block)
23
- @nodes.each(&block)
24
- end
25
-
26
- def empty?
27
- @nodes.empty?
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Compat
5
+ # Wraps a GraphQL connection object to expose the v2-compatible search
6
+ # result interface. eco-helpers scripts access:
7
+ # search_results.total — filtered count
8
+ # search_results.total_before_filtering — pre-filter count (approximated)
9
+ # (also Enumerable for iteration)
10
+ class SearchResults
11
+ include Enumerable
12
+
13
+ attr_reader :total, :total_before_filtering
14
+
15
+ def initialize(connection)
16
+ @total = connection.totalCount
17
+ # GraphQL does not expose a pre-filter count — use the same value.
18
+ @total_before_filtering = connection.totalCount
19
+ @nodes = connection.nodes
20
+ end
21
+
22
+ def each(&block)
23
+ @nodes.each(&block)
24
+ end
25
+
26
+ def empty?
27
+ @nodes.empty?
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,17 +1,17 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Compat
5
- end
6
- end
7
- end
8
- end
9
-
10
- require_relative 'compat/filter_translator'
11
- require_relative 'compat/stage_collection'
12
- require_relative 'compat/search_results'
13
- require_relative 'compat/page_reference'
14
- require_relative 'compat/response'
15
- require_relative 'compat/stage_view'
16
- require_relative 'compat/pages'
17
- require_relative 'compat/registers'
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Compat
5
+ end
6
+ end
7
+ end
8
+ end
9
+
10
+ require_relative 'compat/filter_translator'
11
+ require_relative 'compat/stage_collection'
12
+ require_relative 'compat/search_results'
13
+ require_relative 'compat/page_reference'
14
+ require_relative 'compat/response'
15
+ require_relative 'compat/stage_view'
16
+ require_relative 'compat/pages'
17
+ require_relative 'compat/registers'