Sha256: 73fb3ab0f280c85f7d23418e1d70cd995aae3fef4eff7b6bc97393c9c01eee0f

Contents?: true

Size: 1.54 KB

Versions: 25

Compression:

Stored size: 1.54 KB

Contents

# frozen_string_literal: true
module Hyrax
  module Workflow
    # Helps consolidate and map a notification configuration.
    #
    # @note In an effort to appease Rubocop, I'm crafting this parameter object. It makes more sense anyway.
    class NotificationConfigurationParameter
      def self.build_from_workflow_action_configuration(workflow_action:, config:)
        notification_name = config.fetch(:name)
        notification_type = config.fetch(:notification_type)
        recipients = config.slice(:to, :cc, :bcc)
        new(
          notification_name: notification_name,
          reason: Sipity::NotifiableContext::REASON_ACTION_IS_TAKEN,
          recipients: recipients,
          notification_type: notification_type,
          scope: workflow_action
        )
      end

      include Dry::Equalizer(:reason, :scope, :notification_name, :recipients, :notification_type)

      def initialize(reason:, scope:, notification_name:, recipients:, notification_type:)
        self.reason = reason
        self.scope = scope
        self.notification_name = notification_name
        self.recipients = recipients
        self.notification_type = notification_type
      end

      attr_accessor :notification_name, :recipients, :notification_type

      # Why are we sending the notification?
      #
      # @see Sipity::NotifiableContext::REASON_ACTION_IS_TAKEN
      attr_accessor :reason

      # For the given reason, there is a scope for that reason. Examples
      # of scope include an action name or a state name.
      attr_accessor :scope
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
hyrax-5.0.1 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-5.0.0 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-5.0.0.rc3 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-5.0.0.rc2 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-5.0.0.rc1 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-3.6.0 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-4.0.0 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-4.0.0.rc3 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-4.0.0.rc2 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-4.0.0.rc1 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-3.5.0 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-4.0.0.beta2 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-3.4.2 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-4.0.0.beta1 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-3.4.1 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-3.4.0 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-3.3.0 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-3.2.0 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-3.1.0 app/services/hyrax/workflow/notification_configuration_parameter.rb
hyrax-3.0.2 app/services/hyrax/workflow/notification_configuration_parameter.rb