ecoportal-api-graphql 2.0.0 → 2.2.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 (355) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +363 -1
  3. data/LICENSE +21 -21
  4. data/README.md +24 -24
  5. data/lib/ecoportal/api/common/graphql/auth_service.rb +115 -115
  6. data/lib/ecoportal/api/common/graphql/class_helpers.rb +46 -46
  7. data/lib/ecoportal/api/common/graphql/client.rb +69 -69
  8. data/lib/ecoportal/api/common/graphql/hash_helpers.rb +105 -105
  9. data/lib/ecoportal/api/common/graphql/http_client.rb +85 -2
  10. data/lib/ecoportal/api/common/graphql/model/as_input.rb +54 -54
  11. data/lib/ecoportal/api/common/graphql/model/diffable/classic_diff_service.rb +49 -49
  12. data/lib/ecoportal/api/common/graphql/model/diffable/diff_service.rb +188 -188
  13. data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff.rb +55 -55
  14. data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff_nesting.rb +295 -295
  15. data/lib/ecoportal/api/common/graphql/model.rb +17 -17
  16. data/lib/ecoportal/api/common/graphql/patches.rb +1 -1
  17. data/lib/ecoportal/api/common/graphql/query_integration.rb +45 -45
  18. data/lib/ecoportal/api/common/graphql.rb +16 -16
  19. data/lib/ecoportal/api/common.graphql.rb +8 -8
  20. data/lib/ecoportal/api/graphql/base/action_category.rb +15 -15
  21. data/lib/ecoportal/api/graphql/base/ai_summary_version.rb +1 -1
  22. data/lib/ecoportal/api/graphql/base/contractor_entity.rb +24 -24
  23. data/lib/ecoportal/api/graphql/base/date_time.rb +12 -12
  24. data/lib/ecoportal/api/graphql/base/delta_result.rb +16 -16
  25. data/lib/ecoportal/api/graphql/base/field.rb +12 -12
  26. data/lib/ecoportal/api/graphql/base/file_attachment.rb +15 -15
  27. data/lib/ecoportal/api/graphql/base/location_node.rb +14 -14
  28. data/lib/ecoportal/api/graphql/base/location_structure/draft/structure.rb +37 -37
  29. data/lib/ecoportal/api/graphql/base/location_structure/draft.rb +93 -93
  30. data/lib/ecoportal/api/graphql/base/page/data_field/actions_list.rb +9 -9
  31. data/lib/ecoportal/api/graphql/base/page/data_field/ai_summary.rb +18 -18
  32. data/lib/ecoportal/api/graphql/base/page/data_field/checklist.rb +29 -29
  33. data/lib/ecoportal/api/graphql/base/page/data_field/cross_reference.rb +1 -1
  34. data/lib/ecoportal/api/graphql/base/page/data_field/date_field.rb +23 -23
  35. data/lib/ecoportal/api/graphql/base/page/data_field/geo.rb +24 -24
  36. data/lib/ecoportal/api/graphql/base/page/data_field/image_gallery.rb +1 -1
  37. data/lib/ecoportal/api/graphql/base/page/data_field/law.rb +8 -8
  38. data/lib/ecoportal/api/graphql/base/page/data_field/mailbox.rb +9 -9
  39. data/lib/ecoportal/api/graphql/base/page/data_field/plain_text.rb +17 -17
  40. data/lib/ecoportal/api/graphql/base/page/data_field/rich_text.rb +26 -26
  41. data/lib/ecoportal/api/graphql/base/page/data_field/signature.rb +9 -9
  42. data/lib/ecoportal/api/graphql/base/page/data_field/smart_fill.rb +17 -17
  43. data/lib/ecoportal/api/graphql/base/page/data_field/table.rb +9 -9
  44. data/lib/ecoportal/api/graphql/base/page/data_field/tag_field.rb +21 -21
  45. data/lib/ecoportal/api/graphql/base/page/phased/stage.rb +51 -0
  46. data/lib/ecoportal/api/graphql/base/page/phased.rb +15 -15
  47. data/lib/ecoportal/api/graphql/base/page/section.rb +48 -48
  48. data/lib/ecoportal/api/graphql/base/page_info.rb +12 -12
  49. data/lib/ecoportal/api/graphql/base/pages_workflow/operation_interface.rb +39 -39
  50. data/lib/ecoportal/api/graphql/base/pages_workflow/operations/assign_to.rb +27 -27
  51. data/lib/ecoportal/api/graphql/base/pages_workflow/operations/send_notification.rb +30 -30
  52. data/lib/ecoportal/api/graphql/base/pages_workflow/recipient_config.rb +34 -34
  53. data/lib/ecoportal/api/graphql/base/pages_workflow.rb +35 -35
  54. data/lib/ecoportal/api/graphql/base/person_member.rb +22 -22
  55. data/lib/ecoportal/api/graphql/base/preview_page.rb +23 -23
  56. data/lib/ecoportal/api/graphql/base/register.rb +1 -1
  57. data/lib/ecoportal/api/graphql/base/resource.rb +13 -13
  58. data/lib/ecoportal/api/graphql/base/template/change_log_entry.rb +118 -0
  59. data/lib/ecoportal/api/graphql/base/template.rb +2 -0
  60. data/lib/ecoportal/api/graphql/builder/action.rb +41 -41
  61. data/lib/ecoportal/api/graphql/builder/location_structure/draft.rb +64 -64
  62. data/lib/ecoportal/api/graphql/builder/location_structure.rb +40 -40
  63. data/lib/ecoportal/api/graphql/builder/register/preset_view.rb +84 -84
  64. data/lib/ecoportal/api/graphql/builder/register.rb +49 -49
  65. data/lib/ecoportal/api/graphql/builder/template.rb +28 -0
  66. data/lib/ecoportal/api/graphql/builder/template_builder.rb +21 -2
  67. data/lib/ecoportal/api/graphql/compat/page_reference.rb +23 -23
  68. data/lib/ecoportal/api/graphql/compat/registers.rb +84 -84
  69. data/lib/ecoportal/api/graphql/compat/search_results.rb +33 -33
  70. data/lib/ecoportal/api/graphql/compat.rb +17 -17
  71. data/lib/ecoportal/api/graphql/concerns/data_field_access.rb +71 -71
  72. data/lib/ecoportal/api/graphql/concerns/fragment_definitions.rb +68 -68
  73. data/lib/ecoportal/api/graphql/concerns/snake_camel_access.rb +60 -60
  74. data/lib/ecoportal/api/graphql/connection/preset_view.rb +11 -11
  75. data/lib/ecoportal/api/graphql/connection/template_change_log.rb +19 -0
  76. data/lib/ecoportal/api/graphql/connection.rb +1 -0
  77. data/lib/ecoportal/api/graphql/diff/change.rb +7 -2
  78. data/lib/ecoportal/api/graphql/diff/command_synthesizer.rb +19 -1
  79. data/lib/ecoportal/api/graphql/diff/version_diff.rb +13 -6
  80. data/lib/ecoportal/api/graphql/error/locations_error/fetch_nested.rb +51 -51
  81. data/lib/ecoportal/api/graphql/error/locations_error.rb +28 -28
  82. data/lib/ecoportal/api/graphql/error/locations_validation_error.rb +20 -20
  83. data/lib/ecoportal/api/graphql/error/validation_errors.rb +28 -28
  84. data/lib/ecoportal/api/graphql/error.rb +12 -12
  85. data/lib/ecoportal/api/graphql/file_upload.rb +10 -10
  86. data/lib/ecoportal/api/graphql/fragment/action.rb +65 -65
  87. data/lib/ecoportal/api/graphql/fragment/action_category.rb +17 -17
  88. data/lib/ecoportal/api/graphql/fragment/contractor_entity.rb +20 -20
  89. data/lib/ecoportal/api/graphql/fragment/locations_error.rb +19 -19
  90. data/lib/ecoportal/api/graphql/fragment/page.rb +1 -0
  91. data/lib/ecoportal/api/graphql/fragment/pages/common_page_union.rb +2 -0
  92. data/lib/ecoportal/api/graphql/fragment/pages.rb +15 -15
  93. data/lib/ecoportal/api/graphql/fragment/pagination.rb +17 -17
  94. data/lib/ecoportal/api/graphql/fragment/template_change_log.rb +102 -0
  95. data/lib/ecoportal/api/graphql/fragment.rb +1 -0
  96. data/lib/ecoportal/api/graphql/helpers/locations_tree.rb +41 -41
  97. data/lib/ecoportal/api/graphql/helpers.rb +10 -10
  98. data/lib/ecoportal/api/graphql/input/action/archive.rb +14 -14
  99. data/lib/ecoportal/api/graphql/input/action/create.rb +13 -13
  100. data/lib/ecoportal/api/graphql/input/action.rb +14 -14
  101. data/lib/ecoportal/api/graphql/input/contractor_entity/create.rb +14 -14
  102. data/lib/ecoportal/api/graphql/input/contractor_entity/destroy.rb +13 -13
  103. data/lib/ecoportal/api/graphql/input/delta_input.rb +16 -16
  104. data/lib/ecoportal/api/graphql/input/id_diff.rb +11 -11
  105. data/lib/ecoportal/api/graphql/input/location_structure/archive_command.rb +13 -13
  106. data/lib/ecoportal/api/graphql/input/location_structure/delete_command.rb +13 -13
  107. data/lib/ecoportal/api/graphql/input/location_structure/draft/create.rb +15 -15
  108. data/lib/ecoportal/api/graphql/input/location_structure/draft/delete.rb +15 -15
  109. data/lib/ecoportal/api/graphql/input/location_structure/draft/drop_bad_commands.rb +16 -16
  110. data/lib/ecoportal/api/graphql/input/location_structure/draft/publish.rb +16 -16
  111. data/lib/ecoportal/api/graphql/input/location_structure/draft.rb +19 -19
  112. data/lib/ecoportal/api/graphql/input/location_structure/insert_command.rb +21 -13
  113. data/lib/ecoportal/api/graphql/input/location_structure/move_command.rb +14 -14
  114. data/lib/ecoportal/api/graphql/input/location_structure/reorder_command.rb +13 -13
  115. data/lib/ecoportal/api/graphql/input/location_structure/unarchive_command.rb +13 -13
  116. data/lib/ecoportal/api/graphql/input/location_structure.rb +20 -20
  117. data/lib/ecoportal/api/graphql/input/page/archive.rb +14 -14
  118. data/lib/ecoportal/api/graphql/input/page/build_from_template.rb +13 -13
  119. data/lib/ecoportal/api/graphql/input/page/create_draft.rb +13 -13
  120. data/lib/ecoportal/api/graphql/input/page/create_from_template.rb +18 -18
  121. data/lib/ecoportal/api/graphql/input/page/delete_draft.rb +13 -13
  122. data/lib/ecoportal/api/graphql/input/page/publish_draft.rb +13 -13
  123. data/lib/ecoportal/api/graphql/input/page/review_task.rb +27 -14
  124. data/lib/ecoportal/api/graphql/input/page/unarchive.rb +14 -14
  125. data/lib/ecoportal/api/graphql/input/page.rb +26 -26
  126. data/lib/ecoportal/api/graphql/input/preset_view/create.rb +18 -18
  127. data/lib/ecoportal/api/graphql/input/preset_view/permission.rb +16 -16
  128. data/lib/ecoportal/api/graphql/input/preset_view/update.rb +1 -1
  129. data/lib/ecoportal/api/graphql/input/preset_view.rb +14 -14
  130. data/lib/ecoportal/api/graphql/input/register/create.rb +18 -18
  131. data/lib/ecoportal/api/graphql/input/register/update.rb +15 -15
  132. data/lib/ecoportal/api/graphql/input/register.rb +13 -13
  133. data/lib/ecoportal/api/graphql/input/search.rb +13 -13
  134. data/lib/ecoportal/api/graphql/input/search_conf/ai_generator.rb +234 -234
  135. data/lib/ecoportal/api/graphql/input/search_filter.rb +12 -12
  136. data/lib/ecoportal/api/graphql/input/search_sorter.rb +11 -11
  137. data/lib/ecoportal/api/graphql/input/workflow_command/add_action_tag.rb +18 -18
  138. data/lib/ecoportal/api/graphql/input/workflow_command/add_binding.rb +18 -18
  139. data/lib/ecoportal/api/graphql/input/workflow_command/add_comment_tagging_user_group.rb +18 -18
  140. data/lib/ecoportal/api/graphql/input/workflow_command/add_default_direct_strategy_user.rb +18 -18
  141. data/lib/ecoportal/api/graphql/input/workflow_command/add_default_strategy.rb +18 -18
  142. data/lib/ecoportal/api/graphql/input/workflow_command/add_direct_strategy_user.rb +18 -18
  143. data/lib/ecoportal/api/graphql/input/workflow_command/add_field.rb +10 -9
  144. data/lib/ecoportal/api/graphql/input/workflow_command/add_force.rb +18 -18
  145. data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_field_config.rb +23 -23
  146. data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_helper.rb +18 -18
  147. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation.rb +18 -18
  148. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_direct_strategy_user.rb +18 -18
  149. data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_strategy.rb +18 -18
  150. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_action_type.rb +18 -18
  151. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_filter.rb +18 -18
  152. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_people_field.rb +18 -18
  153. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_task_config.rb +18 -18
  154. data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_user.rb +18 -18
  155. data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback.rb +23 -23
  156. data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback_action.rb +18 -18
  157. data/lib/ecoportal/api/graphql/input/workflow_command/add_section.rb +18 -18
  158. data/lib/ecoportal/api/graphql/input/workflow_command/add_select_field_option.rb +25 -19
  159. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_section.rb +18 -18
  160. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_tag.rb +18 -18
  161. data/lib/ecoportal/api/graphql/input/workflow_command/add_strategy.rb +18 -18
  162. data/lib/ecoportal/api/graphql/input/workflow_command/add_task.rb +18 -18
  163. data/lib/ecoportal/api/graphql/input/workflow_command/add_task_assignment_user_group.rb +18 -18
  164. data/lib/ecoportal/api/graphql/input/workflow_command/add_workflow_callback.rb +18 -18
  165. data/lib/ecoportal/api/graphql/input/workflow_command/collapse_section.rb +18 -18
  166. data/lib/ecoportal/api/graphql/input/workflow_command/edit_binding.rb +18 -18
  167. data/lib/ecoportal/api/graphql/input/workflow_command/edit_creator_permissions.rb +18 -18
  168. data/lib/ecoportal/api/graphql/input/workflow_command/edit_default_strategy.rb +18 -18
  169. data/lib/ecoportal/api/graphql/input/workflow_command/edit_field_configuration.rb +7 -2
  170. data/lib/ecoportal/api/graphql/input/workflow_command/edit_force.rb +21 -18
  171. data/lib/ecoportal/api/graphql/input/workflow_command/edit_gauge_field_stop.rb +19 -19
  172. data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_field_config.rb +19 -19
  173. data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_helper.rb +18 -18
  174. data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation.rb +18 -18
  175. data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation_strategy.rb +18 -18
  176. data/lib/ecoportal/api/graphql/input/workflow_command/edit_reminder.rb +18 -18
  177. data/lib/ecoportal/api/graphql/input/workflow_command/edit_required_sign_offs.rb +18 -18
  178. data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_comment_tagging.rb +18 -18
  179. data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_task_assignment.rb +18 -18
  180. data/lib/ecoportal/api/graphql/input/workflow_command/edit_scheduled_callback.rb +22 -22
  181. data/lib/ecoportal/api/graphql/input/workflow_command/edit_section_header.rb +18 -18
  182. data/lib/ecoportal/api/graphql/input/workflow_command/edit_select_field_option.rb +23 -19
  183. data/lib/ecoportal/api/graphql/input/workflow_command/edit_stage.rb +18 -18
  184. data/lib/ecoportal/api/graphql/input/workflow_command/edit_strategy.rb +18 -18
  185. data/lib/ecoportal/api/graphql/input/workflow_command/edit_task_due.rb +18 -18
  186. data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_basic_settings.rb +7 -2
  187. data/lib/ecoportal/api/graphql/input/workflow_command/edit_trigger.rb +18 -18
  188. data/lib/ecoportal/api/graphql/input/workflow_command/expand_section.rb +18 -18
  189. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/contractor_entities.rb +28 -24
  190. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/cross_reference.rb +8 -2
  191. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/gauge.rb +20 -20
  192. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/location_field.rb +24 -24
  193. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/plain_text.rb +8 -2
  194. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/signature.rb +20 -20
  195. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/table.rb +25 -25
  196. data/lib/ecoportal/api/graphql/input/workflow_command/manage_copy_page_configuration.rb +47 -0
  197. data/lib/ecoportal/api/graphql/input/workflow_command/move_stage.rb +18 -18
  198. data/lib/ecoportal/api/graphql/input/workflow_command/remove_action_tag.rb +18 -18
  199. data/lib/ecoportal/api/graphql/input/workflow_command/remove_binding.rb +18 -18
  200. data/lib/ecoportal/api/graphql/input/workflow_command/remove_callback.rb +18 -18
  201. data/lib/ecoportal/api/graphql/input/workflow_command/remove_comment_tagging_user_group.rb +18 -18
  202. data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_direct_strategy_user.rb +18 -18
  203. data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_strategy.rb +18 -18
  204. data/lib/ecoportal/api/graphql/input/workflow_command/remove_direct_strategy_user.rb +18 -18
  205. data/lib/ecoportal/api/graphql/input/workflow_command/remove_field.rb +18 -18
  206. data/lib/ecoportal/api/graphql/input/workflow_command/remove_force.rb +18 -18
  207. data/lib/ecoportal/api/graphql/input/workflow_command/remove_linked_helper.rb +18 -18
  208. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation.rb +18 -18
  209. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_direct_strategy_user.rb +18 -18
  210. data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_strategy.rb +18 -18
  211. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_action_type.rb +18 -18
  212. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_filter.rb +18 -18
  213. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_people_field.rb +18 -18
  214. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_task_config.rb +18 -18
  215. data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_user.rb +18 -18
  216. data/lib/ecoportal/api/graphql/input/workflow_command/remove_scheduled_callback.rb +18 -18
  217. data/lib/ecoportal/api/graphql/input/workflow_command/remove_section.rb +18 -18
  218. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage.rb +18 -18
  219. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_section.rb +18 -18
  220. data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_tag.rb +18 -18
  221. data/lib/ecoportal/api/graphql/input/workflow_command/remove_strategy.rb +18 -18
  222. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task.rb +18 -18
  223. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_assignment_user_group.rb +18 -18
  224. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_due.rb +18 -18
  225. data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_priority_level.rb +18 -18
  226. data/lib/ecoportal/api/graphql/input/workflow_command.rb +3 -0
  227. data/lib/ecoportal/api/graphql/interface/base_page.rb +14 -0
  228. data/lib/ecoportal/api/graphql/interface/location_structure/node.rb +43 -43
  229. data/lib/ecoportal/api/graphql/interface/location_structure.rb +14 -14
  230. data/lib/ecoportal/api/graphql/interface.rb +11 -11
  231. data/lib/ecoportal/api/graphql/logic/base_model.rb +15 -15
  232. data/lib/ecoportal/api/graphql/logic/base_query.rb +260 -193
  233. data/lib/ecoportal/api/graphql/logic/mutation.rb +59 -59
  234. data/lib/ecoportal/api/graphql/logic/payload.rb +42 -42
  235. data/lib/ecoportal/api/graphql/logic/query.rb +23 -23
  236. data/lib/ecoportal/api/graphql/logic/query_array.rb +30 -30
  237. data/lib/ecoportal/api/graphql/logic/query_connection.rb +48 -48
  238. data/lib/ecoportal/api/graphql/logic.rb +18 -18
  239. data/lib/ecoportal/api/graphql/model/account.rb +15 -15
  240. data/lib/ecoportal/api/graphql/model/action.rb +22 -22
  241. data/lib/ecoportal/api/graphql/model/ai_summary_version.rb +10 -10
  242. data/lib/ecoportal/api/graphql/model/contractor_entity.rb +12 -12
  243. data/lib/ecoportal/api/graphql/model/field.rb +10 -10
  244. data/lib/ecoportal/api/graphql/model/file_attachment.rb +10 -10
  245. data/lib/ecoportal/api/graphql/model/file_container.rb +11 -11
  246. data/lib/ecoportal/api/graphql/model/location_node.rb +14 -14
  247. data/lib/ecoportal/api/graphql/model/location_structure/draft/structure.rb +15 -15
  248. data/lib/ecoportal/api/graphql/model/location_structure/draft.rb +15 -15
  249. data/lib/ecoportal/api/graphql/model/location_structure.rb +16 -16
  250. data/lib/ecoportal/api/graphql/model/organization.rb +9 -0
  251. data/lib/ecoportal/api/graphql/model/page/basic.rb +14 -14
  252. data/lib/ecoportal/api/graphql/model/page/data_field.rb +12 -12
  253. data/lib/ecoportal/api/graphql/model/page/phased/stage.rb +14 -14
  254. data/lib/ecoportal/api/graphql/model/page/phased.rb +17 -0
  255. data/lib/ecoportal/api/graphql/model/page/section.rb +12 -12
  256. data/lib/ecoportal/api/graphql/model/page_union.rb +21 -21
  257. data/lib/ecoportal/api/graphql/model/pages_workflow.rb +20 -20
  258. data/lib/ecoportal/api/graphql/model/preset_view.rb +10 -10
  259. data/lib/ecoportal/api/graphql/model/preview_page.rb +10 -10
  260. data/lib/ecoportal/api/graphql/model/register.rb +10 -10
  261. data/lib/ecoportal/api/graphql/model/resource.rb +13 -13
  262. data/lib/ecoportal/api/graphql/model/template/change_log_entry.rb +19 -0
  263. data/lib/ecoportal/api/graphql/model/template.rb +4 -1
  264. data/lib/ecoportal/api/graphql/model/user.rb +14 -14
  265. data/lib/ecoportal/api/graphql/mutation/action/archive.rb +41 -41
  266. data/lib/ecoportal/api/graphql/mutation/action/create.rb +40 -40
  267. data/lib/ecoportal/api/graphql/mutation/action/update.rb +40 -40
  268. data/lib/ecoportal/api/graphql/mutation/action.rb +14 -14
  269. data/lib/ecoportal/api/graphql/mutation/ai_summary/generate.rb +1 -1
  270. data/lib/ecoportal/api/graphql/mutation/ai_summary/submit_feedback.rb +1 -1
  271. data/lib/ecoportal/api/graphql/mutation/ai_summary.rb +13 -13
  272. data/lib/ecoportal/api/graphql/mutation/contractor_entity/create.rb +40 -40
  273. data/lib/ecoportal/api/graphql/mutation/contractor_entity/destroy.rb +40 -40
  274. data/lib/ecoportal/api/graphql/mutation/contractor_entity/update.rb +40 -40
  275. data/lib/ecoportal/api/graphql/mutation/location_structure/apply_commands.rb +54 -54
  276. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/add_commands.rb +55 -55
  277. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/create.rb +54 -54
  278. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/delete.rb +43 -43
  279. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/drop_bad_commands.rb +56 -56
  280. data/lib/ecoportal/api/graphql/mutation/location_structure/draft/publish.rb +66 -66
  281. data/lib/ecoportal/api/graphql/mutation/location_structure/draft.rb +18 -18
  282. data/lib/ecoportal/api/graphql/mutation/location_structure.rb +13 -13
  283. data/lib/ecoportal/api/graphql/mutation/page/approve_review_task.rb +1 -1
  284. data/lib/ecoportal/api/graphql/mutation/page/archive.rb +40 -40
  285. data/lib/ecoportal/api/graphql/mutation/page/batch_update_review_task.rb +1 -1
  286. data/lib/ecoportal/api/graphql/mutation/page/build_from_template.rb +50 -50
  287. data/lib/ecoportal/api/graphql/mutation/page/create_draft.rb +1 -1
  288. data/lib/ecoportal/api/graphql/mutation/page/create_from_template.rb +43 -43
  289. data/lib/ecoportal/api/graphql/mutation/page/delete_draft.rb +1 -1
  290. data/lib/ecoportal/api/graphql/mutation/page/publish_draft.rb +1 -1
  291. data/lib/ecoportal/api/graphql/mutation/page/reject_review_task.rb +1 -1
  292. data/lib/ecoportal/api/graphql/mutation/page/restart_review_task.rb +1 -1
  293. data/lib/ecoportal/api/graphql/mutation/page/unarchive.rb +40 -40
  294. data/lib/ecoportal/api/graphql/mutation/page/undo_review_task.rb +1 -1
  295. data/lib/ecoportal/api/graphql/mutation/page/update.rb +40 -40
  296. data/lib/ecoportal/api/graphql/mutation/page.rb +28 -28
  297. data/lib/ecoportal/api/graphql/mutation/preset_view/create.rb +35 -35
  298. data/lib/ecoportal/api/graphql/mutation/preset_view/destroy.rb +1 -1
  299. data/lib/ecoportal/api/graphql/mutation/preset_view/permission.rb +37 -37
  300. data/lib/ecoportal/api/graphql/mutation/preset_view/update.rb +35 -35
  301. data/lib/ecoportal/api/graphql/mutation/preset_view.rb +15 -15
  302. data/lib/ecoportal/api/graphql/mutation/register/create.rb +35 -35
  303. data/lib/ecoportal/api/graphql/mutation/register/destroy.rb +1 -1
  304. data/lib/ecoportal/api/graphql/mutation/register/update.rb +35 -35
  305. data/lib/ecoportal/api/graphql/mutation/register.rb +14 -14
  306. data/lib/ecoportal/api/graphql/payload/action/archive.rb +13 -13
  307. data/lib/ecoportal/api/graphql/payload/action/create.rb +13 -13
  308. data/lib/ecoportal/api/graphql/payload/action/update.rb +13 -13
  309. data/lib/ecoportal/api/graphql/payload/action.rb +14 -14
  310. data/lib/ecoportal/api/graphql/payload/ai_summary_generate.rb +12 -12
  311. data/lib/ecoportal/api/graphql/payload/contractor_entity/create.rb +13 -13
  312. data/lib/ecoportal/api/graphql/payload/contractor_entity/destroy.rb +12 -12
  313. data/lib/ecoportal/api/graphql/payload/contractor_entity/update.rb +12 -12
  314. data/lib/ecoportal/api/graphql/payload/kickstand/bulk_update_jobs.rb +2 -2
  315. data/lib/ecoportal/api/graphql/payload/kickstand/bulk_update_workflows.rb +2 -2
  316. data/lib/ecoportal/api/graphql/payload/location_structure/apply_commands.rb +51 -51
  317. data/lib/ecoportal/api/graphql/payload/location_structure/command_execution_result.rb +50 -50
  318. data/lib/ecoportal/api/graphql/payload/location_structure/draft/add_commands.rb +30 -30
  319. data/lib/ecoportal/api/graphql/payload/location_structure/draft/delete.rb +30 -30
  320. data/lib/ecoportal/api/graphql/payload/location_structure/draft/drop_bad_commands.rb +43 -43
  321. data/lib/ecoportal/api/graphql/payload/location_structure/draft/publish.rb +63 -63
  322. data/lib/ecoportal/api/graphql/payload/location_structure/draft.rb +18 -18
  323. data/lib/ecoportal/api/graphql/payload/location_structure.rb +14 -14
  324. data/lib/ecoportal/api/graphql/payload/ok_payload.rb +1 -1
  325. data/lib/ecoportal/api/graphql/payload/page/archive.rb +13 -13
  326. data/lib/ecoportal/api/graphql/payload/page/build_from_template.rb +13 -13
  327. data/lib/ecoportal/api/graphql/payload/page/create_from_template.rb +13 -13
  328. data/lib/ecoportal/api/graphql/payload/page/draft.rb +1 -1
  329. data/lib/ecoportal/api/graphql/payload/page/review_task.rb +1 -1
  330. data/lib/ecoportal/api/graphql/payload/page/unarchive.rb +13 -13
  331. data/lib/ecoportal/api/graphql/payload/page/update.rb +13 -13
  332. data/lib/ecoportal/api/graphql/payload/preset_view.rb +1 -1
  333. data/lib/ecoportal/api/graphql/payload/register.rb +1 -1
  334. data/lib/ecoportal/api/graphql/query/action.rb +33 -33
  335. data/lib/ecoportal/api/graphql/query/action_categories.rb +53 -53
  336. data/lib/ecoportal/api/graphql/query/actions.rb +43 -43
  337. data/lib/ecoportal/api/graphql/query/contractor_entities.rb +53 -53
  338. data/lib/ecoportal/api/graphql/query/file_upload_signature.rb +76 -76
  339. data/lib/ecoportal/api/graphql/query/location_classifications.rb +39 -39
  340. data/lib/ecoportal/api/graphql/query/page_delta.rb +47 -47
  341. data/lib/ecoportal/api/graphql/query/pages.rb +59 -59
  342. data/lib/ecoportal/api/graphql/query/person_members.rb +76 -0
  343. data/lib/ecoportal/api/graphql/query/register_preset_views.rb +1 -1
  344. data/lib/ecoportal/api/graphql/query/register_preview_pages.rb +83 -83
  345. data/lib/ecoportal/api/graphql/query/template_change_log.rb +118 -0
  346. data/lib/ecoportal/api/graphql/query/templates.rb +53 -53
  347. data/lib/ecoportal/api/graphql/query.rb +2 -0
  348. data/lib/ecoportal/api/graphql_version.rb +1 -1
  349. data/lib/ecoportal/api-graphql.rb +10 -10
  350. metadata +10 -8
  351. data/lib/ecoportal/api/common/graphql/CLAUDE.md +0 -36
  352. data/lib/ecoportal/api/common/graphql/model/CLAUDE.md +0 -28
  353. data/lib/ecoportal/api/graphql/CLAUDE.md +0 -37
  354. data/lib/ecoportal/api/graphql/base/CLAUDE.md +0 -50
  355. data/lib/ecoportal/api/graphql/builder/CLAUDE.md +0 -65
