Sha256: 6913966ffa16d5d0df4b538d1a224f84726864180b40091528ed7061717fddd9

Contents?: true

Size: 1.56 KB

Versions: 55

Compression:

Stored size: 1.56 KB

Contents

module ContentProviders
  # Provides a form for a Participant to compose a new Message.
  class NewMessageFormProvider < BitCore::ContentProvider
    def render_current(options)
      view = options.view_context
      authorize! options.participant, view
      view.render(
        template: "think_feel_do_engine/messages/new",
        locals: {
          compose_path: view.params[:compose_path],
          create_path: view.participant_data_path,
          message: message_for_reply(options),
          new_message: message(options.participant),
          recipient: view.params[:recipient],
          recipient_id: view.params[:recipient_id],
          recipient_type: view.params[:recipient_type],
          subject: view.params[:subject],
          tool: content_module.tool
        }
      )
    end

    def data_class_name
      "Message"
    end

    def data_attributes
      [:body, :recipient_id, :recipient_type, :subject]
    end

    def show_nav_link?
      false
    end

    private

    def message_for_reply(options)
      if options.view_context.params[:message_id]
        options
          .participant
          .received_messages
          .find(options.view_context.params[:message_id])
      end
    end

    def message(participant)
      coach = participant.coach

      participant.sent_messages.build(
        recipient_id: coach.id,
        recipient_type: coach.class.to_s
      )
    end

    def authorize!(participant, view)
      unless participant.active_membership.present?
        view.controller.redirect_to view.root_url
      end
    end
  end
end

Version data entries

55 entries across 55 versions & 1 rubygems

Version Path
think_feel_do_engine-3.19.9 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.19.8 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.19.7 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.19.6 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.19.5 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.19.4 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.19.3 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.19.2 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.19.1 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.19.0 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.18.0 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.17.2 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.17.1 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.17.0 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.16.3 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.16.2 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.16.1 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.15.7 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.16.0 app/models/content_providers/new_message_form_provider.rb
think_feel_do_engine-3.15.6 app/models/content_providers/new_message_form_provider.rb