Skip to content

Instantly share code, notes, and snippets.

@oleglukashev
Created April 20, 2015 13:58
Show Gist options
  • Save oleglukashev/57cc800599d1edc8e4a0 to your computer and use it in GitHub Desktop.
Save oleglukashev/57cc800599d1edc8e4a0 to your computer and use it in GitHub Desktop.
class DiscussionMessagesController < ApplicationController
def create
opponent_id = params[:discussion_message][:opponent_id]
@discussion = find_sample_discussion opponent_id
unless @discussion
@discussion = Discussion.create()
@discussion.discussion_users.new(user_id: opponent_id)
@discussion.discussion_users.new(user_id: current_user.id)
@discussion.save
end
@discussion_message = DiscussionMessage.new discussion_message_params
@discussion_message.discussion_id = @discussion.id
if @discussion_message.save
render json: { }, status: :ok
else
render json: @discussion_message.errors, status: :unprocessable_entity
end
end
private
def find_sample_discussion opponent_id
current_user.discussion_users.each do |user|
if DiscussionUser.find_by_user_id_and_discussion_id(opponent_id, user.discussion.id).present?
return user.discussion
end
end
nil
end
def discussion_message_params
params.require(:discussion_message).permit(:text, :discussion_id, :user_id)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment