Class: PT::Client
- Inherits:
-
Object
- Object
- PT::Client
- Defined in:
- lib/pt/client.rb
Constant Summary collapse
- STORY_FIELDS =
':default,requested_by,owners,tasks,comments(:default,person,file_attachments)'
Class Method Summary collapse
Instance Method Summary collapse
- #add_label(project, task, label) ⇒ Object
- #assign_task(project, task, owner) ⇒ Object
- #comment_task(project, task, comment) ⇒ Object
- #create_task(project, name, owner_ids, task_type) ⇒ Object
- #create_task_with_description(project, name, owner, task_type, description) ⇒ Object
- #estimate_task(project, task, points) ⇒ Object
- #find_member(project, query) ⇒ Object
- #get_activities(project, limit) ⇒ Object
- #get_all_stories(project, user_name) ⇒ Object
- #get_current_iteration(project) ⇒ Object
- #get_member(project, query) ⇒ Object
- #get_members(project) ⇒ Object
- #get_membership(project, email) ⇒ Object
- #get_my_info ⇒ Object
- #get_my_open_tasks(project, user_name) ⇒ Object
- #get_my_tasks_to_accept(project, user_name) ⇒ Object
- #get_my_tasks_to_deliver(project, user_name) ⇒ Object
- #get_my_tasks_to_estimate(project, user_name) ⇒ Object
- #get_my_tasks_to_finish(project, user_name) ⇒ Object
- #get_my_tasks_to_reject(project, user_name) ⇒ Object
- #get_my_tasks_to_start(project, user_name) ⇒ Object
- #get_my_work(project, user_name) ⇒ Object
- #get_project(project_id) ⇒ Object
- #get_projects ⇒ Object
- #get_task_by_id(project, id) ⇒ Object (also: #get_story)
- #get_tasks_to_assign(project) ⇒ Object
- #get_work(project) ⇒ Object
-
#initialize(token) ⇒ Client
constructor
A new instance of Client.
- #mark_task_as(project, task, state) ⇒ Object
- #search_for_story(project, query) ⇒ Object
Constructor Details
#initialize(token) ⇒ Client
Returns a new instance of Client.
17 18 19 20 |
# File 'lib/pt/client.rb', line 17 def initialize(token) @client = TrackerApi::Client.new(token: token) @project = nil end |
Class Method Details
.get_api_token(email, password) ⇒ Object
11 12 13 14 15 |
# File 'lib/pt/client.rb', line 11 def self.get_api_token(email, password) PivotalAPI::Me.retrieve(email, password) rescue RestClient:: raise PT::InputError.new("Bad email/password combination.") end |
Instance Method Details
#add_label(project, task, label) ⇒ Object
135 136 137 138 139 |
# File 'lib/pt/client.rb', line 135 def add_label(project, task, label) task = get_story(project, task.id) task.add_label(label) task.save end |
#assign_task(project, task, owner) ⇒ Object
130 131 132 133 |
# File 'lib/pt/client.rb', line 130 def assign_task(project, task, owner) task = get_story(project, task.id) task.add_owner(owner) end |
#comment_task(project, task, comment) ⇒ Object
141 142 143 144 |
# File 'lib/pt/client.rb', line 141 def comment_task(project, task, comment) task = get_story(project, task.id) task.create_comment(text: comment) end |
#create_task(project, name, owner_ids, task_type) ⇒ Object
146 147 148 |
# File 'lib/pt/client.rb', line 146 def create_task(project, name, owner_ids, task_type) project.create_story(:name => name, :story_type => task_type, owner_ids: owner_ids) end |
#create_task_with_description(project, name, owner, task_type, description) ⇒ Object
150 151 152 |
# File 'lib/pt/client.rb', line 150 def create_task_with_description(project, name, owner, task_type, description) project.create_story(:name => name, :story_type => task_type, :description => description) end |
#estimate_task(project, task, points) ⇒ Object
124 125 126 127 128 |
# File 'lib/pt/client.rb', line 124 def estimate_task(project, task, points) task = get_story(project, task.id) task.estimate = points task.save end |
#find_member(project, query) ⇒ Object
107 108 109 110 111 |
# File 'lib/pt/client.rb', line 107 def find_member(project, query) memberships = project.memberships.detect do |m| m.person.name.downcase.start_with?(query.downcase) || m.person.initials.downcase == query.downcase end end |
#get_activities(project, limit) ⇒ Object
43 44 45 |
# File 'lib/pt/client.rb', line 43 def get_activities(project, limit) project.activity end |
#get_all_stories(project, user_name) ⇒ Object
97 98 99 |
# File 'lib/pt/client.rb', line 97 def get_all_stories(project, user_name) project.stories limit: 20, fields: STORY_FIELDS end |
#get_current_iteration(project) ⇒ Object
39 40 41 |
# File 'lib/pt/client.rb', line 39 def get_current_iteration(project) PivotalTracker::Iteration.current(project) end |
#get_member(project, query) ⇒ Object
102 103 104 105 |
# File 'lib/pt/client.rb', line 102 def get_member(project, query) member = project.memberships.select{ |m| m.person.name.downcase.start_with?(query.downcase) || m.person.initials.downcase == query.downcase } member.empty? ? nil : member.first end |
#get_members(project) ⇒ Object
113 114 115 |
# File 'lib/pt/client.rb', line 113 def get_members(project) project.memberships fields: ':default,person' end |
#get_membership(project, email) ⇒ Object
31 32 33 |
# File 'lib/pt/client.rb', line 31 def get_membership(project, email) PivotalTracker::Membership.all(project).select{ |m| m.email == email }.first end |
#get_my_info ⇒ Object
35 36 37 |
# File 'lib/pt/client.rb', line 35 def get_my_info @client.me end |
#get_my_open_tasks(project, user_name) ⇒ Object
64 65 66 |
# File 'lib/pt/client.rb', line 64 def get_my_open_tasks(project, user_name) project.stories filter: "owner:#{user_name}", fields: STORY_FIELDS end |
#get_my_tasks_to_accept(project, user_name) ⇒ Object
85 86 87 |
# File 'lib/pt/client.rb', line 85 def get_my_tasks_to_accept(project, user_name) project.stories filter: "owner:#{user_name} -state:accepted", limit: 50, fields: STORY_FIELDS end |
#get_my_tasks_to_deliver(project, user_name) ⇒ Object
81 82 83 |
# File 'lib/pt/client.rb', line 81 def get_my_tasks_to_deliver(project, user_name) project.stories filter: "owner:#{user_name} -state:delivered,accepted,rejected", limit: 50, fields: STORY_FIELDS end |
#get_my_tasks_to_estimate(project, user_name) ⇒ Object
68 69 70 |
# File 'lib/pt/client.rb', line 68 def get_my_tasks_to_estimate(project, user_name) project.stories( filter: "owner:#{user_name} type:feature estimate:-1", fields: STORY_FIELDS) end |
#get_my_tasks_to_finish(project, user_name) ⇒ Object
77 78 79 |
# File 'lib/pt/client.rb', line 77 def get_my_tasks_to_finish(project, user_name) project.stories filter: "owner:#{user_name} -state:finished,delivered,accepted,rejected", limit: 50, fields: STORY_FIELDS end |
#get_my_tasks_to_reject(project, user_name) ⇒ Object
89 90 91 |
# File 'lib/pt/client.rb', line 89 def get_my_tasks_to_reject(project, user_name) project.stories filter: "owner:#{user_name} -state:rejected", limit: 50, fields: STORY_FIELDS end |
#get_my_tasks_to_start(project, user_name) ⇒ Object
72 73 74 75 |
# File 'lib/pt/client.rb', line 72 def get_my_tasks_to_start(project, user_name) tasks = project.stories filter: "owner:#{user_name} state:unscheduled,rejected,unstarted", limit: 50, fields: STORY_FIELDS tasks.reject{ |t| (t.story_type == 'feature') && (t.estimate == -1) } end |
#get_my_work(project, user_name) ⇒ Object
51 52 53 |
# File 'lib/pt/client.rb', line 51 def get_my_work(project, user_name) project.stories(filter: "owner:#{user_name} -state:accepted", limit: 50, fields: STORY_FIELDS) end |
#get_project(project_id) ⇒ Object
22 23 24 25 |
# File 'lib/pt/client.rb', line 22 def get_project(project_id) project = @client.project(project_id) project end |
#get_projects ⇒ Object
27 28 29 |
# File 'lib/pt/client.rb', line 27 def get_projects @client.projects end |
#get_task_by_id(project, id) ⇒ Object Also known as: get_story
59 60 61 |
# File 'lib/pt/client.rb', line 59 def get_task_by_id(project, id) project.story(id, fields: STORY_FIELDS) end |
#get_tasks_to_assign(project) ⇒ Object
93 94 95 |
# File 'lib/pt/client.rb', line 93 def get_tasks_to_assign(project) project.stories filter: "-state:accepted", limit: 50 end |
#get_work(project) ⇒ Object
47 48 49 |
# File 'lib/pt/client.rb', line 47 def get_work(project) project.stories(filter: 'state:unscheduled,unstarted,started', fields: STORY_FIELDS ) end |
#mark_task_as(project, task, state) ⇒ Object
118 119 120 121 122 |
# File 'lib/pt/client.rb', line 118 def mark_task_as(project, task, state) task = get_story(project, task.id) task.current_state = state task.save end |
#search_for_story(project, query) ⇒ Object
55 56 57 |
# File 'lib/pt/client.rb', line 55 def search_for_story(project, query) project.stories(filter: query.to_s ,fields: STORY_FIELDS) end |