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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +384 -15
- data/LICENSE +21 -21
- data/README.md +24 -24
- data/lib/ecoportal/api/common/graphql/CLAUDE.md +36 -0
- data/lib/ecoportal/api/common/graphql/auth_service.rb +115 -115
- data/lib/ecoportal/api/common/graphql/class_helpers.rb +46 -46
- data/lib/ecoportal/api/common/graphql/client.rb +69 -69
- data/lib/ecoportal/api/common/graphql/hash_helpers.rb +105 -105
- data/lib/ecoportal/api/common/graphql/model/CLAUDE.md +28 -0
- data/lib/ecoportal/api/common/graphql/model/as_input.rb +54 -54
- data/lib/ecoportal/api/common/graphql/model/diffable/classic_diff_service.rb +49 -49
- data/lib/ecoportal/api/common/graphql/model/diffable/diff_service.rb +188 -188
- data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff.rb +55 -55
- data/lib/ecoportal/api/common/graphql/model/diffable/hash_diff_nesting.rb +295 -295
- data/lib/ecoportal/api/common/graphql/model/diffable/leaf_diff_service.rb +97 -0
- data/lib/ecoportal/api/common/graphql/model/diffable.rb +1 -0
- data/lib/ecoportal/api/common/graphql/model.rb +17 -17
- data/lib/ecoportal/api/common/graphql/patches.rb +1 -1
- data/lib/ecoportal/api/common/graphql/query_integration.rb +45 -45
- data/lib/ecoportal/api/common/graphql.rb +16 -16
- data/lib/ecoportal/api/common.graphql.rb +8 -8
- data/lib/ecoportal/api/graphql/CLAUDE.md +37 -0
- data/lib/ecoportal/api/graphql/base/CLAUDE.md +50 -0
- data/lib/ecoportal/api/graphql/base/action.rb +1 -1
- data/lib/ecoportal/api/graphql/base/action_category.rb +15 -15
- data/lib/ecoportal/api/graphql/base/action_event.rb +23 -0
- data/lib/ecoportal/api/graphql/base/action_event_page.rb +16 -0
- data/lib/ecoportal/api/graphql/base/activity.rb +38 -0
- data/lib/ecoportal/api/graphql/base/activity_log.rb +38 -0
- data/lib/ecoportal/api/graphql/base/ai_summary_version.rb +13 -8
- data/lib/ecoportal/api/graphql/base/auth_log.rb +24 -0
- data/lib/ecoportal/api/graphql/base/authorization_result.rb +20 -0
- data/lib/ecoportal/api/graphql/base/contractor_entity/member_changes.rb +17 -5
- data/lib/ecoportal/api/graphql/base/contractor_entity.rb +24 -24
- data/lib/ecoportal/api/graphql/base/date_time.rb +12 -12
- data/lib/ecoportal/api/graphql/base/delta_result.rb +16 -16
- data/lib/ecoportal/api/graphql/base/field.rb +12 -12
- data/lib/ecoportal/api/graphql/base/file_attachment.rb +15 -15
- data/lib/ecoportal/api/graphql/base/file_container.rb +12 -4
- data/lib/ecoportal/api/graphql/base/location_classification_type.rb +2 -0
- data/lib/ecoportal/api/graphql/base/location_node.rb +14 -14
- data/lib/ecoportal/api/graphql/base/location_structure/draft/structure.rb +37 -37
- data/lib/ecoportal/api/graphql/base/location_structure/draft.rb +93 -93
- data/lib/ecoportal/api/graphql/base/location_structure.rb +3 -0
- data/lib/ecoportal/api/graphql/base/minimal_dashboard.rb +25 -0
- data/lib/ecoportal/api/graphql/base/organization.rb +2 -0
- data/lib/ecoportal/api/graphql/base/page/data_field/actions_list.rb +9 -9
- data/lib/ecoportal/api/graphql/base/page/data_field/ai_summary.rb +18 -18
- data/lib/ecoportal/api/graphql/base/page/data_field/checklist.rb +29 -29
- data/lib/ecoportal/api/graphql/base/page/data_field/collection.rb +1 -1
- data/lib/ecoportal/api/graphql/base/page/data_field/contractor_entities.rb +25 -2
- data/lib/ecoportal/api/graphql/base/page/data_field/cross_reference.rb +1 -1
- data/lib/ecoportal/api/graphql/base/page/data_field/date_field.rb +23 -23
- data/lib/ecoportal/api/graphql/base/page/data_field/file_field.rb +46 -7
- data/lib/ecoportal/api/graphql/base/page/data_field/geo.rb +24 -24
- data/lib/ecoportal/api/graphql/base/page/data_field/image_gallery.rb +6 -3
- data/lib/ecoportal/api/graphql/base/page/data_field/law.rb +8 -8
- data/lib/ecoportal/api/graphql/base/page/data_field/mailbox.rb +9 -9
- data/lib/ecoportal/api/graphql/base/page/data_field/people.rb +50 -12
- data/lib/ecoportal/api/graphql/base/page/data_field/plain_text.rb +17 -17
- data/lib/ecoportal/api/graphql/base/page/data_field/rich_text.rb +26 -26
- data/lib/ecoportal/api/graphql/base/page/data_field/signature.rb +9 -9
- data/lib/ecoportal/api/graphql/base/page/data_field/smart_fill.rb +17 -17
- data/lib/ecoportal/api/graphql/base/page/data_field/table.rb +9 -9
- data/lib/ecoportal/api/graphql/base/page/data_field/tag_field.rb +21 -21
- data/lib/ecoportal/api/graphql/base/page/data_field.rb +12 -18
- data/lib/ecoportal/api/graphql/base/page/phased.rb +15 -15
- data/lib/ecoportal/api/graphql/base/page/section.rb +48 -48
- data/lib/ecoportal/api/graphql/base/page_info.rb +12 -12
- data/lib/ecoportal/api/graphql/base/pages_workflow/operation_interface.rb +39 -39
- data/lib/ecoportal/api/graphql/base/pages_workflow/operations/assign_to.rb +27 -27
- data/lib/ecoportal/api/graphql/base/pages_workflow/operations/send_notification.rb +30 -30
- data/lib/ecoportal/api/graphql/base/pages_workflow/recipient_config.rb +34 -34
- data/lib/ecoportal/api/graphql/base/pages_workflow.rb +35 -35
- data/lib/ecoportal/api/graphql/base/permissions.rb +15 -0
- data/lib/ecoportal/api/graphql/base/person_member.rb +22 -22
- data/lib/ecoportal/api/graphql/base/person_member_changelog.rb +23 -0
- data/lib/ecoportal/api/graphql/base/preset_view.rb +135 -0
- data/lib/ecoportal/api/graphql/base/preview_page.rb +23 -23
- data/lib/ecoportal/api/graphql/base/register.rb +6 -1
- data/lib/ecoportal/api/graphql/base/resource.rb +13 -13
- data/lib/ecoportal/api/graphql/base.rb +9 -0
- data/lib/ecoportal/api/graphql/builder/CLAUDE.md +65 -0
- data/lib/ecoportal/api/graphql/builder/action.rb +41 -41
- data/lib/ecoportal/api/graphql/builder/contractor_entity.rb +10 -0
- data/lib/ecoportal/api/graphql/builder/location_structure/draft.rb +64 -64
- data/lib/ecoportal/api/graphql/builder/location_structure.rb +40 -40
- data/lib/ecoportal/api/graphql/builder/page.rb +0 -16
- data/lib/ecoportal/api/graphql/builder/register/preset_view.rb +84 -84
- data/lib/ecoportal/api/graphql/builder/register.rb +49 -49
- data/lib/ecoportal/api/graphql/builder/template.rb +18 -0
- data/lib/ecoportal/api/graphql/compat/filter_translator.rb +1 -1
- data/lib/ecoportal/api/graphql/compat/page_reference.rb +23 -23
- data/lib/ecoportal/api/graphql/compat/pages.rb +7 -2
- data/lib/ecoportal/api/graphql/compat/registers.rb +84 -84
- data/lib/ecoportal/api/graphql/compat/response.rb +14 -0
- data/lib/ecoportal/api/graphql/compat/search_results.rb +33 -33
- data/lib/ecoportal/api/graphql/compat.rb +17 -17
- data/lib/ecoportal/api/graphql/concerns/data_field_access.rb +71 -71
- data/lib/ecoportal/api/graphql/concerns/fragment_definitions.rb +68 -68
- data/lib/ecoportal/api/graphql/concerns/snake_camel_access.rb +60 -60
- data/lib/ecoportal/api/graphql/concerns/threadable.rb +58 -0
- data/lib/ecoportal/api/graphql/concerns.rb +1 -0
- data/lib/ecoportal/api/graphql/connection/action.rb +1 -1
- data/lib/ecoportal/api/graphql/connection/action_category.rb +1 -1
- data/lib/ecoportal/api/graphql/connection/activity.rb +11 -0
- data/lib/ecoportal/api/graphql/connection/activity_log.rb +11 -0
- data/lib/ecoportal/api/graphql/connection/auth_log.rb +11 -0
- data/lib/ecoportal/api/graphql/connection/contractor_entity.rb +1 -1
- data/lib/ecoportal/api/graphql/connection/minimal_dashboard.rb +11 -0
- data/lib/ecoportal/api/graphql/connection/page.rb +1 -1
- data/lib/ecoportal/api/graphql/connection/pages_workflow_command.rb +1 -1
- data/lib/ecoportal/api/graphql/connection/person_member.rb +1 -1
- data/lib/ecoportal/api/graphql/connection/person_member_changelog.rb +11 -0
- data/lib/ecoportal/api/graphql/connection/preset_view.rb +11 -11
- data/lib/ecoportal/api/graphql/connection/preview_page.rb +1 -1
- data/lib/ecoportal/api/graphql/connection.rb +5 -0
- data/lib/ecoportal/api/graphql/diff/pairing/signals.rb +21 -1
- data/lib/ecoportal/api/graphql/error/locations_error/fetch_nested.rb +51 -51
- data/lib/ecoportal/api/graphql/error/locations_error.rb +28 -28
- data/lib/ecoportal/api/graphql/error/locations_validation_error.rb +20 -20
- data/lib/ecoportal/api/graphql/error/validation_errors.rb +28 -28
- data/lib/ecoportal/api/graphql/error.rb +12 -12
- data/lib/ecoportal/api/graphql/file_upload/client.rb +198 -139
- data/lib/ecoportal/api/graphql/file_upload.rb +10 -10
- data/lib/ecoportal/api/graphql/fragment/action.rb +65 -65
- data/lib/ecoportal/api/graphql/fragment/action_category.rb +17 -17
- data/lib/ecoportal/api/graphql/fragment/activity.rb +84 -0
- data/lib/ecoportal/api/graphql/fragment/activity_log.rb +75 -0
- data/lib/ecoportal/api/graphql/fragment/auth_log.rb +29 -0
- data/lib/ecoportal/api/graphql/fragment/authorization_result.rb +14 -0
- data/lib/ecoportal/api/graphql/fragment/contractor_entity.rb +20 -20
- data/lib/ecoportal/api/graphql/fragment/location_node.rb +1 -0
- data/lib/ecoportal/api/graphql/fragment/locations_error.rb +19 -19
- data/lib/ecoportal/api/graphql/fragment/minimal_dashboard.rb +31 -0
- data/lib/ecoportal/api/graphql/fragment/pages/common_page_union.rb +21 -0
- data/lib/ecoportal/api/graphql/fragment/pages.rb +15 -15
- data/lib/ecoportal/api/graphql/fragment/pagination.rb +17 -17
- data/lib/ecoportal/api/graphql/fragment/permissions.rb +98 -0
- data/lib/ecoportal/api/graphql/fragment/person_member_changelog.rb +33 -0
- data/lib/ecoportal/api/graphql/fragment.rb +7 -0
- data/lib/ecoportal/api/graphql/helpers/locations_tree.rb +41 -41
- data/lib/ecoportal/api/graphql/helpers.rb +10 -10
- data/lib/ecoportal/api/graphql/input/action/archive.rb +14 -14
- data/lib/ecoportal/api/graphql/input/action/create.rb +13 -13
- data/lib/ecoportal/api/graphql/input/action/update.rb +12 -0
- data/lib/ecoportal/api/graphql/input/action.rb +14 -14
- data/lib/ecoportal/api/graphql/input/contractor_entity/create.rb +14 -14
- data/lib/ecoportal/api/graphql/input/contractor_entity/destroy.rb +13 -13
- data/lib/ecoportal/api/graphql/input/contractor_entity/manager_settings.rb +20 -0
- data/lib/ecoportal/api/graphql/input/contractor_entity/update.rb +6 -27
- data/lib/ecoportal/api/graphql/input/contractor_entity.rb +1 -0
- data/lib/ecoportal/api/graphql/input/date_range.rb +16 -0
- data/lib/ecoportal/api/graphql/input/delta_input.rb +16 -16
- data/lib/ecoportal/api/graphql/input/id_diff.rb +11 -11
- data/lib/ecoportal/api/graphql/input/location_structure/apply_commands.rb +2 -2
- data/lib/ecoportal/api/graphql/input/location_structure/archive_command.rb +13 -13
- data/lib/ecoportal/api/graphql/input/location_structure/delete_command.rb +13 -13
- data/lib/ecoportal/api/graphql/input/location_structure/draft/add_commands.rb +2 -2
- data/lib/ecoportal/api/graphql/input/location_structure/draft/create.rb +15 -15
- data/lib/ecoportal/api/graphql/input/location_structure/draft/delete.rb +15 -15
- data/lib/ecoportal/api/graphql/input/location_structure/draft/drop_bad_commands.rb +16 -16
- data/lib/ecoportal/api/graphql/input/location_structure/draft/publish.rb +16 -16
- data/lib/ecoportal/api/graphql/input/location_structure/draft.rb +19 -19
- data/lib/ecoportal/api/graphql/input/location_structure/insert_command.rb +13 -13
- data/lib/ecoportal/api/graphql/input/location_structure/move_command.rb +14 -14
- data/lib/ecoportal/api/graphql/input/location_structure/reorder_command.rb +13 -13
- data/lib/ecoportal/api/graphql/input/location_structure/unarchive_command.rb +13 -13
- data/lib/ecoportal/api/graphql/input/location_structure/update_command.rb +6 -2
- data/lib/ecoportal/api/graphql/input/location_structure.rb +20 -20
- data/lib/ecoportal/api/graphql/input/page/archive.rb +14 -14
- data/lib/ecoportal/api/graphql/input/page/build_from_template.rb +13 -13
- data/lib/ecoportal/api/graphql/input/page/create_draft.rb +13 -13
- data/lib/ecoportal/api/graphql/input/page/create_from_template.rb +18 -18
- data/lib/ecoportal/api/graphql/input/page/delete_draft.rb +13 -13
- data/lib/ecoportal/api/graphql/input/page/publish_draft.rb +13 -13
- data/lib/ecoportal/api/graphql/input/page/review_task.rb +14 -14
- data/lib/ecoportal/api/graphql/input/page/unarchive.rb +14 -14
- data/lib/ecoportal/api/graphql/input/page/update.rb +2 -2
- data/lib/ecoportal/api/graphql/input/page.rb +26 -26
- data/lib/ecoportal/api/graphql/input/preset_view/create.rb +18 -18
- data/lib/ecoportal/api/graphql/input/preset_view/permission.rb +16 -16
- data/lib/ecoportal/api/graphql/input/preset_view/update.rb +17 -2
- data/lib/ecoportal/api/graphql/input/preset_view.rb +14 -14
- data/lib/ecoportal/api/graphql/input/register/create.rb +18 -18
- data/lib/ecoportal/api/graphql/input/register/update.rb +15 -15
- data/lib/ecoportal/api/graphql/input/register.rb +13 -13
- data/lib/ecoportal/api/graphql/input/search.rb +13 -13
- data/lib/ecoportal/api/graphql/input/search_conf/ai_generator.rb +234 -234
- data/lib/ecoportal/api/graphql/input/search_conf.rb +1 -1
- data/lib/ecoportal/api/graphql/input/search_filter.rb +12 -12
- data/lib/ecoportal/api/graphql/input/search_sorter.rb +11 -11
- data/lib/ecoportal/api/graphql/input/workflow_command/add_action_tag.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_binding.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_checklist_field_item.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_comment_tagging_user_group.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_default_direct_strategy_user.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_default_strategy.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_direct_strategy_user.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_force.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_field_config.rb +23 -23
- data/lib/ecoportal/api/graphql/input/workflow_command/add_linked_helper.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_operation.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_direct_strategy_user.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_operation_strategy.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_action_type.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_filter.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_people_field.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_task_config.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_recipient_user.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback.rb +23 -23
- data/lib/ecoportal/api/graphql/input/workflow_command/add_scheduled_callback_action.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_section.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_select_field_option.rb +19 -19
- data/lib/ecoportal/api/graphql/input/workflow_command/add_smart_fill_config.rb +23 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_stage.rb +3 -2
- data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_section.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_stage_tag.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_strategy.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_task.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_task_assignment_user_group.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/add_viewable_field.rb +45 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/add_workflow_callback.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/archive_public_config.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/collapse_section.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/create_public_config.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_binding.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_checklist_field_item.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_creator_permissions.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_default_strategy.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_field_configuration.rb +12 -2
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_force.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_gauge_field_stop.rb +19 -19
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_field_config.rb +19 -19
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_linked_helper.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_operation_strategy.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_public_config.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_reminder.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_required_sign_offs.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_comment_tagging.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_restrict_task_assignment.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_scheduled_callback.rb +22 -22
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_section_header.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_select_field_option.rb +19 -19
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_smart_fill_config.rb +21 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_stage.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_strategy.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_task_due.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_advanced_settings.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_basic_settings.rb +27 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_container_uid.rb +45 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/{edit_page_creator_permissions.rb → edit_template_creator_permissions.rb} +3 -2
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_template_descriptions.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_trigger.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/expand_section.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/action_list.rb +31 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/contractor_entities.rb +24 -24
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/cross_reference.rb +3 -1
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/date.rb +15 -2
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/file.rb +21 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/gauge.rb +20 -20
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/image_gallery.rb +3 -2
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/location_field.rb +24 -24
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/people.rb +27 -3
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/plain_text.rb +3 -2
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/rich_text.rb +3 -2
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/select.rb +3 -2
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/signature.rb +20 -20
- data/lib/ecoportal/api/graphql/input/workflow_command/field_config/table.rb +25 -25
- data/lib/ecoportal/api/graphql/input/workflow_command/move_field.rb +3 -2
- data/lib/ecoportal/api/graphql/input/workflow_command/move_stage.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/move_viewable_field.rb +33 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_action_tag.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_binding.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_callback.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_checklist_field_item.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_comment_tagging_user_group.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_direct_strategy_user.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_default_strategy.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_direct_strategy_user.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_field.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_force.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_linked_helper.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_direct_strategy_user.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_operation_strategy.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_action_type.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_filter.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_people_field.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_task_config.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_recipient_user.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_scheduled_callback.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_section.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_smart_fill_config.rb +19 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_section.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_stage_tag.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_strategy.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_task.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_assignment_user_group.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_due.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_task_priority_level.rb +18 -18
- data/lib/ecoportal/api/graphql/input/workflow_command/remove_viewable_field.rb +21 -0
- data/lib/ecoportal/api/graphql/input/workflow_command/reorder_forces.rb +3 -2
- data/lib/ecoportal/api/graphql/input/workflow_command/reorder_section.rb +3 -2
- data/lib/ecoportal/api/graphql/input/workflow_command.rb +43 -5
- data/lib/ecoportal/api/graphql/input.rb +1 -0
- data/lib/ecoportal/api/graphql/interface/base_page.rb +36 -3
- data/lib/ecoportal/api/graphql/interface/location_structure/command.rb +2 -1
- data/lib/ecoportal/api/graphql/interface/location_structure/node.rb +43 -43
- data/lib/ecoportal/api/graphql/interface/location_structure.rb +14 -14
- data/lib/ecoportal/api/graphql/interface.rb +11 -11
- data/lib/ecoportal/api/graphql/logic/base_model.rb +15 -15
- data/lib/ecoportal/api/graphql/logic/base_query.rb +193 -193
- data/lib/ecoportal/api/graphql/logic/connection.rb +17 -0
- data/lib/ecoportal/api/graphql/logic/input.rb +127 -0
- data/lib/ecoportal/api/graphql/logic/mutation.rb +59 -59
- data/lib/ecoportal/api/graphql/logic/payload.rb +42 -42
- data/lib/ecoportal/api/graphql/logic/query.rb +23 -23
- data/lib/ecoportal/api/graphql/logic/query_array.rb +30 -30
- data/lib/ecoportal/api/graphql/logic/query_connection.rb +48 -48
- data/lib/ecoportal/api/graphql/logic.rb +18 -18
- data/lib/ecoportal/api/graphql/model/account.rb +15 -15
- data/lib/ecoportal/api/graphql/model/action.rb +22 -22
- data/lib/ecoportal/api/graphql/model/action_event.rb +14 -0
- data/lib/ecoportal/api/graphql/model/action_event_page.rb +10 -0
- data/lib/ecoportal/api/graphql/model/activity.rb +14 -0
- data/lib/ecoportal/api/graphql/model/activity_log.rb +31 -0
- data/lib/ecoportal/api/graphql/model/ai_summary_version.rb +10 -10
- data/lib/ecoportal/api/graphql/model/auth_log.rb +11 -0
- data/lib/ecoportal/api/graphql/model/authorization_result.rb +12 -0
- data/lib/ecoportal/api/graphql/model/contractor_entity.rb +12 -12
- data/lib/ecoportal/api/graphql/model/field.rb +10 -10
- data/lib/ecoportal/api/graphql/model/file_attachment.rb +10 -10
- data/lib/ecoportal/api/graphql/model/file_container.rb +11 -11
- data/lib/ecoportal/api/graphql/model/location_node.rb +14 -14
- data/lib/ecoportal/api/graphql/model/location_structure/draft/structure.rb +15 -15
- data/lib/ecoportal/api/graphql/model/location_structure/draft.rb +15 -15
- data/lib/ecoportal/api/graphql/model/location_structure.rb +16 -16
- data/lib/ecoportal/api/graphql/model/minimal_dashboard.rb +14 -0
- data/lib/ecoportal/api/graphql/model/organization.rb +27 -0
- data/lib/ecoportal/api/graphql/model/page/basic.rb +14 -14
- data/lib/ecoportal/api/graphql/model/page/data_field.rb +12 -12
- data/lib/ecoportal/api/graphql/model/page/phased/stage.rb +14 -14
- data/lib/ecoportal/api/graphql/model/page/section.rb +12 -12
- data/lib/ecoportal/api/graphql/model/page_union.rb +21 -21
- data/lib/ecoportal/api/graphql/model/pages_workflow.rb +20 -20
- data/lib/ecoportal/api/graphql/model/permissions.rb +179 -0
- data/lib/ecoportal/api/graphql/model/person_member.rb +7 -0
- data/lib/ecoportal/api/graphql/model/person_member_changelog.rb +15 -0
- data/lib/ecoportal/api/graphql/model/preset_view.rb +10 -10
- data/lib/ecoportal/api/graphql/model/preview_page.rb +10 -10
- data/lib/ecoportal/api/graphql/model/register.rb +10 -10
- data/lib/ecoportal/api/graphql/model/resource.rb +13 -13
- data/lib/ecoportal/api/graphql/model/user.rb +14 -14
- data/lib/ecoportal/api/graphql/model.rb +9 -0
- data/lib/ecoportal/api/graphql/mutation/action/archive.rb +41 -41
- data/lib/ecoportal/api/graphql/mutation/action/create.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/action/update.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/action.rb +14 -14
- data/lib/ecoportal/api/graphql/mutation/ai_summary/generate.rb +21 -11
- data/lib/ecoportal/api/graphql/mutation/ai_summary/submit_feedback.rb +26 -11
- data/lib/ecoportal/api/graphql/mutation/ai_summary.rb +13 -13
- data/lib/ecoportal/api/graphql/mutation/contractor_entity/create.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/contractor_entity/destroy.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/contractor_entity/update.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/contractor_entity/update_manager_settings.rb +37 -0
- data/lib/ecoportal/api/graphql/mutation/contractor_entity.rb +1 -0
- data/lib/ecoportal/api/graphql/mutation/file_container/upload.rb +78 -0
- data/lib/ecoportal/api/graphql/mutation/file_container.rb +15 -0
- data/lib/ecoportal/api/graphql/mutation/location_structure/apply_commands.rb +54 -54
- data/lib/ecoportal/api/graphql/mutation/location_structure/draft/add_commands.rb +55 -55
- data/lib/ecoportal/api/graphql/mutation/location_structure/draft/create.rb +54 -54
- data/lib/ecoportal/api/graphql/mutation/location_structure/draft/delete.rb +43 -43
- data/lib/ecoportal/api/graphql/mutation/location_structure/draft/drop_bad_commands.rb +56 -56
- data/lib/ecoportal/api/graphql/mutation/location_structure/draft/publish.rb +66 -66
- data/lib/ecoportal/api/graphql/mutation/location_structure/draft.rb +18 -18
- data/lib/ecoportal/api/graphql/mutation/location_structure.rb +13 -13
- data/lib/ecoportal/api/graphql/mutation/page/approve_review_task.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation/page/archive.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/page/batch_update_review_task.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation/page/build_from_template.rb +50 -50
- data/lib/ecoportal/api/graphql/mutation/page/create_draft.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation/page/create_from_template.rb +43 -43
- data/lib/ecoportal/api/graphql/mutation/page/delete_draft.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation/page/publish_draft.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation/page/reject_review_task.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation/page/restart_review_task.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation/page/unarchive.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/page/undo_review_task.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation/page/update.rb +40 -40
- data/lib/ecoportal/api/graphql/mutation/page.rb +28 -28
- data/lib/ecoportal/api/graphql/mutation/preset_view/create.rb +35 -35
- data/lib/ecoportal/api/graphql/mutation/preset_view/destroy.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation/preset_view/permission.rb +37 -37
- data/lib/ecoportal/api/graphql/mutation/preset_view/update.rb +35 -35
- data/lib/ecoportal/api/graphql/mutation/preset_view.rb +15 -15
- data/lib/ecoportal/api/graphql/mutation/register/create.rb +35 -35
- data/lib/ecoportal/api/graphql/mutation/register/destroy.rb +1 -1
- data/lib/ecoportal/api/graphql/mutation/register/update.rb +35 -35
- data/lib/ecoportal/api/graphql/mutation/register.rb +14 -14
- data/lib/ecoportal/api/graphql/mutation/template/update_related_page.rb +79 -0
- data/lib/ecoportal/api/graphql/mutation/template.rb +1 -0
- data/lib/ecoportal/api/graphql/mutation.rb +1 -1
- data/lib/ecoportal/api/graphql/payload/action/archive.rb +13 -13
- data/lib/ecoportal/api/graphql/payload/action/create.rb +13 -13
- data/lib/ecoportal/api/graphql/payload/action/update.rb +13 -13
- data/lib/ecoportal/api/graphql/payload/action.rb +14 -14
- data/lib/ecoportal/api/graphql/payload/ai_summary_generate.rb +12 -12
- data/lib/ecoportal/api/graphql/payload/contractor_entity/create.rb +13 -13
- data/lib/ecoportal/api/graphql/payload/contractor_entity/destroy.rb +12 -12
- data/lib/ecoportal/api/graphql/payload/contractor_entity/manager_settings.rb +20 -0
- data/lib/ecoportal/api/graphql/payload/contractor_entity/update.rb +12 -12
- data/lib/ecoportal/api/graphql/payload/contractor_entity.rb +1 -0
- data/lib/ecoportal/api/graphql/payload/location_structure/apply_commands.rb +51 -51
- data/lib/ecoportal/api/graphql/payload/location_structure/command_execution_result.rb +50 -50
- data/lib/ecoportal/api/graphql/payload/location_structure/draft/add_commands.rb +30 -30
- data/lib/ecoportal/api/graphql/payload/location_structure/draft/delete.rb +30 -30
- data/lib/ecoportal/api/graphql/payload/location_structure/draft/drop_bad_commands.rb +43 -43
- data/lib/ecoportal/api/graphql/payload/location_structure/draft/publish.rb +63 -63
- data/lib/ecoportal/api/graphql/payload/location_structure/draft.rb +18 -18
- data/lib/ecoportal/api/graphql/payload/location_structure.rb +14 -14
- data/lib/ecoportal/api/graphql/payload/ok_payload.rb +1 -1
- data/lib/ecoportal/api/graphql/payload/page/archive.rb +13 -13
- data/lib/ecoportal/api/graphql/payload/page/build_from_template.rb +13 -13
- data/lib/ecoportal/api/graphql/payload/page/create_from_template.rb +13 -13
- data/lib/ecoportal/api/graphql/payload/page/draft.rb +1 -1
- data/lib/ecoportal/api/graphql/payload/page/review_task.rb +1 -1
- data/lib/ecoportal/api/graphql/payload/page/unarchive.rb +13 -13
- data/lib/ecoportal/api/graphql/payload/page/update.rb +13 -13
- data/lib/ecoportal/api/graphql/payload/preset_view.rb +1 -1
- data/lib/ecoportal/api/graphql/payload/register.rb +1 -1
- data/lib/ecoportal/api/graphql/payload/template/update_related_page.rb +15 -0
- data/lib/ecoportal/api/graphql/payload/template.rb +1 -0
- data/lib/ecoportal/api/graphql/payload/upload.rb +12 -0
- data/lib/ecoportal/api/graphql/payload.rb +1 -0
- data/lib/ecoportal/api/graphql/query/action.rb +33 -33
- data/lib/ecoportal/api/graphql/query/action_categories.rb +53 -53
- data/lib/ecoportal/api/graphql/query/actions.rb +43 -43
- data/lib/ecoportal/api/graphql/query/activity_logs.rb +78 -0
- data/lib/ecoportal/api/graphql/query/auth_logs.rb +51 -0
- data/lib/ecoportal/api/graphql/query/contractor_entities.rb +53 -53
- data/lib/ecoportal/api/graphql/query/dashboard_search.rb +57 -0
- data/lib/ecoportal/api/graphql/query/file_upload_signature.rb +76 -76
- data/lib/ecoportal/api/graphql/query/location_classifications.rb +39 -39
- data/lib/ecoportal/api/graphql/query/location_structure.rb +2 -0
- data/lib/ecoportal/api/graphql/query/location_structures.rb +2 -0
- data/lib/ecoportal/api/graphql/query/page.rb +6 -1
- data/lib/ecoportal/api/graphql/query/page_activities.rb +56 -0
- data/lib/ecoportal/api/graphql/query/page_delta.rb +47 -47
- data/lib/ecoportal/api/graphql/query/pages.rb +59 -59
- data/lib/ecoportal/api/graphql/query/permissions.rb +35 -0
- data/lib/ecoportal/api/graphql/query/person_member_changelogs.rb +53 -0
- data/lib/ecoportal/api/graphql/query/register_preset_views.rb +1 -1
- data/lib/ecoportal/api/graphql/query/register_preview_pages.rb +83 -83
- data/lib/ecoportal/api/graphql/query/templates.rb +53 -53
- data/lib/ecoportal/api/graphql/query.rb +6 -0
- data/lib/ecoportal/api/graphql_version.rb +1 -1
- data/lib/ecoportal/api-graphql.rb +10 -10
- metadata +78 -12
- data/lib/ecoportal/api/graphql/input/workflow_command/edit_page.rb +0 -28
- data/lib/ecoportal/api/graphql/mutation/smart_fill/generate.rb +0 -36
- data/lib/ecoportal/api/graphql/mutation/smart_fill/submit_feedback.rb +0 -40
- data/lib/ecoportal/api/graphql/mutation/smart_fill.rb +0 -13
|
@@ -5,6 +5,133 @@ module Ecoportal
|
|
|
5
5
|
class Input < Logic::BaseModel
|
|
6
6
|
passthrough :clientMutationId
|
|
7
7
|
|
|
8
|
+
# Declarative set-diff macro for id-list fields that the schema exposes as
|
|
9
|
+
# `IdDiffInput { additions: [ID!], removals: [ID!] }` on the *update* mutation.
|
|
10
|
+
#
|
|
11
|
+
# Mixed into any Input class (whether it inherits from {Logic::Input} or from a
|
|
12
|
+
# `Base::` data model) via `extend`. {Logic::Input} extends it for its own subclasses;
|
|
13
|
+
# data-model Input classes call `extend Logic::Input::IdDiffFields` explicitly.
|
|
14
|
+
#
|
|
15
|
+
# Usage:
|
|
16
|
+
# class Update < Base::ContractorEntity
|
|
17
|
+
# extend Logic::Input::IdDiffFields
|
|
18
|
+
# id_diff_fields :associatedPeopleIds, :leadContractorIds
|
|
19
|
+
# end
|
|
20
|
+
#
|
|
21
|
+
# It installs (or augments) a `from_model` that, for each declared field, computes the
|
|
22
|
+
# delta DIRECTLY from the READ model's `doc[key]` vs `original_doc[key]` arrays:
|
|
23
|
+
# additions = current - original
|
|
24
|
+
# removals = original - current
|
|
25
|
+
# A field is omitted when unchanged. The delta is computed directly (NOT via the
|
|
26
|
+
# cascaded DiffService) because these array fields are dropped from the flat diff and
|
|
27
|
+
# the read model is `root!` (so its doc/original_doc resolve without cascade side effects).
|
|
28
|
+
module IdDiffFields
|
|
29
|
+
# @return [Array<Symbol>] the fields declared for set-diff on this class.
|
|
30
|
+
def id_diff_fields_list
|
|
31
|
+
@id_diff_fields_list ||= []
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Declares the id-list fields that must be reshaped into IdDiff `{ additions:, removals: }`.
|
|
35
|
+
# @param fields [Array<Symbol>] field names (as they appear in the read model's doc).
|
|
36
|
+
# @return [void]
|
|
37
|
+
def id_diff_fields(*fields)
|
|
38
|
+
id_diff_fields_list.concat(fields.flatten.map(&:to_sym)).uniq!
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Computes the IdDiff-shaped deltas for the declared fields and merges them into +diff+.
|
|
42
|
+
# @param model [Common::GraphQL::Model] the subject (read) model.
|
|
43
|
+
# @param diff [Hash, nil] the base mutation input hash to augment (may be nil).
|
|
44
|
+
# @return [Hash, nil] +diff+ with per-field `{ additions:, removals: }` merged in,
|
|
45
|
+
# or the original value when nothing changed.
|
|
46
|
+
def merge_id_diffs(model, diff)
|
|
47
|
+
id_diff_fields_list.each do |field|
|
|
48
|
+
key = field.to_s
|
|
49
|
+
current = Array(model.doc[key])
|
|
50
|
+
original = Array(model.original_doc[key])
|
|
51
|
+
next if current == original
|
|
52
|
+
|
|
53
|
+
diff ||= {}
|
|
54
|
+
diff[:id] ||= model.id if model.respond_to?(:id)
|
|
55
|
+
diff[field] = { additions: current - original, removals: original - current }
|
|
56
|
+
end
|
|
57
|
+
diff
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Reshaping `from_model`: base diff (via {Logic::Input.from_model}) + set-diff deltas.
|
|
61
|
+
# @param model [Common::GraphQL::Model] the subject model.
|
|
62
|
+
# @return [Hash, nil] the mutation input hash, or nil when there are no changes.
|
|
63
|
+
def from_model(model, **kargs)
|
|
64
|
+
diff = Logic::Input.from_model(model, **kargs)
|
|
65
|
+
merge_id_diffs(model, diff)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Declarative FULL-ARRAY macro for id-list fields that the schema exposes as a plain
|
|
70
|
+
# `[ID!]` on the *update* mutation (NOT `IdDiffInput`). The server expects the COMPLETE
|
|
71
|
+
# current array, replacing the stored value wholesale — there is no additions/removals
|
|
72
|
+
# delta shape. This is the counterpart to {IdDiffFields}.
|
|
73
|
+
#
|
|
74
|
+
# Mixed into any Input class via `extend`, exactly like {IdDiffFields}. Data-model Input
|
|
75
|
+
# classes call `extend Logic::Input::FullArrayFields` explicitly.
|
|
76
|
+
#
|
|
77
|
+
# Usage:
|
|
78
|
+
# class Update < Base::Action
|
|
79
|
+
# extend Logic::Input::FullArrayFields
|
|
80
|
+
# full_array_fields :assignedPersonMemberIds, :locationIds, :fileContainerIds
|
|
81
|
+
# end
|
|
82
|
+
#
|
|
83
|
+
# It installs (or augments) a `from_model` that, for each declared field, emits the FULL
|
|
84
|
+
# current array taken DIRECTLY from the READ model's `doc[key]` whenever it differs from
|
|
85
|
+
# `original_doc[key]`. A field is omitted when unchanged. The value is read directly (NOT
|
|
86
|
+
# via the cascaded DiffService) because these array fields are dropped from the flat diff
|
|
87
|
+
# and the read model is `root!`.
|
|
88
|
+
#
|
|
89
|
+
# Schema evidence (live introspection 20260605, UpdateActionInput):
|
|
90
|
+
# assignedPersonMemberIds : [ID!]
|
|
91
|
+
# locationIds : [ID!]
|
|
92
|
+
# fileContainerIds : [ID!]
|
|
93
|
+
# None are `IdDiffInput` — hence full-array, not delta.
|
|
94
|
+
module FullArrayFields
|
|
95
|
+
# @return [Array<Symbol>] the fields declared for full-array emission on this class.
|
|
96
|
+
def full_array_fields_list
|
|
97
|
+
@full_array_fields_list ||= []
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Declares the id-list fields that must be emitted as their COMPLETE current array.
|
|
101
|
+
# @param fields [Array<Symbol>] field names (as they appear in the read model's doc).
|
|
102
|
+
# @return [void]
|
|
103
|
+
def full_array_fields(*fields)
|
|
104
|
+
full_array_fields_list.concat(fields.flatten.map(&:to_sym)).uniq!
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Emits the full current array for each changed declared field and merges it into +diff+.
|
|
108
|
+
# @param model [Common::GraphQL::Model] the subject (read) model.
|
|
109
|
+
# @param diff [Hash, nil] the base mutation input hash to augment (may be nil).
|
|
110
|
+
# @return [Hash, nil] +diff+ with per-field full arrays merged in, or the original
|
|
111
|
+
# value when nothing changed.
|
|
112
|
+
def merge_full_arrays(model, diff)
|
|
113
|
+
full_array_fields_list.each do |field|
|
|
114
|
+
key = field.to_s
|
|
115
|
+
current = Array(model.doc[key])
|
|
116
|
+
original = Array(model.original_doc[key])
|
|
117
|
+
next if current == original
|
|
118
|
+
|
|
119
|
+
diff ||= {}
|
|
120
|
+
diff[:id] ||= model.id if model.respond_to?(:id)
|
|
121
|
+
diff[field] = current
|
|
122
|
+
end
|
|
123
|
+
diff
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# Reshaping `from_model`: base diff (via {Logic::Input.from_model}) + full arrays.
|
|
127
|
+
# @param model [Common::GraphQL::Model] the subject model.
|
|
128
|
+
# @return [Hash, nil] the mutation input hash, or nil when there are no changes.
|
|
129
|
+
def from_model(model, **kargs)
|
|
130
|
+
diff = Logic::Input.from_model(model, **kargs)
|
|
131
|
+
merge_full_arrays(model, diff)
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
8
135
|
class << self
|
|
9
136
|
# Builds a mutation input hash from a model's diff.
|
|
10
137
|
# Subclasses override this to reshape fields (e.g. array → IdDiffInput).
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
module Ecoportal
|
|
2
|
-
module API
|
|
3
|
-
class GraphQL
|
|
4
|
-
module Logic
|
|
5
|
-
class Mutation < Logic::BaseQuery
|
|
6
|
-
class GenericPayload
|
|
7
|
-
def initialize(*_args, **_kargs)
|
|
8
|
-
raise 'Missuse error. You should define a payload_class for a class that inherits from Mutation class.'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
class GenericInput
|
|
13
|
-
def initialize(*_args, **_kargs)
|
|
14
|
-
raise 'Missuse error. You should define a input_class for a class that inherits from Mutation class.'
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
class_resolver :payload_class, GenericPayload
|
|
19
|
-
class_resolver :input_class, GenericInput
|
|
20
|
-
|
|
21
|
-
accepted_params :input
|
|
22
|
-
|
|
23
|
-
# Query rely that manages the different blocks.
|
|
24
|
-
# @return [Class] an object of `response_class` with the results hanving from `path`.
|
|
25
|
-
def query(input:, path: self.path, **kargs, &block)
|
|
26
|
-
super(
|
|
27
|
-
input: as_input(input),
|
|
28
|
-
path: path,
|
|
29
|
-
**kargs,
|
|
30
|
-
&block
|
|
31
|
-
)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def response_class
|
|
35
|
-
payload_class
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
private
|
|
39
|
-
|
|
40
|
-
def as_input(value)
|
|
41
|
-
case value
|
|
42
|
-
when input_class, Logic::BaseModel
|
|
43
|
-
value.as_input
|
|
44
|
-
when Hash
|
|
45
|
-
value
|
|
46
|
-
# when Hash
|
|
47
|
-
# value = Helpers::Model::HashKeys.keys_to_sym_deep(value)
|
|
48
|
-
# Ecoportal::API::Base::Model.as_input(value)
|
|
49
|
-
when Enumerable
|
|
50
|
-
value.map {|v| as_input(v)}
|
|
51
|
-
else
|
|
52
|
-
raise ArgumentError, "Expecting Hash, GraphQL::Base::Model or Enumerable. Unsupported type '#{value.class}'."
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Logic
|
|
5
|
+
class Mutation < Logic::BaseQuery
|
|
6
|
+
class GenericPayload
|
|
7
|
+
def initialize(*_args, **_kargs)
|
|
8
|
+
raise 'Missuse error. You should define a payload_class for a class that inherits from Mutation class.'
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
class GenericInput
|
|
13
|
+
def initialize(*_args, **_kargs)
|
|
14
|
+
raise 'Missuse error. You should define a input_class for a class that inherits from Mutation class.'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class_resolver :payload_class, GenericPayload
|
|
19
|
+
class_resolver :input_class, GenericInput
|
|
20
|
+
|
|
21
|
+
accepted_params :input
|
|
22
|
+
|
|
23
|
+
# Query rely that manages the different blocks.
|
|
24
|
+
# @return [Class] an object of `response_class` with the results hanving from `path`.
|
|
25
|
+
def query(input:, path: self.path, **kargs, &block)
|
|
26
|
+
super(
|
|
27
|
+
input: as_input(input),
|
|
28
|
+
path: path,
|
|
29
|
+
**kargs,
|
|
30
|
+
&block
|
|
31
|
+
)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def response_class
|
|
35
|
+
payload_class
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
private
|
|
39
|
+
|
|
40
|
+
def as_input(value)
|
|
41
|
+
case value
|
|
42
|
+
when input_class, Logic::BaseModel
|
|
43
|
+
value.as_input
|
|
44
|
+
when Hash
|
|
45
|
+
value
|
|
46
|
+
# when Hash
|
|
47
|
+
# value = Helpers::Model::HashKeys.keys_to_sym_deep(value)
|
|
48
|
+
# Ecoportal::API::Base::Model.as_input(value)
|
|
49
|
+
when Enumerable
|
|
50
|
+
value.map {|v| as_input(v)}
|
|
51
|
+
else
|
|
52
|
+
raise ArgumentError, "Expecting Hash, GraphQL::Base::Model or Enumerable. Unsupported type '#{value.class}'."
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
module Ecoportal
|
|
2
|
-
module API
|
|
3
|
-
class GraphQL
|
|
4
|
-
module Logic
|
|
5
|
-
class Payload < Logic::BaseModel
|
|
6
|
-
class GenericItem
|
|
7
|
-
def initialize(*_args, **_kargs)
|
|
8
|
-
raise "Missuse error. You should define a item_class for a class that inherits from GraphqlPayload class."
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
read_only!
|
|
13
|
-
|
|
14
|
-
passthrough :clientMutationId
|
|
15
|
-
|
|
16
|
-
class_resolver :item_class, GenericItem
|
|
17
|
-
|
|
18
|
-
embeds_one :item, klass: :item_class
|
|
19
|
-
embeds_one :errors, klass: Error::ValidationErrors, nullable: true
|
|
20
|
-
|
|
21
|
-
def success?
|
|
22
|
-
!error?
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def error?
|
|
26
|
-
return false if errors.nil?
|
|
27
|
-
|
|
28
|
-
!errors.empty?
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def error_doc
|
|
32
|
-
return unless (err_doc = errors&.doc)
|
|
33
|
-
|
|
34
|
-
{
|
|
35
|
-
errors: err_doc
|
|
36
|
-
}
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Logic
|
|
5
|
+
class Payload < Logic::BaseModel
|
|
6
|
+
class GenericItem
|
|
7
|
+
def initialize(*_args, **_kargs)
|
|
8
|
+
raise "Missuse error. You should define a item_class for a class that inherits from GraphqlPayload class."
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
read_only!
|
|
13
|
+
|
|
14
|
+
passthrough :clientMutationId
|
|
15
|
+
|
|
16
|
+
class_resolver :item_class, GenericItem
|
|
17
|
+
|
|
18
|
+
embeds_one :item, klass: :item_class
|
|
19
|
+
embeds_one :errors, klass: Error::ValidationErrors, nullable: true
|
|
20
|
+
|
|
21
|
+
def success?
|
|
22
|
+
!error?
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def error?
|
|
26
|
+
return false if errors.nil?
|
|
27
|
+
|
|
28
|
+
!errors.empty?
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def error_doc
|
|
32
|
+
return unless (err_doc = errors&.doc)
|
|
33
|
+
|
|
34
|
+
{
|
|
35
|
+
errors: err_doc
|
|
36
|
+
}
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
module Ecoportal
|
|
2
|
-
module API
|
|
3
|
-
class GraphQL
|
|
4
|
-
module Logic
|
|
5
|
-
class Query < Logic::BaseQuery
|
|
6
|
-
class GenericItem
|
|
7
|
-
def initialize(*_args, **_kargs)
|
|
8
|
-
msg = "Missuse error. "
|
|
9
|
-
msg << "You should define a item_class for a class that "
|
|
10
|
-
msg << "inherits from Query class."
|
|
11
|
-
raise msg
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
class_resolver :item_class, GenericItem
|
|
15
|
-
|
|
16
|
-
def response_class
|
|
17
|
-
item_class
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Logic
|
|
5
|
+
class Query < Logic::BaseQuery
|
|
6
|
+
class GenericItem
|
|
7
|
+
def initialize(*_args, **_kargs)
|
|
8
|
+
msg = "Missuse error. "
|
|
9
|
+
msg << "You should define a item_class for a class that "
|
|
10
|
+
msg << "inherits from Query class."
|
|
11
|
+
raise msg
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
class_resolver :item_class, GenericItem
|
|
15
|
+
|
|
16
|
+
def response_class
|
|
17
|
+
item_class
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
module Ecoportal
|
|
2
|
-
module API
|
|
3
|
-
class GraphQL
|
|
4
|
-
module Logic
|
|
5
|
-
class QueryArray < Logic::Query
|
|
6
|
-
include Enumerable
|
|
7
|
-
|
|
8
|
-
def each(item_block: nil, **kargs, &block)
|
|
9
|
-
return to_enum(:each, item_block: connection_block, **kargs) unless block
|
|
10
|
-
|
|
11
|
-
query(**kargs, &item_block).each do |item|
|
|
12
|
-
yield(item) if block_given?
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def response_class
|
|
17
|
-
return array_class if respond_to?(:array_class)
|
|
18
|
-
|
|
19
|
-
@response_class ||= self.class.new_class(
|
|
20
|
-
item_class,
|
|
21
|
-
inherits: Ecoportal::API::Common::Content::CollectionModel
|
|
22
|
-
) do |klass|
|
|
23
|
-
klass.klass = item_class
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Logic
|
|
5
|
+
class QueryArray < Logic::Query
|
|
6
|
+
include Enumerable
|
|
7
|
+
|
|
8
|
+
def each(item_block: nil, **kargs, &block)
|
|
9
|
+
return to_enum(:each, item_block: connection_block, **kargs) unless block
|
|
10
|
+
|
|
11
|
+
query(**kargs, &item_block).each do |item|
|
|
12
|
+
yield(item) if block_given?
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def response_class
|
|
17
|
+
return array_class if respond_to?(:array_class)
|
|
18
|
+
|
|
19
|
+
@response_class ||= self.class.new_class(
|
|
20
|
+
item_class,
|
|
21
|
+
inherits: Ecoportal::API::Common::Content::CollectionModel
|
|
22
|
+
) do |klass|
|
|
23
|
+
klass.klass = item_class
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
module Ecoportal
|
|
2
|
-
module API
|
|
3
|
-
class GraphQL
|
|
4
|
-
module Logic
|
|
5
|
-
class QueryConnection < Logic::Query
|
|
6
|
-
accepted_params :searchConf, :after, :before, :first, :last
|
|
7
|
-
include Enumerable
|
|
8
|
-
|
|
9
|
-
def each(connection_block: nil, **kargs, &block)
|
|
10
|
-
return to_enum(:each, **kargs, connection_block: connection_block) unless block
|
|
11
|
-
|
|
12
|
-
connection_block ||= default_connection_block
|
|
13
|
-
|
|
14
|
-
cursor = nil
|
|
15
|
-
loop do
|
|
16
|
-
kargs.update(after: cursor) if cursor
|
|
17
|
-
connection = query(**kargs, &connection_block)
|
|
18
|
-
#total = connection.totalCount
|
|
19
|
-
page_info = connection.pageInfo
|
|
20
|
-
connection.nodes.each(&block)
|
|
21
|
-
|
|
22
|
-
break unless (cursor = page_info.endCursor)
|
|
23
|
-
# break unless page_info.hasNextPage
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def response_class
|
|
28
|
-
return connection_class if respond_to?(:connection_class)
|
|
29
|
-
|
|
30
|
-
@response_class ||= self.class.new_class(
|
|
31
|
-
item_class,
|
|
32
|
-
inherits: Logic::Connection,
|
|
33
|
-
namespace: "Ecoportal::API::GraphQL::Connection"
|
|
34
|
-
) do |klass|
|
|
35
|
-
klass.item_class = item_class
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
private
|
|
40
|
-
|
|
41
|
-
def default_connection_block
|
|
42
|
-
raise 'You should defined this method'
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Logic
|
|
5
|
+
class QueryConnection < Logic::Query
|
|
6
|
+
accepted_params :searchConf, :after, :before, :first, :last
|
|
7
|
+
include Enumerable
|
|
8
|
+
|
|
9
|
+
def each(connection_block: nil, **kargs, &block)
|
|
10
|
+
return to_enum(:each, **kargs, connection_block: connection_block) unless block
|
|
11
|
+
|
|
12
|
+
connection_block ||= default_connection_block
|
|
13
|
+
|
|
14
|
+
cursor = nil
|
|
15
|
+
loop do
|
|
16
|
+
kargs.update(after: cursor) if cursor
|
|
17
|
+
connection = query(**kargs, &connection_block)
|
|
18
|
+
#total = connection.totalCount
|
|
19
|
+
page_info = connection.pageInfo
|
|
20
|
+
connection.nodes.each(&block)
|
|
21
|
+
|
|
22
|
+
break unless (cursor = page_info.endCursor)
|
|
23
|
+
# break unless page_info.hasNextPage
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def response_class
|
|
28
|
+
return connection_class if respond_to?(:connection_class)
|
|
29
|
+
|
|
30
|
+
@response_class ||= self.class.new_class(
|
|
31
|
+
item_class,
|
|
32
|
+
inherits: Logic::Connection,
|
|
33
|
+
namespace: "Ecoportal::API::GraphQL::Connection"
|
|
34
|
+
) do |klass|
|
|
35
|
+
klass.item_class = item_class
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
private
|
|
40
|
+
|
|
41
|
+
def default_connection_block
|
|
42
|
+
raise 'You should defined this method'
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
module Ecoportal
|
|
2
|
-
module API
|
|
3
|
-
class GraphQL
|
|
4
|
-
module Logic
|
|
5
|
-
end
|
|
6
|
-
end
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
require_relative 'logic/base_model'
|
|
11
|
-
require_relative 'logic/base_query'
|
|
12
|
-
require_relative 'logic/query'
|
|
13
|
-
require_relative 'logic/mutation'
|
|
14
|
-
require_relative 'logic/connection'
|
|
15
|
-
require_relative 'logic/query_array'
|
|
16
|
-
require_relative 'logic/query_connection'
|
|
17
|
-
require_relative 'logic/payload'
|
|
18
|
-
require_relative 'logic/input'
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Logic
|
|
5
|
+
end
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
require_relative 'logic/base_model'
|
|
11
|
+
require_relative 'logic/base_query'
|
|
12
|
+
require_relative 'logic/query'
|
|
13
|
+
require_relative 'logic/mutation'
|
|
14
|
+
require_relative 'logic/connection'
|
|
15
|
+
require_relative 'logic/query_array'
|
|
16
|
+
require_relative 'logic/query_connection'
|
|
17
|
+
require_relative 'logic/payload'
|
|
18
|
+
require_relative 'logic/input'
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
module Ecoportal
|
|
2
|
-
module API
|
|
3
|
-
class GraphQL
|
|
4
|
-
module Model
|
|
5
|
-
class Account < Logic::BaseModel
|
|
6
|
-
root!
|
|
7
|
-
|
|
8
|
-
passkey :id
|
|
9
|
-
passthrough :default_tag
|
|
10
|
-
passboolean :active
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Model
|
|
5
|
+
class Account < Logic::BaseModel
|
|
6
|
+
root!
|
|
7
|
+
|
|
8
|
+
passkey :id
|
|
9
|
+
passthrough :default_tag
|
|
10
|
+
passboolean :active
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
module Ecoportal
|
|
2
|
-
module API
|
|
3
|
-
class GraphQL
|
|
4
|
-
module Model
|
|
5
|
-
class Action < Base::Action
|
|
6
|
-
embeds_one :actionCategory, klass: GraphQL::Base::ActionCategory
|
|
7
|
-
embeds_many :assignedTo, klass: Model::PersonMember
|
|
8
|
-
embeds_one :creator, klass: Model::PersonMember
|
|
9
|
-
embeds_one :creatorUser, klass: Model::User
|
|
10
|
-
embeds_one :updater, klass: Model::PersonMember
|
|
11
|
-
embeds_one :updaterUser, klass: Model::User
|
|
12
|
-
embeds_one :completer, klass: Model::PersonMember
|
|
13
|
-
embeds_many :fileContainers, klass: Model::FileContainer
|
|
14
|
-
embeds_many :linkedResources, klass: Model::Resource
|
|
15
|
-
embeds_many :locations, klass: Model::LocationNode
|
|
16
|
-
#embeds_many :activities, klass: GraphQL::Model::Action::Activity
|
|
17
|
-
#embeds_one :recurrence, klass: GraphQL::Model::Action::Recurrence
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Model
|
|
5
|
+
class Action < Base::Action
|
|
6
|
+
embeds_one :actionCategory, klass: GraphQL::Base::ActionCategory
|
|
7
|
+
embeds_many :assignedTo, klass: Model::PersonMember
|
|
8
|
+
embeds_one :creator, klass: Model::PersonMember
|
|
9
|
+
embeds_one :creatorUser, klass: Model::User
|
|
10
|
+
embeds_one :updater, klass: Model::PersonMember
|
|
11
|
+
embeds_one :updaterUser, klass: Model::User
|
|
12
|
+
embeds_one :completer, klass: Model::PersonMember
|
|
13
|
+
embeds_many :fileContainers, klass: Model::FileContainer
|
|
14
|
+
embeds_many :linkedResources, klass: Model::Resource
|
|
15
|
+
embeds_many :locations, klass: Model::LocationNode
|
|
16
|
+
#embeds_many :activities, klass: GraphQL::Model::Action::Activity
|
|
17
|
+
#embeds_one :recurrence, klass: GraphQL::Model::Action::Recurrence
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Ecoportal
|
|
2
|
+
module API
|
|
3
|
+
class GraphQL
|
|
4
|
+
module Model
|
|
5
|
+
class ActionEvent < Base::ActionEvent
|
|
6
|
+
# assignedPersonMembers: [PreviewPersonMember!]! — Model::PersonMember's
|
|
7
|
+
# read fields are a compatible superset.
|
|
8
|
+
embeds_many :assignedPersonMembers, klass: Model::PersonMember
|
|
9
|
+
embeds_many :pages, klass: "Ecoportal::API::GraphQL::Model::ActionEventPage"
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|