module MessageTrain # Messages controller class MessagesController < MessageTrain::ApplicationController before_filter :load_message, only: [:show, :edit, :update] # GET /box/in/messages/1 def show respond_to do |format| format.json { render :show } end end # GET /box/:division/messages/new def new @message = @box.new_message( message_train_conversation_id: params[:conversation_id] ) end # GET /box/:division/messages/:id/edit def edit !@message.draft && raise(ActiveRecord::RecordNotFound) end # POST /box/:division/messages def create @message = @box.send_message(message_params) if @box.errors.all.empty? if @message.draft redirect_to message_train.box_path(:drafts), alert: @box.message else redirect_to message_train.box_path(:sent), notice: @box.message end else flash[:error] = @box.message render :new end end # PATCH/PUT /box/:division/messages/:id def update !@message.draft && raise(ActiveRecord::RecordNotFound) @box.update_message(@message, message_params) if @box.errors.all.empty? if @message.draft redirect_to( message_train.box_conversation_url(@box, @message.conversation), alert: @box.message ) else redirect_to( message_train.box_path(:sent), notice: @box.message ) end else flash[:error] = @box.message render :edit end end private def load_message @message = @box.find_message(params[:id]) end # Never trust parameters from the scary internet, only allow the white list # through. def message_params permitted = params.require(:message).permit( :conversation_id, :subject, :body, :draft, attachments_attributes: [:id, :attachment, :_destroy], recipients_to_save: MessageTrain.configuration.recipient_tables.keys ) permitted['draft'] = (permitted['draft'] == :save_as_draft.l) permitted end end end