jjeremydiaz/OpenHouse

View on GitHub
app/controllers/conversations_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class ConversationsController < ApplicationController
    before_action do
        @user = current_user
    end
    
    def index
        @user = current_user
        @users = User.all
        @conversations = Conversation.all
    end
    
    def create
        if Conversation.between(params[:sender_id],params[:recipient_id]).present?
            @conversation = Conversation.between(params[:sender_id], params[:recipient_id]).first
        else
            @conversation = Conversation.create!(conversation_params)
        end
        redirect_to conversation_messages_path(@conversation)
    end
    
    def send_request
        @id = params[:id]
        if Conversation.between(@user.id, @id).present?
            @conversation = Conversation.between(@user.id, @id).first
        else
            @conversation = Conversation.create!({sender_id: @user.id, recipient_id: @id})
        end
        
        # Send a message
        @message_params = {body: "I would like to reserve your place.", user_id: @user.id}
        @message = @conversation.messages.new(@message_params)
        @message.save!
        flash[:notice] = "Your request has been sent."
        redirect_to :back
    end
    
private
    def conversation_params
        params.permit(:sender_id, :recipient_id)
    end
end