@@ -1,53 +1,53 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Query
5
- class Templates < Logic::QueryConnection
6
- field_name :templates
7
-
8
- class_resolver :item_class, 'Ecoportal::API::GraphQL::Model::PageUnion'
9
- class_resolver :connection_class, 'Ecoportal::API::GraphQL::Connection::Page'
10
-
11
- private
12
-
13
- def basic_block(&block)
14
- connection_block = block || default_connection_block
15
- proc {
16
- query(
17
- searchConf: :Search,
18
- after: :string,
19
- before: :string,
20
- first: :int,
21
- last: :int
22
- ) {
23
- currentOrganization {
24
- templates(
25
- searchConf: :searchConf,
26
- after: :after,
27
- before: :before,
28
- first: :first,
29
- last: :last,
30
- &connection_block
31
- )
32
- }
33
- }
34
- }
35
- end
36
-
37
- def default_connection_block
38
- proc {
39
- totalCount
40
- pageInfo {
41
- endCursor
42
- hasNextPage
43
- }
44
- nodes {
45
- spread :PageFields
46
- }
47
- }
48
- end
49
- end
50
- end
51
- end
52
- end
53
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Query
5
+ class Templates < Logic::QueryConnection
6
+ field_name :templates
7
+
8
+ class_resolver :item_class, 'Ecoportal::API::GraphQL::Model::PageUnion'
9
+ class_resolver :connection_class, 'Ecoportal::API::GraphQL::Connection::Page'
10
+
11
+ private
12
+
13
+ def basic_block(&block)
14
+ connection_block = block || default_connection_block
15
+ proc {
16
+ query(
17
+ searchConf: :Search,
18
+ after: :string,
19
+ before: :string,
20
+ first: :int,
21
+ last: :int
22
+ ) {
23
+ currentOrganization {
24
+ templates(
25
+ searchConf: :searchConf,
26
+ after: :after,
27
+ before: :before,
28
+ first: :first,
29
+ last: :last,
30
+ &connection_block
31
+ )
32
+ }
33
+ }
34
+ }
35
+ end
36
+
37
+ def default_connection_block
38
+ proc {
39
+ totalCount
40
+ pageInfo {
41
+ endCursor
42
+ hasNextPage
43
+ }
44
+ nodes {
45
+ spread :PageFields
46
+ }
47
+ }
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -19,6 +19,7 @@ require_relative 'query/page_activities'
19
19
  require_relative 'query/auth_logs'
