1234567891011121314151617181920212223242526272829303132333435363738 |
- # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
- module Gql::Subscriptions
- class MacrosUpdate < BaseSubscription
- description 'Updated macros'
- field :macro_id, GraphQL::Types::ID, description: 'Macro ID that was updated'
- field :group_ids, [GraphQL::Types::ID], description: 'The group IDs from the updated macro'
- field :remove_macro_id, GraphQL::Types::ID, description: 'The macro ID that was removed'
- def authorized?
- true
- end
- class << self
- # Helper methods for triggering with custom payload.
- def trigger_after_create_or_update(macro)
- trigger({
- macro_id: Gql::ZammadSchema.id_from_object(macro),
- group_ids: macro.group_ids.map { |id| Gql::ZammadSchema.id_from_internal_id(Group, id) },
- event: :create_or_update
- })
- end
- def trigger_after_destroy(macro)
- trigger({ macro_id: Gql::ZammadSchema.id_from_object(macro), event: :destroy })
- end
- end
- def update
- if object[:event] == :destroy
- return { remove_macro_id: object[:macro_id] }
- end
- { macro_id: object[:macro_id], group_ids: object[:group_ids] }
- end
- end
- end
|