Sha256: 1344ca6c18cf3fc14ab347534c6a0ffc0299a30836bca4f13ec1a62b29736ea0

Contents?: true

Size: 925 Bytes

Versions: 2

Compression:

Stored size: 925 Bytes

Contents

# frozen_string_literal: true

module BootstrapFeedbacker
  class RemarksController < ApplicationController
    def new
      @remark = BootstrapFeedbacker::Remark.new
      render_update(SETTINGS.modal_id, partial: 'new')
    end

    def create
      @remark = Remark.new(remark_params)
      if @remark.save
        FeedbackMailer.feedback(@remark).deliver_now
        render_update(SETTINGS.modal_content_id, partial: 'thank_you')
      else
        render_update(SETTINGS.modal_content_id, partial: 'error', status: :unprocessable_entity)
      end
    end

    private

    def remark_params
      params.require(:remark).permit(:content).merge(
        user_id:    current_user.id,
        source_url: request.env['HTTP_REFERER'] || 'no referrer'
      )
    end

    def render_update(dom_id, partial:, status: :ok)
      render(turbo_stream: turbo_stream.update(dom_id, partial: partial), status:)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bootstrap_feedbacker-0.6.0 app/controllers/bootstrap_feedbacker/remarks_controller.rb
bootstrap_feedbacker-0.5.0 app/controllers/bootstrap_feedbacker/remarks_controller.rb