aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/tweet.rb
diff options
context:
space:
mode:
authorrhenium <rhenium@rhe.jp>2014-05-19 06:27:32 +0900
committerrhenium <rhenium@rhe.jp>2014-05-19 06:27:32 +0900
commitebfc5a3faa8e7fa5eb26cddeb502f71ea6dd6e5e (patch)
tree0d00a50f02af7c9acbca382ef8ec8c6195e00fc8 /app/models/tweet.rb
parent1d5f8cbea05bd18801cb5402fa9d013572626df2 (diff)
downloadaclog-ebfc5a3faa8e7fa5eb26cddeb502f71ea6dd6e5e.tar.gz
api: deprecate api/tweets/user_discover*
Diffstat (limited to 'app/models/tweet.rb')
-rw-r--r--app/models/tweet.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/app/models/tweet.rb b/app/models/tweet.rb
index 3dc7ccd..9f769d2 100644
--- a/app/models/tweet.rb
+++ b/app/models/tweet.rb
@@ -26,6 +26,18 @@ class Tweet < ActiveRecord::Base
scope :favorited_by, ->(user) { joins(:favorites).where(favorites: { user: user }) }
+ # deprecated
+ scope :discovered_by, ->(user) {
+ load_count = all.limit_value.to_i + all.offset_value.to_i
+ load_count = nil if load_count == 0
+
+ un = [:favorites, :retweets].map {|m|
+ user.__send__(m).select(:tweet_id).order(tweet_id: :desc).limit(load_count)
+ }.map {|m| "(#{m.to_sql})" }.join(" UNION ")
+
+ joins("INNER JOIN ((#{un})) reactions ON reactions.tweet_id = tweets.id")
+ }
+
class << self
def initialize_from_json(json, ignore_relation: false)
tweet = self.new(id: json[:id],