changeset 203:af84c9f23263

Fix redirect for twitter user with nil screen name Everything else is still kind of broken but it's kind of beyond help anyway
author nanaya <me@nanaya.pro>
date Mon, 19 Oct 2020 03:42:22 +0900
parents d12f671185a8
children 70e90ea4b870
files app/controllers/tweets_controller.rb
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/app/controllers/tweets_controller.rb	Sat Aug 22 04:38:30 2020 +0900
+++ b/app/controllers/tweets_controller.rb	Mon Oct 19 03:42:22 2020 +0900
@@ -9,7 +9,7 @@
     client = Tweet.new(params[:id].to_i)
     @user = client.user
 
-    return redirect if @user.screen_name != params[:name]
+    return redirect if normalized_screen_name != params[:name]
 
     @tweets = client.timeline
   rescue Twitter::Error::NotFound
@@ -20,10 +20,15 @@
 
   def redirect
     @user ||= Tweet.new(params[:id].presence || params[:name]).user
-    redirect_to tweet_path(@user.id, @user.screen_name)
+    redirect_to tweet_path(@user.id, normalized_screen_name)
   rescue Twitter::Error::NotFound
     head :not_found
   rescue Twitter::Error::Unauthorized
     head :forbidden
   end
+
+  private
+  def normalized_screen_name
+    @user.screen_name.presence || '_'
+  end
 end