aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/favorite.rb
diff options
context:
space:
mode:
authorRhenium <rhenium@rhe.jp>2014-03-18 23:07:02 +0900
committerRhenium <rhenium@rhe.jp>2014-03-18 23:07:02 +0900
commitadef4c0c2087e1e475ab1aa4b4df68554bdb1a88 (patch)
tree38b10ca182f2676e3ed55ba1ea778bcf941b5fd7 /app/models/favorite.rb
parentc73aecc3605aee69a12b4f02a4d01e00b77cac83 (diff)
downloadaclog-adef4c0c2087e1e475ab1aa4b4df68554bdb1a88.tar.gz
refactor models
Diffstat (limited to 'app/models/favorite.rb')
-rw-r--r--app/models/favorite.rb15
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