ecoportal-api-graphql 1.3.13 → 1.3.16

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 (275) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +87 -0
  3. data/lib/ecoportal/api/common/graphql/client.rb +0 -2
  4. data/lib/ecoportal/api/common/graphql/http_client.rb +6 -0
  5. data/lib/ecoportal/api/graphql/base/ai_summary_version.rb +17 -17
  6. data/lib/ecoportal/api/graphql/base/file_container.rb +14 -14
  7. data/lib/ecoportal/api/graphql/base/location_classification_type.rb +15 -15
  8. data/lib/ecoportal/api/graphql/base/location_structure.rb +27 -27
  9. data/lib/ecoportal/api/graphql/base/organization.rb +15 -15
  10. data/lib/ecoportal/api/graphql/base/page/task.rb +24 -0
  11. data/lib/ecoportal/api/graphql/base/page.rb +17 -16
  12. data/lib/ecoportal/api/graphql/base/template.rb +35 -0
  13. data/lib/ecoportal/api/graphql/base.rb +37 -35
  14. data/lib/ecoportal/api/graphql/builder/contractor_entity.rb +41 -41
  15. data/lib/ecoportal/api/graphql/compat/response.rb +35 -35
  16. data/lib/ecoportal/api/graphql/connection/action.rb +11 -11
  17. data/lib/ecoportal/api/graphql/connection/action_category.rb +11 -11
  18. data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +11 -11
  19. data/lib/ecoportal/api/graphql/connection/page.rb +11 -11
  20. data/lib/ecoportal/api/graphql/connection/person_member.rb +11 -11
  21. data/lib/ecoportal/api/graphql/connection/preview_page.rb +11 -11
  22. data/lib/ecoportal/api/graphql/connection.rb +17 -17
  23. data/lib/ecoportal/api/graphql/file_upload/client.rb +21 -10
  24. data/lib/ecoportal/api/graphql/fragment/field_configuration.rb +38 -0
  25. data/lib/ecoportal/api/graphql/fragment/force.rb +14 -10
  26. data/lib/ecoportal/api/graphql/fragment/location_node.rb +26 -26
  27. data/lib/ecoportal/api/graphql/fragment/page_task.rb +39 -0
  28. data/lib/ecoportal/api/graphql/fragment/template.rb +51 -0
  29. data/lib/ecoportal/api/graphql/fragment.rb +3 -0
  30. data/lib/ecoportal/api/graphql/input/contractor_entity.rb +14 -14
  31. data/lib/ecoportal/api/graphql/input/preset_view/update.rb +16 -16
  32. data/lib/ecoportal/api/graphql/input/workflow_command/add_stage.rb +18 -18
  33. data/lib/ecoportal/api/graphql/input/workflow_command/edit_field_configuration.rb +21 -21
  34. data/lib/ecoportal/api/graphql/input/workflow_command/edit_page.rb +28 -28
  35. data/lib/ecoportal/api/graphql/input/workflow_command/edit_page_creator_permissions.rb +18 -18
  36. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/cross_reference.rb +23 -23
  37. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/date.rb +20 -20
  38. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/image_gallery.rb +20 -20
  39. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/people.rb +24 -24
  40. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/plain_text.rb +20 -20
  41. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/rich_text.rb +20 -20
  42. data/lib/ecoportal/api/graphql/input/workflow_command/field_config/select.rb +20 -20
  43. data/lib/ecoportal/api/graphql/input/workflow_command/move_field.rb +18 -18
  44. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_forces.rb +18 -18
  45. data/lib/ecoportal/api/graphql/input/workflow_command/reorder_section.rb +18 -18
  46. data/lib/ecoportal/api/graphql/input/workflow_command.rb +251 -251
  47. data/lib/ecoportal/api/graphql/input.rb +24 -24
  48. data/lib/ecoportal/api/graphql/logic/connection.rb +34 -34
  49. data/lib/ecoportal/api/graphql/model/page/task.rb +16 -0
  50. data/lib/ecoportal/api/graphql/model/page.rb +16 -15
  51. data/lib/ecoportal/api/graphql/model/person_member.rb +15 -15
  52. data/lib/ecoportal/api/graphql/model/template.rb +15 -0
  53. data/lib/ecoportal/api/graphql/model.rb +32 -30
  54. data/lib/ecoportal/api/graphql/mutation/ai_summary/generate.rb +45 -45
  55. data/lib/ecoportal/api/graphql/mutation/ai_summary/submit_feedback.rb +40 -40
  56. data/lib/ecoportal/api/graphql/mutation/contractor_entity.rb +14 -14
  57. data/lib/ecoportal/api/graphql/mutation/page/approve_review_task.rb +40 -40
  58. data/lib/ecoportal/api/graphql/mutation/page/batch_update_review_task.rb +38 -40
  59. data/lib/ecoportal/api/graphql/mutation/page/create_draft.rb +38 -40
  60. data/lib/ecoportal/api/graphql/mutation/page/delete_draft.rb +38 -40
  61. data/lib/ecoportal/api/graphql/mutation/page/execute_force_commands.rb +7 -7
  62. data/lib/ecoportal/api/graphql/mutation/page/execute_workflow_commands.rb +8 -7
  63. data/lib/ecoportal/api/graphql/mutation/page/publish_draft.rb +38 -40
  64. data/lib/ecoportal/api/graphql/mutation/page/reject_review_task.rb +40 -40
  65. data/lib/ecoportal/api/graphql/mutation/page/restart_review_task.rb +40 -40
  66. data/lib/ecoportal/api/graphql/mutation/page/undo_review_task.rb +40 -40
  67. data/lib/ecoportal/api/graphql/mutation/preset_view/destroy.rb +34 -35
  68. data/lib/ecoportal/api/graphql/mutation/register/destroy.rb +35 -35
  69. data/lib/ecoportal/api/graphql/mutation/smart_fill/generate.rb +36 -36
  70. data/lib/ecoportal/api/graphql/mutation/smart_fill/submit_feedback.rb +40 -40
  71. data/lib/ecoportal/api/graphql/mutation/smart_fill.rb +13 -13
  72. data/lib/ecoportal/api/graphql/mutation/template/create_related_page.rb +46 -46
  73. data/lib/ecoportal/api/graphql/mutation/template/destroy_related_page.rb +1 -1
  74. data/lib/ecoportal/api/graphql/mutation/template/update_information.rb +1 -1
  75. data/lib/ecoportal/api/graphql/mutation.rb +20 -20
  76. data/lib/ecoportal/api/graphql/payload/contractor_entity.rb +14 -14
  77. data/lib/ecoportal/api/graphql/payload/ok_payload.rb +36 -21
  78. data/lib/ecoportal/api/graphql/payload/page/draft.rb +26 -13
  79. data/lib/ecoportal/api/graphql/payload/page/review_task.rb +13 -13
  80. data/lib/ecoportal/api/graphql/payload/page/review_task_batch.rb +23 -0
  81. data/lib/ecoportal/api/graphql/payload/page.rb +20 -19
  82. data/lib/ecoportal/api/graphql/payload/preset_view.rb +15 -11
  83. data/lib/ecoportal/api/graphql/payload/register.rb +15 -11
  84. data/lib/ecoportal/api/graphql/payload/template/create_related_page.rb +1 -1
  85. data/lib/ecoportal/api/graphql/payload/template/destroy_related_page.rb +1 -1
  86. data/lib/ecoportal/api/graphql/payload/template/update_information.rb +1 -1
  87. data/lib/ecoportal/api/graphql/payload.rb +23 -23
  88. data/lib/ecoportal/api/graphql/query/location_structures.rb +57 -57
  89. data/lib/ecoportal/api/graphql/query/page.rb +45 -45
  90. data/lib/ecoportal/api/graphql/query/page_with_forces.rb +9 -3
  91. data/lib/ecoportal/api/graphql/query/pages_workflow_commands.rb +9 -3
  92. data/lib/ecoportal/api/graphql/query/register_preset_views.rb +78 -78
  93. data/lib/ecoportal/api/graphql/query.rb +27 -27
  94. data/lib/ecoportal/api/graphql.rb +9 -5
  95. data/lib/ecoportal/api/graphql_version.rb +1 -1
  96. metadata +9 -180
  97. data/.ai-assistance/bridge/CLAUDE.md +0 -338
  98. data/.ai-assistance/bridge/archive/.gitkeep +0 -0
  99. data/.ai-assistance/bridge/archive/oscar-a1b2c3d-gitlab-mcp-doc-update.inbox.md +0 -29
  100. data/.ai-assistance/bridge/archive/oscar-a1b2c3d-gitlab-mcp-doc-update.outbox.md +0 -18
  101. data/.ai-assistance/bridge/archive/oscar-c912c25-gemini-design-review.inbox.md +0 -42
  102. data/.ai-assistance/bridge/archive/oscar-c912c25-gemini-design-review.outbox.md +0 -115
  103. data/.ai-assistance/bridge/context/gemini-review-prompt.txt +0 -48
  104. data/.ai-assistance/bridge/context/gemini-review-response.md +0 -104
  105. data/.ai-assistance/bridge/context/project.md +0 -42
  106. data/.ai-assistance/bridge/inbox/.gitkeep +0 -0
  107. data/.ai-assistance/bridge/outbox/.gitkeep +0 -0
  108. data/.ai-assistance/bridge/outbox/request-for-standards-discovery.md +0 -48
  109. data/.ai-assistance/bridge/queue/.gitkeep +0 -1
  110. data/.ai-assistance/capabilities/CLAUDE.md +0 -27
  111. data/.ai-assistance/capabilities/assumptions-log.md +0 -80
  112. data/.ai-assistance/capabilities/code.md +0 -47
  113. data/.ai-assistance/capabilities/connectors.md +0 -37
  114. data/.ai-assistance/capabilities/cowork.md +0 -55
  115. data/.ai-assistance/code/OVERVIEW.md +0 -155
  116. data/.ai-assistance/code/data_fields.md +0 -242
  117. data/.ai-assistance/code/dependencies.md +0 -151
  118. data/.ai-assistance/code/diff_as_input.md +0 -234
  119. data/.ai-assistance/code/diff_pairing_engine.md +0 -243
  120. data/.ai-assistance/code/diff_service_deep_dive.md +0 -192
  121. data/.ai-assistance/code/ecoPortal_architecture/00_overview_and_index.md +0 -55
  122. data/.ai-assistance/code/ecoPortal_architecture/01_terminology_dictionary.md +0 -181
  123. data/.ai-assistance/code/ecoPortal_architecture/02_data_model.md +0 -192
  124. data/.ai-assistance/code/ecoPortal_architecture/03_api_layers.md +0 -147
  125. data/.ai-assistance/code/ecoPortal_architecture/04_graphql_queries_mutations.md +0 -277
  126. data/.ai-assistance/code/ecoPortal_architecture/05_page_workflows.md +0 -200
  127. data/.ai-assistance/code/ecoPortal_architecture/06_search_and_filters.md +0 -228
  128. data/.ai-assistance/code/ecoPortal_architecture/07_data_fields.md +0 -197
  129. data/.ai-assistance/code/ecoPortal_architecture/08_stages_sections.md +0 -243
  130. data/.ai-assistance/code/ecoPortal_architecture/09_people_contractors_locations.md +0 -196
  131. data/.ai-assistance/code/ecoPortal_architecture/10_forces_workflow_builder.md +0 -132
  132. data/.ai-assistance/code/ecoPortal_architecture/11_integration_gems.md +0 -187
  133. data/.ai-assistance/code/ecoPortal_architecture/12_ai_documentation_sources_gaps.md +0 -236
  134. data/.ai-assistance/code/ecoPortal_architecture/13_ai_infrastructure.md +0 -183
  135. data/.ai-assistance/code/ecoportal_schema_reference.md +0 -240
  136. data/.ai-assistance/code/filter_contract_matrix.md +0 -177
  137. data/.ai-assistance/code/graphql_domain_knowledge.md +0 -240
  138. data/.ai-assistance/code/refactoring/datafield-readwrite-shape-asymmetry.md +0 -71
  139. data/.ai-assistance/code/refactoring/opportunities.md +0 -251
  140. data/.ai-assistance/code/schema_analysis.md +0 -321
  141. data/.ai-assistance/code/search_filters.md +0 -868
  142. data/.ai-assistance/code/spec_coverage.md +0 -73
  143. data/.ai-assistance/code/template_diff_pairing_domain.md +0 -175
  144. data/.ai-assistance/code/workflow-command-guide.md +0 -466
  145. data/.ai-assistance/code/workflow-space.md +0 -353
  146. data/.ai-assistance/conventions/CLAUDE.md +0 -30
  147. data/.ai-assistance/conventions/code-working-tree-protocol.md +0 -199
  148. data/.ai-assistance/conventions/gitignore-rules.md +0 -42
  149. data/.ai-assistance/conventions/permission-guidance.md +0 -120
  150. data/.ai-assistance/integrations/README.md +0 -70
  151. data/.ai-assistance/integrations/gitkraken-mcp.md +0 -107
  152. data/.ai-assistance/integrations/gitlab-mcp.md +0 -123
  153. data/.ai-assistance/integrations/local-git.md +0 -60
  154. data/.ai-assistance/local_paths.example.md +0 -17
  155. data/.ai-assistance/projects/TODO.md +0 -118
  156. data/.ai-assistance/projects/api-v2-to-graphql-migration/DECISIONS.md +0 -168
  157. data/.ai-assistance/projects/api-v2-to-graphql-migration/INTENT.md +0 -60
  158. data/.ai-assistance/projects/api-v2-to-graphql-migration/TODO.md +0 -267
  159. data/.ai-assistance/projects/api-v2-to-graphql-migration/UPSTREAM.md +0 -53
  160. data/.ai-assistance/projects/api-v2-to-graphql-migration/notes/csv-template-pipeline-design.md +0 -102
  161. data/.ai-assistance/projects/api-v2-to-graphql-migration/notes/cutover-usecase-gap-audit.md +0 -139
  162. data/.ai-assistance/projects/compat-layer-audit/COMPAT_AUDIT.md +0 -244
  163. data/.ai-assistance/projects/dynamic-model-generation/INTENT.md +0 -93
  164. data/.ai-assistance/projects/eco-helpers-compat/INTENT.md +0 -244
  165. data/.ai-assistance/projects/eco-helpers-compat/MIGRATION_GUIDE.md +0 -266
  166. data/.ai-assistance/projects/eco-helpers-compat/TODO.md +0 -86
  167. data/.ai-assistance/projects/ecoportal-api-v2-doublemodel-review/INTENT.md +0 -101
  168. data/.ai-assistance/projects/graphql-agent/GAP_ANALYSIS.md +0 -177
  169. data/.ai-assistance/projects/ooze-graphql-native-migration/DECISIONS.md +0 -161
  170. data/.ai-assistance/projects/ooze-graphql-native-migration/INTENT.md +0 -125
  171. data/.ai-assistance/projects/ooze-graphql-native-migration/INVENTORY.md +0 -136
  172. data/.ai-assistance/projects/ooze-graphql-native-migration/RISKS.md +0 -126
  173. data/.ai-assistance/projects/ooze-graphql-native-migration/TODO.md +0 -261
  174. data/.ai-assistance/projects/ooze-graphql-native-migration/analysis/2026-06-30-cutover-workflow-deep-review.md +0 -122
  175. data/.ai-assistance/projects/ooze-graphql-native-migration/analysis/2026-07-01-forces-via-workflow-commands-miss-rca.md +0 -148
  176. data/.ai-assistance/projects/page-model/DECISIONS.md +0 -245
  177. data/.ai-assistance/projects/page-model/TODO.md +0 -190
  178. data/.ai-assistance/projects/qa-services-delivery/DECISIONS.md +0 -93
  179. data/.ai-assistance/projects/qa-services-delivery/INTENT.md +0 -76
  180. data/.ai-assistance/projects/qa-services-delivery/PHASE3-SCOPE.md +0 -115
  181. data/.ai-assistance/projects/qa-services-delivery/ROADMAP.md +0 -99
  182. data/.ai-assistance/projects/qa-services-delivery/TODO.md +0 -81
  183. data/.ai-assistance/projects/search-filter-builder/INTENT.md +0 -107
  184. data/.ai-assistance/projects/search-filter-builder/TODO.md +0 -131
  185. data/.ai-assistance/projects/template-automatic-build-maintenance/INTENT.md +0 -87
  186. data/.ai-assistance/projects/template-automatic-build-maintenance/TODO.md +0 -108
  187. data/.ai-assistance/projects/template-diff-deploy/INTENT.md +0 -12
  188. data/.ai-assistance/projects/template-diff-deploy/TODO.md +0 -9
  189. data/.ai-assistance/projects/template-maintenance/DESIGN.md +0 -134
  190. data/.ai-assistance/projects/template-maintenance/PHASE0-FINDINGS.md +0 -93
  191. data/.ai-assistance/projects/template-maintenance/README.md +0 -14
  192. data/.ai-assistance/projects/template-model-logic/CATEGORY_CATALOG.md +0 -236
  193. data/.ai-assistance/projects/template-model-logic/CLASSIFICATION_SPIKE.md +0 -243
  194. data/.ai-assistance/projects/template-model-logic/DESIGN_NOTE.md +0 -154
  195. data/.ai-assistance/projects/workflow-space/TODO.md +0 -213
  196. data/.ai-assistance/reinstall-claude-desktop-windows.md +0 -136
  197. data/.ai-assistance/scripts/CLAUDE.md +0 -150
  198. data/.ai-assistance/scripts/bridge-inbox-check.sh +0 -75
  199. data/.ai-assistance/scripts/bridge-init.sh +0 -86
  200. data/.ai-assistance/scripts/bridge-status.sh +0 -44
  201. data/.ai-assistance/scripts/capabilities-check.ts +0 -104
  202. data/.ai-assistance/scripts/check-outbox.sh +0 -43
  203. data/.ai-assistance/scripts/dep_graph.rb +0 -91
  204. data/.ai-assistance/scripts/lock-acquire.sh +0 -103
  205. data/.ai-assistance/scripts/lock-multi.sh +0 -124
  206. data/.ai-assistance/scripts/lock-queue.sh +0 -94
  207. data/.ai-assistance/scripts/setup-mcps.test.ts +0 -188
  208. data/.ai-assistance/scripts/setup-mcps.ts +0 -234
  209. data/.ai-assistance/scripts/task-complete.ts +0 -74
  210. data/.ai-assistance/scripts/task-create.ts +0 -75
  211. data/.ai-assistance/scripts/task-read.ts +0 -125
  212. data/.ai-assistance/scripts/token-logger.js +0 -220
  213. data/.ai-assistance/scripts/token-report.ts +0 -158
  214. data/.ai-assistance/scripts/token-session-start.js +0 -66
  215. data/.ai-assistance/skills/ai-instructions/SKILL.md +0 -48
  216. data/.ai-assistance/skills/code-specs/SKILL.md +0 -69
  217. data/.ai-assistance/skills/corporate-policies/SKILL.md +0 -201
  218. data/.ai-assistance/skills/dep-graph/SKILL.md +0 -139
  219. data/.ai-assistance/skills/ep-ai-manager/SKILL.md +0 -417
  220. data/.ai-assistance/skills/gemini-assist/SKILL.md +0 -63
  221. data/.ai-assistance/skills/gemini-assist/gemini-mcp-server.js +0 -205
  222. data/.ai-assistance/skills/gemini-assist/gemini_ask.py +0 -1
  223. data/.ai-assistance/skills/gemini-assist/gemini_ask.rb +0 -240
  224. data/.ai-assistance/skills/gemini-assist/prompts/cycle_end_review.txt +0 -25
  225. data/.ai-assistance/skills/graphql-schema-analysis/SKILL.md +0 -261
  226. data/.ai-assistance/skills/procedural-memory/SKILL.md +0 -319
  227. data/.ai-assistance/skills/project-cycle/SKILL.md +0 -177
  228. data/.ai-assistance/skills/project-self-docs/SKILL.md +0 -181
  229. data/.ai-assistance/skills/project-self-docs/scripts/self_docs_scan.py +0 -378
  230. data/.ai-assistance/skills/refactor/SKILL.md +0 -62
  231. data/.ai-assistance/skills/rubocop/SKILL.md +0 -93
  232. data/.ai-assistance/skills/ruby-scripting/SKILL.md +0 -215
  233. data/.ai-assistance/skills/spec-generation/SKILL.md +0 -72
  234. data/.ai-assistance/standards-version.json +0 -22
  235. data/.ai-assistance/token-budget.json +0 -32
  236. data/.ai-assistance/version.json +0 -39
  237. data/.claude/settings.json +0 -150
  238. data/.env.example +0 -18
  239. data/.gitattributes +0 -15
  240. data/.gitignore +0 -37
  241. data/.gitlab-ci.yml +0 -45
  242. data/.markdownlint.json +0 -4
  243. data/.rspec +0 -3
  244. data/.rubocop.yml +0 -121
  245. data/.ruby-version +0 -1
  246. data/.yardopts +0 -10
  247. data/CLAUDE.md +0 -243
  248. data/Gemfile +0 -30
  249. data/Rakefile +0 -90
  250. data/bin/console +0 -14
  251. data/bin/setup +0 -8
  252. data/bin/setup.ps1 +0 -6
  253. data/docs/self-docs/ARCHITECTURE.md +0 -88
  254. data/docs/self-docs/CHANGES.jsonl +0 -12
  255. data/docs/self-docs/COMPLIANCE.md +0 -79
  256. data/docs/self-docs/CONVENTIONS.md +0 -74
  257. data/docs/self-docs/INTEGRATIONS.md +0 -65
  258. data/docs/self-docs/OPERATIONS.md +0 -76
  259. data/docs/self-docs/OVERVIEW.md +0 -64
  260. data/docs/self-docs/STATUS.md +0 -73
  261. data/docs/self-docs/self-docs-index.json +0 -51
  262. data/docs/worklog.md +0 -977
  263. data/ecoportal-api-graphql.gemspec +0 -40
  264. data/scripts/auto-worker-scheduler.sh +0 -386
  265. data/tests/actions_get.rb +0 -7
  266. data/tests/contractor_entities_get.rb +0 -20
  267. data/tests/contractor_entity_create.rb +0 -19
  268. data/tests/contractor_entity_udpate.rb +0 -20
  269. data/tests/dump_page_model.rb +0 -74
  270. data/tests/dump_template_model.rb +0 -90
  271. data/tests/loc_structure_get.rb +0 -10
  272. data/tests/loc_structure_update.rb +0 -51
  273. data/tests/loc_structures_get.rb +0 -15
  274. data/tests/local_libs.rb +0 -20
  275. data/tests/validate_queries.rb +0 -127