20
20
  require_relative 'query/permissions'
21
21
  require_relative 'query/person_member_changelogs'
22
+ require_relative 'query/person_members'
22
23
  require_relative 'query/dashboard_search'
23
24
  require_relative 'query/page'
24
25
  require_relative 'query/pages'
@@ -31,3 +32,4 @@ require_relative 'query/file_upload_signature'
31
32
 
32
33
  require_relative 'query/page_with_forces'
33
34
  require_relative 'query/pages_workflow_commands'
35
+ require_relative 'query/template_change_log'
@@ -1,5 +1,5 @@
1
1
  module Ecoportal
2
2
  module API
3
- GRAPQL_VERSION = '2.0.0'.freeze
3
+ GRAPQL_VERSION = '2.2.0'.freeze
4
4
  end
5
5
  end
@@ -1,10 +1,10 @@
1
- require "ecoportal/api-v2"
2
- require "ecoportal/api/graphql_version"
3
-
4
- module Ecoportal
5
- module API
6
- end
7
- end
8
-
9
- require_relative "api/common.graphql"
10
- require_relative "api/graphql"
1
+ require "ecoportal/api-v2"
2
+ require "ecoportal/api/graphql_version"
3
+
4
+ module Ecoportal
5
+ module API
6
+ end
7
+ end
8
+
9
+ require_relative "api/common.graphql"
10
+ require_relative "api/graphql"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecoportal-api-graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
@@ -160,7 +160,7 @@ dependencies:
160
160
  version: '3.3'
