Sam 2013-07-23 09:48:18 +10:00
parent 7b1f9928e4
commit 0acc96c94e
2 changed files with 12 additions and 2 deletions

View File

@ -163,10 +163,16 @@ ORDER BY p.created_at desc
end
def self.log_action!(hash)
require_parameters(hash, :action_type, :user_id, :acting_user_id, :target_topic_id, :target_post_id)
required_parameters = [:action_type, :user_id, :acting_user_id, :target_topic_id, :target_post_id]
require_parameters(hash, *required_parameters)
transaction(requires_new: true) do
begin
action = new(hash)
# protect against dupes, for some reason this is failing in some cases
action = self.where(hash.select{|k,v| required_parameters.include?(k)}).first
return action if action
action = self.new(hash)
if hash[:created_at]
action.created_at = hash[:created_at]

View File

@ -87,6 +87,9 @@ describe UserAction do
stats_for_user(u).should == [UserAction::NEW_TOPIC]
stream_count(u).should == 1
# duplicate should not exception out
log_test_action
end
end
@ -107,6 +110,7 @@ describe UserAction do
it "creates a new stream entry" do
PostAction.act(liker, post, PostActionType.types[:like])
likee_stream.count.should == @old_count + 1
end
context "successful like" do