lib/twitter/rest/client.rb in twitter-5.6.0 vs lib/twitter/rest/client.rb in twitter-5.7.0

- old
+ new

@@ -3,28 +3,11 @@ require 'faraday/request/multipart' require 'json' require 'timeout' require 'twitter/client' require 'twitter/error' -require 'twitter/error/configuration_error' -require 'twitter/error/request_timeout' -require 'twitter/rest/api/direct_messages' -require 'twitter/rest/api/favorites' -require 'twitter/rest/api/friends_and_followers' -require 'twitter/rest/api/help' -require 'twitter/rest/api/lists' -require 'twitter/rest/api/oauth' -require 'twitter/rest/api/places_and_geo' -require 'twitter/rest/api/saved_searches' -require 'twitter/rest/api/search' -require 'twitter/rest/api/spam_reporting' -require 'twitter/rest/api/suggested_users' -require 'twitter/rest/api/timelines' -require 'twitter/rest/api/trends' -require 'twitter/rest/api/tweets' -require 'twitter/rest/api/undocumented' -require 'twitter/rest/api/users' +require 'twitter/rest/api' require 'twitter/rest/request/multipart_with_file' require 'twitter/rest/response/parse_json' require 'twitter/rest/response/raise_error' module Twitter @@ -32,26 +15,11 @@ # Wrapper for the Twitter REST API # # @note All methods have been separated into modules and follow the same grouping used in {http://dev.twitter.com/doc the Twitter API Documentation}. # @see http://dev.twitter.com/pages/every_developer class Client < Twitter::Client - include Twitter::REST::API::DirectMessages - include Twitter::REST::API::Favorites - include Twitter::REST::API::FriendsAndFollowers - include Twitter::REST::API::Help - include Twitter::REST::API::Lists - include Twitter::REST::API::OAuth - include Twitter::REST::API::PlacesAndGeo - include Twitter::REST::API::SavedSearches - include Twitter::REST::API::Search - include Twitter::REST::API::SpamReporting - include Twitter::REST::API::SuggestedUsers - include Twitter::REST::API::Timelines - include Twitter::REST::API::Trends - include Twitter::REST::API::Tweets - include Twitter::REST::API::Undocumented - include Twitter::REST::API::Users + include Twitter::REST::API attr_accessor :bearer_token attr_writer :connection_options, :middleware ENDPOINT = 'https://api.twitter.com' def connection_options @@ -89,17 +57,18 @@ end end # Perform an HTTP GET request def get(path, params = {}) - request(:get, path, params) + headers = request_headers(:get, path, params) + request(:get, path, params, headers) end # Perform an HTTP POST request def post(path, params = {}) - signature_params = params.values.any? { |value| value.respond_to?(:to_io) } ? {} : params - request(:post, path, params, signature_params) + headers = params.values.any? { |value| value.respond_to?(:to_io) } ? request_headers(:post, path, params, {}) : request_headers(:post, path, params) + request(:post, path, params, headers) end # @return [Boolean] def bearer_token? !!bearer_token @@ -117,15 +86,12 @@ # @return [Faraday::Connection] def connection @connection ||= Faraday.new(ENDPOINT, connection_options) end - def request(method, path, params = {}, signature_params = params) - response = connection.send(method.to_sym, path, params) do |request| - request.headers.update(request_headers(method, path, params, signature_params)) - end - response.env + def request(method, path, params = {}, headers = {}) + connection.send(method.to_sym, path, params) { |request| request.headers.update(headers) }.env rescue Faraday::Error::TimeoutError, Timeout::Error => error raise(Twitter::Error::RequestTimeout.new(error)) rescue Faraday::Error::ClientError, JSON::ParserError => error fail(Twitter::Error.new(error)) end @@ -136,15 +102,15 @@ if bearer_token_request headers[:accept] = '*/*' headers[:authorization] = bearer_token_credentials_auth_header headers[:content_type] = 'application/x-www-form-urlencoded; charset=UTF-8' else - headers[:authorization] = auth_token(method, path, params, signature_params) + headers[:authorization] = auth_header(method, path, params, signature_params) end headers end - def auth_token(method, path, params = {}, signature_params = params) + def auth_header(method, path, params = {}, signature_params = params) if !user_token? @bearer_token = token unless bearer_token? bearer_auth_header else oauth_auth_header(method, ENDPOINT + path, signature_params).to_s