161
161
  - - ">="
162
162
  - !ruby/object:Gem::Version
163
- version: 3.3.3
163
+ version: 3.3.5
164
164
  type: :runtime
165
165
  prerelease: false
166
166
  version_requirements: !ruby/object:Gem::Requirement
@@ -170,7 +170,7 @@ dependencies:
170
170
  version: '3.3'
171
171
  - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: 3.3.3
173
+ version: 3.3.5
174
174
  - !ruby/object:Gem::Dependency
175
175
  name: graphlient
176
176
  requirement: !ruby/object:Gem::Requirement
@@ -203,14 +203,12 @@ files:
203
203
  - lib/ecoportal/api-graphql.rb
204
204
  - lib/ecoportal/api/common.graphql.rb
205
205
  - lib/ecoportal/api/common/graphql.rb
206
- - lib/ecoportal/api/common/graphql/CLAUDE.md
207
206
  - lib/ecoportal/api/common/graphql/auth_service.rb
208
207
  - lib/ecoportal/api/common/graphql/class_helpers.rb
209
208
  - lib/ecoportal/api/common/graphql/client.rb
210
209
  - lib/ecoportal/api/common/graphql/hash_helpers.rb
211
210
  - lib/ecoportal/api/common/graphql/http_client.rb
212
211
  - lib/ecoportal/api/common/graphql/model.rb
