diff options
author | re4k <re4k@re4k.info> | 2013-03-23 22:07:25 +0900 |
---|---|---|
committer | re4k <re4k@re4k.info> | 2013-03-23 22:07:25 +0900 |
commit | c40c306bac93950ff83e65d05eede0e5cf54edc3 (patch) | |
tree | e3022aa78f0db7359258cd56eb23fb4b1f432263 /app/controllers/users_controller.rb | |
parent | 80eca202c9ae3b3a6098c1654a530b1cd46326cf (diff) | |
download | aclog-c40c306bac93950ff83e65d05eede0e5cf54edc3.tar.gz |
Implement JSON API
Diffstat (limited to 'app/controllers/users_controller.rb')
-rw-r--r-- | app/controllers/users_controller.rb | 45 |
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 |