diff --git a/Changelog.md b/Changelog.md index 687217375..eeb7dfbe5 100644 --- a/Changelog.md +++ b/Changelog.md @@ -11,6 +11,7 @@ * Refactor ConversationsController, move query building to User model. [#4547](https://github.com/diaspora/diaspora/pull/4547) * Refactor the Twitter service model [#4387](https://github.com/diaspora/diaspora/pull/4387) * Refactor ConversationsController#create, move more stuff to User model [#4551](https://github.com/diaspora/diaspora/pull/4551) +* Refactor MessagesController#create, move stuff to User model [#4556](https://github.com/diaspora/diaspora/pull/4556) ## Bug fixes * Highlight down arrow at the user menu on hover [#4441](https://github.com/diaspora/diaspora/pull/4441) diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 8dd63a96d..c67abd197 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -11,10 +11,8 @@ class MessagesController < ApplicationController def create conversation = Conversation.find(params[:conversation_id]) - message = conversation.messages.build( - :text => params[:message][:text], - :author => current_user.person - ) + opts = params.require(:message).permit(:text) + message = current_user.build_message(conversation, opts) if message.save Rails.logger.info("event=create type=comment user=#{current_user.diaspora_handle} status=success message=#{message.id} chars=#{params[:message][:text].length}") diff --git a/app/models/user/social_actions.rb b/app/models/user/social_actions.rb index a20085095..6bb547f40 100644 --- a/app/models/user/social_actions.rb +++ b/app/models/user/social_actions.rb @@ -36,6 +36,13 @@ module User::SocialActions end end + def build_message(conversation, opts={}) + conversation.messages.build( + text: opts[:text], + author: self.person + ) + end + def find_or_create_participation!(target) participations.where(:target_id => target).first || participate!(target) end