213
- - lib/ecoportal/api/common/graphql/model/CLAUDE.md
214
212
  - lib/ecoportal/api/common/graphql/model/as_input.rb
215
213
  - lib/ecoportal/api/common/graphql/model/diffable.rb
216
214
  - lib/ecoportal/api/common/graphql/model/diffable/classic_diff_service.rb
@@ -221,9 +219,7 @@ files:
221
219
  - lib/ecoportal/api/common/graphql/patches.rb
222
220
  - lib/ecoportal/api/common/graphql/query_integration.rb
223
221
  - lib/ecoportal/api/graphql.rb
224
- - lib/ecoportal/api/graphql/CLAUDE.md
225
222
  - lib/ecoportal/api/graphql/base.rb
226
- - lib/ecoportal/api/graphql/base/CLAUDE.md
227
223
  - lib/ecoportal/api/graphql/base/action.rb
228
224
  - lib/ecoportal/api/graphql/base/action_category.rb
229
225
  - lib/ecoportal/api/graphql/base/action_event.rb
@@ -316,8 +312,8 @@ files:
316
312
  - lib/ecoportal/api/graphql/base/register.rb
317
313
  - lib/ecoportal/api/graphql/base/resource.rb
318
314
  - lib/ecoportal/api/graphql/base/template.rb
