diff options
author | Rhenium <rhenium@rhe.jp> | 2014-03-18 23:07:02 +0900 |
---|---|---|
committer | Rhenium <rhenium@rhe.jp> | 2014-03-18 23:07:02 +0900 |
commit | adef4c0c2087e1e475ab1aa4b4df68554bdb1a88 (patch) | |
tree | 38b10ca182f2676e3ed55ba1ea778bcf941b5fd7 /app/models/favorite.rb | |
parent | c73aecc3605aee69a12b4f02a4d01e00b77cac83 (diff) | |
download | aclog-adef4c0c2087e1e475ab1aa4b4df68554bdb1a88.tar.gz |
refactor models
Diffstat (limited to 'app/models/favorite.rb')
-rw-r--r-- | app/models/favorite.rb | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/app/models/favorite.rb b/app/models/favorite.rb index d266135..4447ccf 100644 --- a/app/models/favorite.rb +++ b/app/models/favorite.rb @@ -6,18 +6,15 @@ class Favorite < ActiveRecord::Base tweet = Tweet.create_from_json(json[:target_object]) user = User.create_from_json(json[:source]) - favorite = Favorite.new(tweet: tweet, user: user) - transaction do - favorite.save! + favorite = Favorite.create!(tweet: tweet, user: user) tweet.update_reactions_count(favorites_count: 1, json: json[:target_object]) + + favorite end rescue ActiveRecord::RecordNotUnique => e - logger.debug("Duplicate favorite: #{favorite.user_id} => #{favorite.tweet_id}") - rescue => e - logger.error("Failed to create a favorite: #{e.class}: #{e.message}/#{e.backtrace.join("\n")}") - ensure - return favorite + logger.debug("Duplicate favorite: #{user.id} => #{tweet.id}") + self.where(tweet: tweet, user: user).first end def self.destroy_from_json(json) @@ -27,7 +24,5 @@ class Favorite < ActiveRecord::Base Tweet.find(json[:target_object][:id]).update_reactions_count(favorites_count: -1, json: json[:target_object]) end end - rescue => e - logger.error("Failed to destroy a favorite: #{e.class}: #{e.message}/#{e.backtrace.join("\n")}") end end |