class Asaner::Client

Constants

API_VERSION
ENDPOINT

Public Class Methods

new(access_token) click to toggle source
# File lib/asaner/client.rb, line 6
def initialize(access_token)
  @client = Faraday.new(url: "#{ENDPOINT}") do |faraday|
    faraday.request :url_encoded
    faraday.adapter Faraday.default_adapter
    faraday.authorization :Bearer,access_token
  end
end

Public Instance Methods

me() click to toggle source
# File lib/asaner/client.rb, line 14
def me
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/users/me"
  end
  parse(response)
end
project(project_id) click to toggle source
# File lib/asaner/client.rb, line 45
def project(project_id)
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/projects/#{project_id}"
  end
  parse(response)
end
project_status(project_status_id) click to toggle source
# File lib/asaner/client.rb, line 52
def project_status(project_status_id)
  response = @client.get do |request|
    request.url "api/#{API_VERSION}//project_statuses/#{project_status_id}"
  end
  parse(response)
end
project_statuses_from_project(project_id, option_fields=[]) click to toggle source
# File lib/asaner/client.rb, line 59
def project_statuses_from_project(project_id, option_fields=[])
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/projects/#{project_id}/project_statuses"
    request.params['opt_fields'] = option_fields.join(',')
  end
  parse(response)
end
projects_from_workspace(workspace_id, option_fields=[]) click to toggle source
# File lib/asaner/client.rb, line 36
def projects_from_workspace(workspace_id, option_fields=[])
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/projects"
    request.params['workspace'] = workspace_id
    request.params['opt_fields'] = option_fields.join(',')
  end
  parse(response)
end
section(section_id) click to toggle source
# File lib/asaner/client.rb, line 75
def section(section_id)
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/sections/#{section_id}"
  end
  parse(response)
end
sections_from_project(project_id, option_fields=[]) click to toggle source
# File lib/asaner/client.rb, line 67
def sections_from_project(project_id, option_fields=[])
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/projects/#{project_id}/sections"
    request.params['opt_fields'] = option_fields.join(',')
  end
  parse(response)
end
stories_from_task(task_id) click to toggle source
# File lib/asaner/client.rb, line 104
def stories_from_task(task_id)
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/tasks/#{task_id}/stories"
  end
  parse(response)
end
subtasks_from_task(task_id, option_fields=[]) click to toggle source
# File lib/asaner/client.rb, line 97
def subtasks_from_task(task_id, option_fields=[])
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/tasks/#{task_id}/subtasks"
  end
  parse(response)
end
task(task_id, option_fields=[]) click to toggle source
# File lib/asaner/client.rb, line 90
def task(task_id, option_fields=[])
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/tasks/#{task_id}"
  end
  parse(response)
end
tasks_from_section(section_id, option_fields=[]) click to toggle source
# File lib/asaner/client.rb, line 82
def tasks_from_section(section_id, option_fields=[])
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/sections/#{section_id}/tasks"
    request.params['opt_fields'] = option_fields.join(',')
  end
  parse(response)
end
workspace(workspace_id) click to toggle source
# File lib/asaner/client.rb, line 29
def workspace(workspace_id)
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/workspaces/#{workspace_id}"
  end
  parse(response)
end
workspaces(option_fields=[]) click to toggle source
# File lib/asaner/client.rb, line 21
def workspaces(option_fields=[])
  response = @client.get do |request|
    request.url "api/#{API_VERSION}/workspaces"
    request.params['opt_fields'] = option_fields.join(',')
  end
  parse(response)
end

Private Instance Methods

parse(response) click to toggle source
# File lib/asaner/client.rb, line 113
def parse(response)
  {
    status: response.status,
    headers: response.headers,
    reason_phrase: response.reason_phrase,
    body: JSON.parse(response.body),
  }
end