315
+ - lib/ecoportal/api/graphql/base/template/change_log_entry.rb
319
316
  - lib/ecoportal/api/graphql/builder.rb
320
- - lib/ecoportal/api/graphql/builder/CLAUDE.md
321
317
  - lib/ecoportal/api/graphql/builder/action.rb
322
318
  - lib/ecoportal/api/graphql/builder/contractor_entity.rb
323
319
  - lib/ecoportal/api/graphql/builder/kickstand.rb
@@ -358,6 +354,7 @@ files:
358
354
  - lib/ecoportal/api/graphql/connection/person_member_changelog.rb
359
355
  - lib/ecoportal/api/graphql/connection/preset_view.rb
360
356
  - lib/ecoportal/api/graphql/connection/preview_page.rb
357
+ - lib/ecoportal/api/graphql/connection/template_change_log.rb
361
358
  - lib/ecoportal/api/graphql/diff.rb
362
359
  - lib/ecoportal/api/graphql/diff/change.rb
363
360
  - lib/ecoportal/api/graphql/diff/command_synthesizer.rb
@@ -400,6 +397,7 @@ files:
400
397
  - lib/ecoportal/api/graphql/fragment/permissions.rb
401
398
  - lib/ecoportal/api/graphql/fragment/person_member_changelog.rb
402
399
  - lib/ecoportal/api/graphql/fragment/template.rb
400
+ - lib/ecoportal/api/graphql/fragment/template_change_log.rb
403
401
  - lib/ecoportal/api/graphql/helpers.rb
404
402
  - lib/ecoportal/api/graphql/helpers/locations_tree.rb
405
403
  - lib/ecoportal/api/graphql/input.rb
@@ -534,6 +532,7 @@ files:
534
532
  - lib/ecoportal/api/graphql/input/workflow_command/field_config/select.rb
535
533
  - lib/ecoportal/api/graphql/input/workflow_command/field_config/signature.rb
536
534
  - lib/ecoportal/api/graphql/input/workflow_command/field_config/table.rb
535
+ - lib/ecoportal/api/graphql/input/workflow_command/manage_copy_page_configuration.rb
537
536
  - lib/ecoportal/api/graphql/input/workflow_command/move_field.rb
538
537
  - lib/ecoportal/api/graphql/input/workflow_command/move_stage.rb
539
538
  - lib/ecoportal/api/graphql/input/workflow_command/move_viewable_field.rb
@@ -626,6 +625,7 @@ files:
626
625
  - lib/ecoportal/api/graphql/model/register.rb
627
626
  - lib/ecoportal/api/graphql/model/resource.rb
628
627
  - lib/ecoportal/api/graphql/model/template.rb
628
+ - lib/ecoportal/api/graphql/model/template/change_log_entry.rb
629
629
  - lib/ecoportal/api/graphql/model/user.rb
630
630
  - lib/ecoportal/api/graphql/mutation.rb
631
631
  - lib/ecoportal/api/graphql/mutation/action.rb
@@ -764,8 +764,10 @@ files:
764
764
  - lib/ecoportal/api/graphql/query/pages_workflow_commands.rb
765
765
  - lib/ecoportal/api/graphql/query/permissions.rb
766
766
  - lib/ecoportal/api/graphql/query/person_member_changelogs.rb
767
+ - lib/ecoportal/api/graphql/query/person_members.rb
767
768
  - lib/ecoportal/api/graphql/query/register_preset_views.rb
768
769
  - lib/ecoportal/api/graphql/query/register_preview_pages.rb
770
+ - lib/ecoportal/api/graphql/query/template_change_log.rb
769
771
  - lib/ecoportal/api/graphql/query/templates.rb
770
772
  - lib/ecoportal/api/graphql_version.rb
771
773
  homepage: https://www.ecoportal.com
