aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/users_controller.rb
diff options
context:
space:
mode:
authorre4k <re4k@re4k.info>2013-03-23 22:07:25 +0900
committerre4k <re4k@re4k.info>2013-03-23 22:07:25 +0900
commitc40c306bac93950ff83e65d05eede0e5cf54edc3 (patch)
treee3022aa78f0db7359258cd56eb23fb4b1f432263 /app/controllers/users_controller.rb
parent80eca202c9ae3b3a6098c1654a530b1cd46326cf (diff)
downloadaclog-c40c306bac93950ff83e65d05eede0e5cf54edc3.tar.gz
Implement JSON API
Diffstat (limited to 'app/controllers/users_controller.rb')
-rw-r--r--app/controllers/users_controller.rb45
1 files changed, 18 insertions, 27 deletions
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 1ebb5a6..cc11c2e 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -1,23 +1,4 @@
class UsersController < ApplicationController
- def show
- tweet_id = Integer(params[:id])
-
- @item = Tweet.find(tweet_id)
- @user = @item.user
- helpers = ApplicationController.helpers
- @title = "\"#{helpers.strip_tags(helpers.format_tweet_text(@item.text))[0...30]}\" from @#{@item.user.screen_name}"
-
- respond_to do |format|
- format.html do
- prepare_info
- end
-
- format.json do
- @trim_user = params[:trim_user] == "true"
- end
- end
- end
-
def best
user = render_timeline(params) do |tweets, user|
tweets.of(user).reacted.order_by_reactions
@@ -47,9 +28,16 @@ class UsersController < ApplicationController
end
end
- def my
+ def discovered
user = render_timeline(params) do |tweets, user|
- tweets.discovered(user).order_by_id
+ case params[:tweets]
+ when "favorite"
+ tweets.favorited_by(user).order_by_id
+ when "retweet"
+ tweets.retweeted_by(user).order_by_id
+ else
+ tweets.discovered_by(user).order_by_id
+ end
end
@title = "@#{user.screen_name}'s Recent Discoveries"
end
@@ -57,24 +45,27 @@ class UsersController < ApplicationController
private
def render_timeline(params, &g)
page = get_page_number(params)
+ count = get_page_count(params)
screen_name = params[:screen_name]
+ user_id = params[:user_id]
@user = User.where(:screen_name => screen_name).first
unless @user
- raise ActiveRecord::RecordNotFound.new(screen_name)
+ @user = User.where(:id => user_id).first
+ unless @user
+ raise ActiveRecord::RecordNotFound.new("screen_name=#{screen_name}&user_id=#{user_id}")
+ end
end
@items = g.call(Tweet, @user)
.page(page)
- .per(Settings.page_per)
+ .per(count)
respond_to do |format|
- format.html do
- prepare_info
- end
+ format.html
format.json do
- @trim_user = params[:trim_user] == "true"
+ @include_user = params[:include_user] == "true"
end
end