view 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
line wrap: on
line source

class TweetsController < ApplicationController
  def index
    return redirect if params[:id] || params[:name]
  end

  def show
    return redirect if params[:id][/D/].present?

    client = Tweet.new(params[:id].to_i)
    @user = client.user

    return redirect if @user.screen_name != params[:name]

    @tweets = client.timeline
  rescue Twitter::Error::NotFound
    head :not_found
  rescue Twitter::Error::Unauthorized
    head :forbidden
  end

  def redirect
    @user ||= Tweet.new(params[:id] || params[:name]).user
    redirect_to tweet_path(@user.id, @user.screen_name)
  rescue Twitter::Error::NotFound
    head :not_found
  rescue Twitter::Error::Unauthorized
    head :forbidden
  end
end