@@ -1,36 +0,0 @@
1
- # common/graphql
2
-
3
- Shared HTTP transport, authentication, and base model infrastructure used by the gem — nothing here is EcoPortal-domain-specific.
4
-
5
- ## Contents
6
-
7
- | File / class | Purpose |
8
- |---|---|
9
- | `auth_service.rb` / `AuthService` | OAuth2 password + refresh-token flow; included in both client classes |
10
- | `client.rb` / `Client` | Graphlient-based GraphQL client (builds bearer-token headers, constructs endpoint URL) |
11
- | `http_client.rb` / `HttpClient` | Raw HTTP client (extends `Common::Client`); `execute` sends query strings + variables; supports v0–v3 + graphql API version modes |
12
- | `class_helpers.rb` / `ClassHelpers` | `becomes(klass)` instance casting + `const?` class helper |
13
- | `hash_helpers.rb` / `HashHelpers` | Deep key transforms (`keys_to_sym_deep`, `deep_dup`, `remove_nil_keys_deep`) — used by diff and input serialisation |
14
- | `query_integration.rb` / `QueryIntegration` | Class macro `query(:method, query_klass:)` that wires a named query method on `Model::Organization` |
15
- | `model.rb` / `Model` | Base model class: `DoubleModel` + `Diffable` + `AsInput`; all GraphQL models ultimately inherit this |
16
- | `patches.rb` | Reserved placeholder (empty) |
17
- | `model/diffable.rb` | `as_update` / `dirty?` — delegates to `DiffService` |
18
- | `model/as_input.rb` | `as_input` (instance) and `as_input(hash)` (class method) — converts diff to GraphQL mutation variables |
19
- | `model/diffable/diff_service.rb` | Main diff engine: flat classic diff + cascaded reduce through nested `GraphQL::Model` objects |
20
- | `model/diffable/classic_diff_service.rb` | Low-level change-data extraction (compares `curr_doc` vs `prev_doc`) |
21
- | `model/diffable/hash_diff.rb` | Hash equality / change detection helpers |
22
- | `model/diffable/hash_diff_nesting.rb` | Nested key path helpers (`dig_set!`, `dig_delete!`, `dig_path?`) |
23
-
24
- ## Conventions
25
-
26
- - `Client` is graphlient-based and used for schema introspection; `HttpClient` is the actual request sender used in production (set as `client.http_client`).
27
- - `HashHelpers` is used as both a module mixin (include) and directly via `HashHelpers.keys_to_sym_deep(...)`.
28
- - `DiffService` handles the `flat:` flag: `flat: true` does a single-level diff; `flat: false` (default) cascades through nested `GraphQL::Model` objects.
29
- - Root-class objects (`root!` declared) are excluded from cascaded diffs — they represent independent server entities.
30
- - `AsInput#as_input(target_class:)` delegates to `Input::X.from_model(self)` when a target class is given.
31
-
32
- ## Related
33
-
34
- - `../graphql/logic/base_model.rb` — adds `SnakeCamelAccess` on top of `Common::GraphQL::Model`
35
- - `../graphql/logic/input.rb` — `Logic::Input` base class built on top of `Model`
36
- - `../graphql/logic/base_query.rb` — consumes `HttpClient#execute` and `HashHelpers`
@@ -1,28 +0,0 @@
1
- # common/graphql/model
2
-
3
- Concerns that add dirty-tracking diff (`Diffable`) and mutation-input serialisation (`AsInput`) to the base `Common::GraphQL::Model`.
4
-
5
- ## Contents
6
-
7
- | File / class | Purpose |
8
- |---|---|
9
- | `diffable.rb` / `Model::Diffable` | Provides `as_update` (returns changed-field hash or nil) and `dirty?`; delegates to `DIFF_CLASS` (defaults to `DiffService`) |
10
- | `as_input.rb` / `Model::AsInput` | Instance `as_input` (wraps diff as mutation variables) + class-level `as_input(hash)` (key-sym + nil-id cleanup) |
11
- | `diffable/diff_service.rb` / `DiffService` | Primary diff engine: flat classic diff then cascaded reduce over nested `GraphQL::Model` children |
12
- | `diffable/classic_diff_service.rb` / `ClassicDiffService` | Low-level diff: compares `curr_doc` vs `prev_doc`, returns `{ id:, changed_field: new_value }` or nil |
13
- | `diffable/hash_diff.rb` / `HashDiff` | Primitive equality helpers used by `ClassicDiffService` |
14
- | `diffable/hash_diff_nesting.rb` / `HashDiffNesting` | Nested path helpers: `dig_set!`, `dig_delete!`, `dig_path?` used when building cascaded diff results |
15
-
16
- ## Conventions
17
-
18
- - `DIFF_CLASS = DiffService` is a constant on `Diffable` — subclasses can override it to swap diff strategies.
19
- - `DiffService` `flat: true` produces a single-level diff (current model only); `flat: false` (default) recurses via `cascaded_reduce` through nested `GraphQL::Model` objects.
20
- - Objects declared with `root!` in their class are skipped during cascaded diff — they are independent server entities (look-ups only).
21
- - `as_input` on a model calls `as_update` first; returns `nil` when nothing has changed so callers can skip the mutation.
22
- - `as_input(target_class:)` is the preferred path when a corresponding `Input::X` class exists — delegates to `target_class.from_model(self)`.
23
-
24
- ## Related
25
-
26
- - `../hash_helpers.rb` — `HashHelpers` used inside `DiffService` for key transforms
27
- - `../../graphql/logic/input.rb` — `Logic::Input.from_model` is the canonical consumer of `as_update`
28
- - `../../graphql/logic/base_model.rb` — all concrete models inherit this chain
@@ -1,37 +0,0 @@
1
- # graphql (gem root)
2
-
3
- The entry point for the gem: `Ecoportal::API::GraphQL` is the top-level class consumers instantiate; it holds the `client`, wires the `HttpClient`, and exposes builder/compat entry points.
4
-
5
- ## Contents
6
-
7
- | File / class | Purpose |
8
- |---|---|
9
- | `graphql.rb` / `GraphQL` | Main entry class — `initialize` builds `Client` + `HttpClient`, exposes `pages`, `registers`, `page`, `action`, `contractorEntity`, `locationStructure`, `currentOrganization` |
10
- | `graphql_version.rb` | Gem `VERSION` constant |
11
- | `base/` | Data-only model base classes (no resolvers, no `client`); see `base/CLAUDE.md` |
12
- | `builder/` | Facade builders that group related mutations under one object |
13
- | `compat/` | v2-compatible API layer for eco-helpers scripts |
14
- | `concerns/` | Shared Ruby mixins (`PageCompat`, `DataFieldAccess`, `SnakeCamelAccess`, `FragmentDefinitions`) |
15
- | `connection/` | `Logic::Connection` subclasses — typed pagination wrappers per entity |
16
- | `error/` | Domain error classes (`ValidationErrors`, `LocationsError`, `LocationsValidationError`) |
17
- | `fragment/` | GraphQL fragment heredoc strings + `Fragment.assemble(*syms)` |
18
- | `helpers/` | Utility modules (`LocationsTree`) |
19
- | `input/` | Mutation input serialisers; `SearchConf` is a chainable value object |
20
- | `interface/` | Abstract base models shared by `Base::` and `Model::` (e.g. `BasePage`, `LocationStructure`) |
21
- | `logic/` | Abstract base classes for queries, mutations, connections — no domain code |
22
- | `model/` | Concrete domain models with `class_resolver` wiring; subclass their `Base::` counterparts |
23
- | `mutation/` | Concrete mutation execution classes |
24
- | `payload/` | Mutation response payload wrappers |
25
- | `query/` | Concrete query execution classes |
26
-
27
- ## Conventions
28
-
29
- - Load order in `graphql.rb` matters: `logic/base_model` → `error` → `interface` → `base` → `model` → rest.
30
- - `#pages` returns `Compat::Pages` (v2-compatible); `#page` returns `Builder::Page` (raw mutation facade).
31
- - `#currentOrganization` returns `Model::Organization` class (not instance) with `client` set — query methods are class-level.
32
- - `GraphQL` (not `GraphQL`) is the namespace: use `Ecoportal::API::Graphql` alias only for legacy references; internal code uses `GraphQL`.
33
-
34
- ## Related
35
-
36
- - `../../common/graphql/` — HTTP client, auth, and base model infrastructure
37
- - Downstream: `eco-helpers` calls `.pages` and `.registers` exclusively via `Compat::*`
@@ -1,50 +0,0 @@
1
- # base
2
-
3
- Data-only model base classes — these declare fields and structure but hold no `client`, no query resolvers, and no business logic.
4
-
5
- ## Contents
6
-
7
- | File / class | Purpose |
8
- |---|---|
9
- | `action.rb` / `Base::Action` | Action fields (id, name, status, dates, assignee IDs); declared `root!` so excluded from cascaded diffs |
10
- | `action_category.rb` / `Base::ActionCategory` | Action category fields |
11
- | `contractor_entity.rb` / `Base::ContractorEntity` | Contractor entity fields |
12
- | `contractor_entity/member_changes.rb` | Nested member-changes sub-model |
13
- | `date_time.rb` / `Base::DateTime` | Wraps `{ dateTime:, timeZone: }` response objects |
14
- | `delta_result.rb` / `Base::DeltaResult` | `pageDelta` result item: `id` + `delta` enum (UPDATED/NOT_FOUND/NEW) |
15
- | `field.rb` / `Base::Field` | Generic field model |
16
- | `file_attachment.rb` / `Base::FileAttachment` | File attachment metadata |
17
- | `file_container.rb` / `Base::FileContainer` | File container wrapper |
18
- | `location_classification_type.rb` | Classification type (name) |
19
- | `location_node.rb` / `Base::LocationNode` | Location node with ancestors and classifications |
20
- | `location_structure.rb` / `Base::LocationStructure` | Location structure tree model |
21
- | `location_structure/draft.rb` | Draft structure model |
22
- | `location_structure/draft/structure.rb` | Nested draft structure detail |
23
- | `organization.rb` / `Base::Organization` | Thin organization base (id, name) |
24
- | `page.rb` | Namespace module; requires `basic`, `data_field`, `section`, `section_collection`, `phased` |
25
- | `page/basic.rb` / `Base::Page::Basic` | BasicPage — inherits `Interface::BasePage`; no extra fields |
26
- | `page/phased.rb` / `Base::Page::Phased` | PhasedPage — inherits `Interface::BasePage`; `embeds_many :stages` |
27
- | `page/phased/stage.rb` / `Base::Page::Phased::Stage` | Single stage: id, name, ordering, state, sections, components |
28
- | `page/section.rb` / `Base::Page::Section` | Section wrapper (ContentSection or SplitSection); merges left/right dataFields into `components` |
29
- | `page/section_collection.rb` / `Base::Page::SectionCollection` | Enumerable wrapper over sections; provides `get_by_type`, `get_by_heading`, `components` |
30
- | `page/data_field.rb` / `Base::Page::DataField` | Base data field class; `TYPE_MAP` dispatches `from_doc` to typed subclasses |
31
- | `page/data_field/` | 10 typed subclasses (PlainText, RichText, DateField, Number, Gauge, People, Select, Checklist, TagField, Geo) + `Collection` |
32
- | `page_info.rb` / `Base::PageInfo` | Cursor pagination info (endCursor, hasNextPage) |
33
- | `person_member.rb` / `Base::PersonMember` | Person member (name, email, id) |
34
- | `preview_page.rb` / `Base::PreviewPage` | Lightweight page preview (no field data) |
35
- | `resource.rb` / `Base::Resource` | Resource model (inherits `Logic::BaseModel` directly) |
36
- | `pages_workflow.rb` / `Base::PagesWorkflow` | PagesWorkflow top-level model: `autoPageCreationEnabled`, `fields` (RegisterField), `stages`; sub-files under `pages_workflow/` cover RegisterField, CallbackType, OperationInterface, TriggerInterface, and supporting types |
37
-
38
- ## Conventions
39
-
40
- - `Base::` classes are data-only: `passkey`, `passthrough`, `passboolean`, `passarray`, `embeds_one`, `embeds_many` only — no business methods, no resolvers.
41
- - `Model::` subclasses in `../model/` add `class_resolver` wiring and may add behaviour (e.g. `Model::Page::Phased#stages` wraps the array in `Compat::StageCollection`).
42
- - `Interface::BasePage` is the shared parent of both `Basic` and `Phased`; field declarations that apply to both page types live there.
43
- - `Base::Action` declares `root!` — this marks it as an independent server entity, excluded from cascaded `as_update` diffs.
44
- - When adding a new field to a page type, add it to `Interface::BasePage` if it applies to both, or to the appropriate `Base::Page::*` class.
45
-
46
- ## Related
47
-
48
- - `../interface/base_page.rb` — common parent for Basic + Phased page base classes
49
- - `../model/` — concrete models that subclass these bases
50
- - `../model/page_union.rb` — factory that dispatches `__typename` to `Model::Page::Basic` or `Model::Page::Phased`
@@ -1,65 +0,0 @@
1
- # builder
2
-
3
- Façade classes that group related mutations (and occasional queries) under a single object.
4
- Consumers interact with builders rather than instantiating `Logic::Mutation` / `Logic::Query`
5
- subclasses directly.
6
-
7
- ## Contents
8
-
9
- | File / class | Exposed from `GraphQL` as | Purpose |
10
- |---|---|---|
11
- | `action.rb` / `Builder::Action` | `GraphQL#action` | `create`, `update`, `archive` — wraps `Mutation::Action::*` |
12
- | `contractor_entity.rb` / `Builder::ContractorEntity` | `GraphQL#contractorEntity` | `create`, `update`, `destroy` — wraps `Mutation::ContractorEntity::*` |
13
- | `location_structure.rb` / `Builder::LocationStructure` | `GraphQL#locationStructure` | `nodeClassifications` (query), `applyCommandsInput`, `applyCommands`, `draft` sub-builder |
14
- | `location_structure/draft.rb` / `Builder::LocationStructure::Draft` | via `locationStructure.draft` | Location structure draft mutations |
15
- | `page.rb` / `Builder::Page` | `GraphQL#page` | Full page lifecycle: `update`, `archive`, `unarchive`, `build_from_template`, `create_from_template`, `create_draft`, `delete_draft`, `publish_draft`, `approve/reject/restart/undo/batch_update_review_task`, `execute_workflow_commands` (new), `execute_force_commands` (deprecated) |
16
- | `register.rb` / `Builder::Register` | *(not yet exposed)* | **Stub** — all methods commented out. No `Mutation::Register::*` classes exist yet. See TODO below. |
17
-
18
- ## How builders are exposed
19
-
20
- All active builders are wired in `lib/ecoportal/api/graphql.rb` as instance methods:
21
-
22
- ```ruby
23
- def page
24
- Builder::Page.new(client)
25
- end
26
- def action
27
- Builder::Action.new(client)
28
- end
29
- # etc.
30
- ```
31
-
32
- `registers` (note: plural, lowercase) returns `Compat::Registers`, **not** `Builder::Register`.
33
- `Builder::Register` is a stub and is not yet wired into the top-level class.
34
-
35
- ## Builder::Register — TODO
36
-
37
- `builder/register.rb` contains a stub class with all methods commented out.
38
- Before it can be implemented:
39
-
40
- 1. Research which Register mutations exist in the schema (`createRegister`,
41
- `updateRegister`, `archiveRegister`, etc.) — none are currently documented
42
- in `.ai-assistance/code/ecoportal_schema_reference.md`.
43
- 2. Create `Mutation::Register::*` + `Input::Register::*` + `Payload::Register::*`
44
- following the pattern of `Mutation::Page::*`.
45
- 3. Expose `Builder::Register` from `GraphQL#register` (distinct from `#registers`
46
- which is the compat search layer).
47
-
48
- Until then, register mutation callers must instantiate `Mutation::Register::*` directly
49
- (none exist yet), or use `Compat::Registers` for search.
50
-
51
- ## Conventions
52
-
53
- - One builder per domain entity. Sub-builders (e.g. `LocationStructure::Draft`) are
54
- nested under their parent builder's folder and exposed via a method on the parent.
55
- - Builder methods are snake_case public API; private helper methods are camelCase
56
- (matching the existing convention: `updateMutation`, `archiveMutation`, etc.).
57
- - Builders never hold state — each method instantiates a fresh mutation/query object.
58
- - Builders do not implement pagination; callers use `QueryConnection#each` for that.
59
-
60
- ## Related
61
-
62
- - `../mutation/` — concrete mutation classes that builders delegate to
63
- - `../query/` — concrete query classes (some builders also expose query shortcuts)
64
- - `../compat/` — v2-compatible layer (`Compat::Pages`, `Compat::Registers`) that
65
- wraps builders + queries with an eco-helpers-compatible interface