Mercurial > rsstweet
comparison app/controllers/tweets_controller.rb @ 165:5af9b537db86
Unbreak \everything/
- simplify routing, no more split hackery
- fix user lookup and differentiate between id and name lookup
| author | nanaya <me@nanaya.pro> |
|---|---|
| date | Fri, 03 Aug 2018 02:31:25 +0900 |
| parents | 59a4645fd24c |
| children | 469df6354341 |
comparison
equal
deleted
inserted
replaced
| 164:59a4645fd24c | 165:5af9b537db86 |
|---|---|
| 1 class TweetsController < ApplicationController | 1 class TweetsController < ApplicationController |
| 2 before_action :validate_id, :only => :show | |
| 3 | |
| 4 def index | 2 def index |
| 5 return try_redirect if params[:id] | 3 return redirect if params[:id] || params[:name] |
| 6 end | 4 end |
| 7 | 5 |
| 8 def show | 6 def show |
| 9 client = Tweet.new(params[:id]) | 7 return redirect if params[:id][/D/].present? |
| 8 | |
| 9 client = Tweet.new(params[:id].to_i) | |
| 10 @user = client.user | |
| 11 | |
| 12 return redirect if @user.screen_name != params[:name] | |
| 13 | |
| 10 @tweets = client.timeline | 14 @tweets = client.timeline |
| 11 @user = client.user | |
| 12 rescue Twitter::Error::NotFound | 15 rescue Twitter::Error::NotFound |
| 13 head :not_found | 16 head :not_found |
| 14 rescue Twitter::Error::Unauthorized | 17 rescue Twitter::Error::Unauthorized |
| 15 head :forbidden | 18 head :forbidden |
| 16 end | 19 end |
| 17 | 20 |
| 18 private | 21 def redirect |
| 19 | 22 @user ||= Tweet.new(params[:id] || params[:name]).user |
| 20 def validate_id | 23 redirect_to tweet_path(@user.id, @user.screen_name) |
| 21 id = params[:id].split("/")[0] | |
| 22 if id[/\D/].nil? | |
| 23 params[:id] = id | |
| 24 else | |
| 25 try_redirect | |
| 26 end | |
| 27 end | |
| 28 | |
| 29 def try_redirect | |
| 30 user = Tweet.new(params[:id]).user | |
| 31 redirect_to tweet_path("#{user.id}/#{user.screen_name}") | |
| 32 rescue Twitter::Error::NotFound | 24 rescue Twitter::Error::NotFound |
| 33 head :not_found | 25 head :not_found |
| 34 rescue Twitter::Error::Unauthorized | 26 rescue Twitter::Error::Unauthorized |
| 35 head :forbidden | 27 head :forbidden |
| 36 end | 28 end |
