diff --git a/app/controllers/conversations_controller.rb b/app/controllers/conversations_controller.rb index 75c1322..1de96d3 100644 --- a/app/controllers/conversations_controller.rb +++ b/app/controllers/conversations_controller.rb @@ -1,5 +1,22 @@ # frozen_string_literal: true class ConversationsController < ApplicationController - def index; end + def index + @conversations = @current_user.conversations + end + + def show + @conversation = @current_user.conversations.find(params[:id]) + @messages = @conversation.messages + @prompt = Message.new(conversation: @conversation) + end + + def create + @conversation = @current_user.conversations.new + if @conversation.save + redirect_to @conversation + else + render :index, status: :unprocessable_entity + end + end end diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb new file mode 100644 index 0000000..027179c --- /dev/null +++ b/app/controllers/messages_controller.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class MessagesController < ApplicationController + def create + # TODO: Revisit auth once cancancan is installed + @message = Message.new(message_params) + if @message.save + redirect_to @message.conversation + else + redirect_to conversations_path + end + end + + private + + def message_params + params.require(:message).permit(:conversation_id, :body) + end +end diff --git a/app/models/conversation.rb b/app/models/conversation.rb index a80d3cf..3ea3a2f 100644 --- a/app/models/conversation.rb +++ b/app/models/conversation.rb @@ -3,5 +3,5 @@ class Conversation < ApplicationRecord belongs_to :user - has_many :messages, dependent: :destro + has_many :messages, dependent: :destroy end diff --git a/app/views/conversations/index.html.erb b/app/views/conversations/index.html.erb index e69de29..b7b3a3f 100644 --- a/app/views/conversations/index.html.erb +++ b/app/views/conversations/index.html.erb @@ -0,0 +1,11 @@ +