class Asana::Client
Public: A client to interact with the Asana API. It exposes all the available resources of the Asana API in idiomatic Ruby.
Examples
# Authentication with a personal access token Asana::Client.new do |client| client.authentication :access_token, '...' end # OAuth2 with a plain bearer token (doesn't support auto-refresh) Asana::Client.new do |client| client.authentication :oauth2, bearer_token: '...' end # OAuth2 with a plain refresh token and client credentials Asana::Client.new do |client| client.authentication :oauth2, refresh_token: '...', client_id: '...', client_secret: '...', redirect_uri: '...' end # OAuth2 with an ::OAuth2::AccessToken object Asana::Client.new do |client| client.authentication :oauth2, my_oauth2_access_token_object end # Use a custom Faraday network adapter Asana::Client.new do |client| client.authentication ... client.adapter :typhoeus end # Use a custom user agent string Asana::Client.new do |client| client.authentication ... client.user_agent '...' end # Pass in custom configuration to the Faraday connection Asana::Client.new do |client| client.authentication ... client.configure_faraday { |conn| conn.use MyMiddleware } end
Public Class Methods
Public: Initializes a new client.
Yields a {Asana::Client::Configuration} object as a configuration DSL. See {Asana::Client} for usage examples.
# File lib/asana/client.rb, line 75 def initialize config = Configuration.new.tap { |c| yield c }.to_h @http_client = HttpClient.new(authentication: config.fetch(:authentication), adapter: config[:faraday_adapter], user_agent: config[:user_agent], debug_mode: config[:debug_mode], &config[:faraday_configuration]) end
Public Instance Methods
Public: Performs a DELETE request against an arbitrary Asana URL. Allows for the user to interact with the API in ways that haven't been reflected/foreseen in this library.
# File lib/asana/client.rb, line 109 def delete(url, *args) @http_client.delete(url, *args) end
Public: Performs a GET request against an arbitrary Asana URL. Allows for the user to interact with the API in ways that haven't been reflected/foreseen in this library.
# File lib/asana/client.rb, line 88 def get(url, *args) @http_client.get(url, *args) end
Public: Performs a POST request against an arbitrary Asana URL. Allows for the user to interact with the API in ways that haven't been reflected/foreseen in this library.
# File lib/asana/client.rb, line 95 def post(url, *args) @http_client.post(url, *args) end
Public: Performs a PUT request against an arbitrary Asana URL. Allows for the user to interact with the API in ways that haven't been reflected/foreseen in this library.
# File lib/asana/client.rb, line 102 def put(url, *args) @http_client.put(url, *args) end