Class: PivotalTrackerCli::Api
- Inherits:
-
Object
- Object
- PivotalTrackerCli::Api
- Defined in:
- lib/api.rb
Class Method Summary collapse
- .get_all_users_for_project(project_id, api_token) ⇒ Object
- .get_backlog_for_project(project_id, api_token, limit = 3) ⇒ Object
- .get_current_stories_for_user(project_id, api_token, usernames) ⇒ Object
- .get_story_by_id(project_id, api_token, story_id) ⇒ Object
- .update_story_state(project_id, api_token, id, state, owner_ids) ⇒ Object
Class Method Details
.get_all_users_for_project(project_id, api_token) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/api.rb', line 3 def self.get_all_users_for_project(project_id, api_token) response = HTTParty.get("https://www.pivotaltracker.com/services/v5/projects/#{project_id}/memberships", headers: { 'X-TrackerToken': api_token } ) return unless response.success? member_map = {} response.parsed_response.map do |member| member_map[member['person']['username']] = { id: member['person']['id'], name: member['person']['name'] } end member_map end |
.get_backlog_for_project(project_id, api_token, limit = 3) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/api.rb', line 68 def self.get_backlog_for_project(project_id, api_token, limit=3) endpoint = "https://www.pivotaltracker.com/services/v5/projects/#{project_id}/iterations?scope=current_backlog&limit=#{limit}" response = HTTParty.get(endpoint, headers: { 'X-TrackerToken': api_token }) stories = [] response.parsed_response.each do |iteration| iteration['stories'].each do |story| stories.push(OpenStruct.new(story)) end end stories end |
.get_current_stories_for_user(project_id, api_token, usernames) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/api.rb', line 46 def self.get_current_stories_for_user(project_id, api_token, usernames) search_term = usernames.map do |username| "owner:\"#{username}\"" end.join(' OR ') response = HTTParty .get("https://www.pivotaltracker.com/services/v5/projects/#{project_id}/search", query: { query: search_term }, headers: { 'X-TrackerToken': api_token }) story_list = [] response.parsed_response['stories']['stories'].map { |story| story_list.push(OpenStruct.new(story)) } if response.success? story_list end |
.get_story_by_id(project_id, api_token, story_id) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/api.rb', line 21 def self.get_story_by_id(project_id, api_token, story_id) response = HTTParty .get("https://www.pivotaltracker.com/services/v5/projects/#{project_id}/stories/#{story_id.to_s}", headers: { 'X-TrackerToken': api_token }) OpenStruct.new(response.parsed_response) if response.success? end |
.update_story_state(project_id, api_token, id, state, owner_ids) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/api.rb', line 31 def self.update_story_state(project_id, api_token, id, state, owner_ids) response = HTTParty.put( "https://www.pivotaltracker.com/services/v5/projects/#{project_id}/stories/#{id.to_s}", headers: { 'X-TrackerToken': api_token }, body: { 'current_state': state, 'owner_ids': owner_ids } ) "Story ##{id} successfully #{state}." if response.success? end |