Class: Asaner::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/asaner/client.rb

Constant Summary collapse

ENDPOINT =
'https://app.asana.com/'
API_VERSION =
'1.0'

Instance Method Summary collapse

Constructor Details

#initialize(access_token) ⇒ Client

Returns a new instance of Client.



6
7
8
9
10
11
12
# 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

Instance Method Details

#meObject



14
15
16
17
18
19
# 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) ⇒ Object



45
46
47
48
49
50
# 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) ⇒ Object



52
53
54
55
56
57
# 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 = []) ⇒ Object



59
60
61
62
63
64
65
# 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 = []) ⇒ Object



36
37
38
39
40
41
42
43
# 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) ⇒ Object



75
76
77
78
79
80
# 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 = []) ⇒ Object



67
68
69
70
71
72
73
# 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) ⇒ Object



104
105
106
107
108
109
# 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 = []) ⇒ Object



97
98
99
100
101
102
# 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 = []) ⇒ Object



90
91
92
93
94
95
# 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 = []) ⇒ Object



82
83
84
85
86
87
88
# 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) ⇒ Object



29
30
31
32
33
34
# 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 = []) ⇒ Object



21
22
23
24
25
26
27
# 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