Pull request from Team Stream

Comments/suggestions related to the app's architecture would be appreciated!
Okay, so this is a totally fine way to set up your code. For reals. However!

I would suggest pulling pretty much everything below the private method into a class (or multiple classes, depending on how you wanted to set things up.) Basically, these methods don't have anything to do with the path a user is taking through your applications, so you want to move them out of the controller. You could move them to the user model, since all this stuff is based around the user's information, BUT it's not creating or modifying against something specific in your database. 

So one way to do that is create a class and move this kind of logic in there.

```ruby
class TwitterHomePageSetter
  def initialize(user_id)
    @twitter_credentials = Provider.find_by_name_and_user_id("twitter", user_id)
    load_twitter_data
  end

  def load_twitter_data
    create_twitter_client
    twitter_feeds = current_user.feeds.where(provider: "twitter")

    twitter_feeds.each do |feed|
      @client.user_timeline(feed.uid.to_i).each do |tweet|
        feed.posts.find_or_create_by(
          author_name: tweet.user.name,
          author_handle: tweet.user.handle,
          author_profile_pic: tweet.user.profile_image_uri.to_s,
          content: tweet.text,
          uid: tweet.id.to_s,
          posted_time: tweet.created_at
        )
      end
    end
  end

  def create_twitter_client

    @client = Twitter::REST::Client.new do |config|
      config.consumer_key        = ENV["TWITTER_API_KEY"]
      config.consumer_secret     = ENV["TWITTER_API_SECRET"]
      config.access_token        = @twitter_credentials.token
      config.access_token_secret = @twitter_credentials.secret
    end
  end

end
```

And then in your controller, instead of
```load_twitter_data if current_user.providers.find_by(name: "twitter")```
you could have
```TwitterHomePageSetter.new(session[:user_id]) if current_user.providers.find_by(name: "twitter")```

You can do this with all of your different providers. (You could also put it all in one class, just a HomePageSetter, but then you'd have to keep track of a bunch of different variables, and it might not be as clear what's happening.) You can also set a variable, ie
``` @twitter_feed = TwitterHomePageSetter.new(session[:user_id])``` and then access that variable, so if there are some methods that you only want to call in specific situations, you can then call them on that instance variable.

Does this make sense? Creating skinny controllers is kind of a Big Important idea, so we can talk more about it when I'm in class on Wednesday!