@@ -1,34 +1,34 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Logic
5
- class Connection < Logic::BaseModel
6
- class GenericNode
7
- def initialize(*_args, **_kargs)
8
- raise "Missuse error. You should define a node_class for a class that inherits from GraphqlConnection class."
9
- end
10
- end
11
-
12
- include Enumerable
13
-
14
- class_resolver :node_class, GenericNode
15
-
16
- passthrough :edges
17
- passthrough :totalCount
18
- embeds_many :nodes, klass: :node_class
19
- embeds_one :pageInfo, klass: Base::PageInfo
20
-
21
- def empty?
22
- count < 1
23
- end
24
-
25
- def each(&block)
26
- return to_enum(:each) unless block
27
-
28
- nodes.each(&block)
29
- end
30
- end
31
- end
32
- end
33
- end
34
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Logic
5
+ class Connection < Logic::BaseModel
6
+ class GenericNode
7
+ def initialize(*_args, **_kargs)
8
+ raise "Missuse error. You should define a node_class for a class that inherits from GraphqlConnection class."
9
+ end
10
+ end
11
+
12
+ include Enumerable
13
+
14
+ class_resolver :node_class, GenericNode
15
+
16
+ passthrough :edges
17
+ passthrough :totalCount
18
+ embeds_many :nodes, klass: :node_class
19
+ embeds_one :pageInfo, klass: Base::PageInfo
20
+
21
+ def empty?
22
+ count < 1
23
+ end
24
+
25
+ def each(&block)
26
+ return to_enum(:each) unless block
27
+
28
+ nodes.each(&block)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,16 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Model
5
+ module Page
6
+ # Concrete `Base::Page::Task` — adds the typed `subject` (the page the task belongs
7
+ # to), which the base class cannot declare because `Model::PageUnion` lives one layer
8
+ # up. Nullable: the caller may select the task without its subject.
9
+ class Task < Base::Page::Task
10
+ embeds_one :subject, klass: 'Ecoportal::API::GraphQL::Model::PageUnion', nullable: true
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,15 +1,16 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Model
5
- module Page
6
- end
7
- end
8
- end
9
- end
10
- end
11
-
12
- require_relative 'page/basic'
13
- require_relative 'page/data_field'
14
- require_relative 'page/section'
15
- require_relative 'page/phased'
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Model
5
+ module Page
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
11
+
12
+ require_relative 'page/basic'
13
+ require_relative 'page/data_field'
14
+ require_relative 'page/section'
15
+ require_relative 'page/phased'
16
+ require_relative 'page/task'
@@ -1,15 +1,15 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Model
5
- class PersonMember < Base::PersonMember
6
- embeds_one :contractorOrganization, klass: "Ecoportal::API::GraphQL::Model::ContractorEntity"
7
- embeds_one :account, klass: Model::Account
8
-
9
- # embeds_many :privateFields, enum_class: Ecoportal::API::GraphQL::Model::MemberSchemaFields
10
- # embeds_many :publicFields, enum_class: Ecoportal::API::GraphQL::Model::MemberSchemaFields
11
- end
12
- end
13
- end
14
- end
15
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Model
5
+ class PersonMember < Base::PersonMember
6
+ embeds_one :contractorOrganization, klass: "Ecoportal::API::GraphQL::Model::ContractorEntity"
7
+ embeds_one :account, klass: Model::Account
8
+
9
+ # embeds_many :privateFields, enum_class: Ecoportal::API::GraphQL::Model::MemberSchemaFields
10
+ # embeds_many :publicFields, enum_class: Ecoportal::API::GraphQL::Model::MemberSchemaFields
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Model
5
+ # Concrete counterparts of `Base::Template::*` (see there for the page-vs-Template
6
+ # type asymmetry). No extra wiring needed — both are flat, read-only models.
7
+ module Template
8
+ class Information < Base::Template::Information; end
9
+
10
+ class RelatedPages < Base::Template::RelatedPages; end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,30 +1,32 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Model
5
- end
6
- end
7
- end
8
- end
9
-
10
- require_relative 'model/location_node'
11
- require_relative 'model/location_structure'
12
- require_relative 'model/account'
13
- require_relative 'model/user'
14
- require_relative 'model/person_member'
15
- require_relative 'model/file_attachment'
16
- require_relative 'model/file_container'
17
- require_relative 'model/field'
18
- require_relative 'model/page'
19
- require_relative 'model/page_union'
20
- require_relative 'model/preview_page'
21
- require_relative 'model/resource'
22
- require_relative 'model/action'
23
- require_relative 'model/contractor_entity'
24
- require_relative 'model/organization'
25
-
26
- require_relative 'model/register'
27
- require_relative 'model/preset_view'
28
-
29
- require_relative 'model/ai_summary_version'
30
- require_relative 'model/pages_workflow'
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Model
5
+ end
6
+ end
7
+ end
8
+ end
9
+
10
+ require_relative 'model/location_node'
11
+ require_relative 'model/location_structure'
12
+ require_relative 'model/account'
13
+ require_relative 'model/user'
14
+ require_relative 'model/person_member'
15
+ require_relative 'model/file_attachment'
16
+ require_relative 'model/file_container'
17
+ require_relative 'model/field'
18
+ require_relative 'model/page'
19
+ require_relative 'model/page_union'
20
+ require_relative 'model/preview_page'
21
+ require_relative 'model/resource'
22
+ require_relative 'model/action'
23
+ require_relative 'model/contractor_entity'
24
+ require_relative 'model/organization'
25
+
26
+ require_relative 'model/register'
27
+ require_relative 'model/preset_view'
28
+
29
+ require_relative 'model/ai_summary_version'
30
+ require_relative 'model/pages_workflow'
31
+
32
+ require_relative 'model/template'
@@ -1,45 +1,45 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Mutation
5
- module AiSummary
6
- # Triggers AI summary generation for a page or stage.
7
- # Returns an AiSummaryVersion with the generated text and token usage.
8
- # Generation is synchronous — the response contains the result or an error.
9
- #
10
- # stageId is optional: omit for page-level summary, provide for stage-level.
11
- class Generate < Logic::Mutation
12
- field_name :generateAiSummary
13
-
14
- class_resolver :payload_class, 'Ecoportal::API::GraphQL::Payload::AiSummaryGenerate'
15
-
16
- private
17
-
18
- def basic_block(&block)
19
- payload_block = block || default_payload_block
20
- proc {
21
- mutation(pageId: :id!, stageId: :id) {
22
- generateAiSummary(pageId: :pageId, stageId: :stageId, &payload_block)
23
- }
24
- }
25
- end
26
-
27
- def default_payload_block
28
- proc {
29
- errors { details fullMessages }
30
- item {
31
- id
32
- aiSummary
33
- status
34
- inputTokens
35
- outputTokens
36
- totalTokens
37
- }
38
- }
39
- end
40
- end
41
- end
42
- end
43
- end
44
- end
45
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Mutation
5
+ module AiSummary
6
+ # Triggers AI summary generation for a page or stage.
7
+ # Returns an AiSummaryVersion with the generated text and token usage.
8
+ # Generation is synchronous — the response contains the result or an error.
9
+ #
10
+ # stageId is optional: omit for page-level summary, provide for stage-level.
11
+ class Generate < Logic::Mutation
12
+ field_name :generateAiSummary
13
+
14
+ class_resolver :payload_class, 'Ecoportal::API::GraphQL::Payload::AiSummaryGenerate'
15
+
16
+ private
17
+
18
+ def basic_block(&block)
19
+ payload_block = block || default_payload_block
20
+ proc {
21
+ mutation(pageId: :id!, stageId: :id) {
22
+ generateAiSummary(pageId: :pageId, stageId: :stageId, &payload_block)
23
+ }
24
+ }
25
+ end
26
+
27
+ def default_payload_block
28
+ proc {
29
+ errors { details fullMessages }
30
+ item {
31
+ id
32
+ aiSummary
33
+ status
34
+ inputTokens
35
+ outputTokens
36
+ totalTokens
37
+ }
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -1,40 +1,40 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Mutation
5
- module AiSummary
6
- # Submit a thumbs-up / thumbs-down rating on an AI summary version.
7
- # sentiment: "THUMBS_UP" | "THUMBS_DOWN"
8
- # aiSummaryVersionId: returned from generateAiSummary.item.id
9
- class SubmitFeedback < Logic::Mutation
10
- field_name :submitAiSummaryFeedback
11
-
12
- class_resolver :payload_class, 'Ecoportal::API::GraphQL::Payload::OkPayload'
13
-
14
- private
15
-
16
- def basic_block(&block)
17
- payload_block = block || default_payload_block
18
- proc {
19
- mutation(aiSummaryVersionId: :id!, sentiment: :AiSummarySentimentEnum!) {
20
- submitAiSummaryFeedback(
21
- aiSummaryVersionId: :aiSummaryVersionId,
22
- sentiment: :sentiment,
23
- &payload_block
24
- )
25
- }
26
- }
27
- end
28
-
29
- def default_payload_block
30
- proc {
31
- ok
32
- errors { details fullMessages }
33
- }
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Mutation
5
+ module AiSummary
6
+ # Submit a thumbs-up / thumbs-down rating on an AI summary version.
7
+ # sentiment: "THUMBS_UP" | "THUMBS_DOWN"
8
+ # aiSummaryVersionId: returned from generateAiSummary.item.id
9
+ class SubmitFeedback < Logic::Mutation
10
+ field_name :submitAiSummaryFeedback
11
+
12
+ class_resolver :payload_class, 'Ecoportal::API::GraphQL::Payload::OkPayload'
13
+
14
+ private
15
+
16
+ def basic_block(&block)
17
+ payload_block = block || default_payload_block
18
+ proc {
19
+ mutation(aiSummaryVersionId: :id!, sentiment: :AiSummarySentimentEnum!) {
20
+ submitAiSummaryFeedback(
21
+ aiSummaryVersionId: :aiSummaryVersionId,
22
+ sentiment: :sentiment,
23
+ &payload_block
24
+ )
25
+ }
26
+ }
27
+ end
28
+
29
+ def default_payload_block
30
+ proc {
31
+ ok
32
+ errors { details fullMessages }
33
+ }
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,14 +1,14 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Mutation
5
- module ContractorEntity
6
- end
7
- end
8
- end
9
- end
10
- end
11
-
12
- require_relative 'contractor_entity/create'
13
- require_relative 'contractor_entity/destroy'
14
- require_relative 'contractor_entity/update'
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Mutation
5
+ module ContractorEntity
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
11
+
12
+ require_relative 'contractor_entity/create'
13
+ require_relative 'contractor_entity/destroy'
14
+ require_relative 'contractor_entity/update'
@@ -1,40 +1,40 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Mutation
5
- module Page
6
- class ApproveReviewTask < Logic::Mutation
7
- field_name :approveReviewPageTask
8
-
9
- class_resolver :payload_class, 'Ecoportal::API::GraphQL::Payload::Page::ReviewTask'
10
- class_resolver :input_class, 'Ecoportal::API::GraphQL::Input::Page::ReviewTask'
11
-
12
- private
13
-
14
- def basic_block(&block)
15
- payload_block = block || default_payload_block
16
- proc {
17
- mutation(input: :ApproveReviewPageTaskInput!) {
18
- approveReviewPageTask(input: :input, &payload_block)
19
- }
20
- }
21
- end
22
-
23
- def default_payload_block
24
- proc {
25
- clientMutationId
26
- errors {
27
- details
28
- fullMessages
29
- }
30
- item {
31
- spread :PageFields
32
- }
33
- }
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Mutation
5
+ module Page
6
+ class ApproveReviewTask < Logic::Mutation
7
+ field_name :approveReviewPageTask
8
+
9
+ class_resolver :payload_class, 'Ecoportal::API::GraphQL::Payload::Page::ReviewTask'
10
+ class_resolver :input_class, 'Ecoportal::API::GraphQL::Input::Page::ReviewTask'
11
+
12
+ private
13
+
14
+ def basic_block(&block)
15
+ payload_block = block || default_payload_block
16
+ proc {
17
+ mutation(input: :ApproveReviewPageTaskInput!) {
18
+ approveReviewPageTask(input: :input, &payload_block)
19
+ }
20
+ }
21
+ end
22
+
23
+ def default_payload_block
24
+ proc {
25
+ clientMutationId
26
+ errors {
27
+ details
28
+ fullMessages
29
+ }
30
+ item {
31
+ spread :PageTaskFields
32
+ }
33
+ }
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,40 +1,38 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Mutation
5
- module Page
6
- class BatchUpdateReviewTask < Logic::Mutation
7
- field_name :batchUpdateReviewPageTask
8
-
9
- class_resolver :payload_class, 'Ecoportal::API::GraphQL::Payload::Page::ReviewTask'
10
- class_resolver :input_class, 'Ecoportal::API::GraphQL::Input::Page::ReviewTask'
11
-
12
- private
13
-
14
- def basic_block(&block)
15
- payload_block = block || default_payload_block
16
- proc {
17
- mutation(input: :BatchUpdateReviewPageTaskInput!) {
18
- batchUpdateReviewPageTask(input: :input, &payload_block)
19
- }
20
- }
21
- end
22
-
23
- def default_payload_block
24
- proc {
25
- clientMutationId
26
- errors {
27
- details
28
- fullMessages
29
- }
30
- item {
31
- spread :PageFields
32
- }
33
- }
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Mutation
5
+ module Page
6
+ class BatchUpdateReviewTask < Logic::Mutation
7
+ field_name :batchUpdateReviewPageTask
8
+
9
+ class_resolver :payload_class, 'Ecoportal::API::GraphQL::Payload::Page::ReviewTaskBatch'
10
+ class_resolver :input_class, 'Ecoportal::API::GraphQL::Input::Page::ReviewTask'
11
+
12
+ private
13
+
14
+ def basic_block(&block)
15
+ payload_block = block || default_payload_block
16
+ proc {
17
+ mutation(input: :BatchUpdateReviewPageTaskInput!) {
18
+ batchUpdateReviewPageTask(input: :input, &payload_block)
19
+ }
20
+ }
21
+ end
22
+
23
+ def default_payload_block
24
+ proc {
25
+ clientMutationId
26
+ errors {
27
+ details
28
+ fullMessages
29
+ }
30
+ count
31
+ }
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,40 +1,38 @@
1
- module Ecoportal
2
- module API
3
- class GraphQL
4
- module Mutation
5
- module Page
6
- class CreateDraft < Logic::Mutation
7
- field_name :createPageDraft
8
-
9
- class_resolver :payload_class, 'Ecoportal::API::GraphQL::Payload::Page::Draft'
10
- class_resolver :input_class, 'Ecoportal::API::GraphQL::Input::Page::CreateDraft'
11
-
12
- private
13
-
14
- def basic_block(&block)
15
- payload_block = block || default_payload_block
16
- proc {
17
- mutation(input: :CreatePageDraftInput!) {
18
- createPageDraft(input: :input, &payload_block)
19
- }
20
- }
21
- end
22
-
23
- def default_payload_block
24
- proc {
25
- clientMutationId
26
- errors {
27
- details
28
- fullMessages
29
- }
30
- item {
31
- spread :PageFields
32
- }
33
- }
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
1
+ module Ecoportal
2
+ module API
3
+ class GraphQL
4
+ module Mutation
5
+ module Page
6
+ class CreateDraft < Logic::Mutation
7
+ field_name :createPageDraft
8
+
9
+ class_resolver :payload_class, 'Ecoportal::API::GraphQL::Payload::Page::Draft'
10
+ class_resolver :input_class, 'Ecoportal::API::GraphQL::Input::Page::CreateDraft'
11
+
12
+ private
13
+
14
+ def basic_block(&block)
15
+ payload_block = block || default_payload_block
16
+ proc {
17
+ mutation(input: :CreatePageDraftInput!) {
18
+ createPageDraft(input: :input, &payload_block)
19
+ }
20
+ }
21
+ end
22
+
23
+ def default_payload_block
24
+ proc {
25
+ clientMutationId
26
+ errors {
27
+ details
28
+ fullMessages
29
+ }
30
+ id
31
+ }
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end