Class: PivotalAPI::Service
- Inherits:
-
Object
- Object
- PivotalAPI::Service
- Defined in:
- lib/pivotal-tracker-api/service.rb
Class Method Summary collapse
- .activity(opts = {}) ⇒ Object
- .comments(project_id, story, fields) ⇒ Object
- .iterations(opts = {}) ⇒ Object
- .me(username, password) ⇒ Object
- .project(opts = {}) ⇒ Object
- .projects(opts = {}) ⇒ Object
- .set_token(token) ⇒ Object
- .stories(opts = {}) ⇒ Object
- .story(opts = {}) ⇒ Object
- .update_story(story_id, project_id, updates = {}) ⇒ Object
Class Method Details
.activity(opts = {}) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/pivotal-tracker-api/service.rb', line 22 def activity(opts={}) # opts: # :project_id - REQUIRED - A valid pivotal project ID # :story_id - OPTIONAL - A valid pivotal story ID. NOTE: Optional if requesting project activity. Required if requesting story activity. # :fields - OPTIONAL - specific fields to ask pivotal to return for each activity # :parameters - OPTIONAL - See list of parameters here https://www.pivotaltracker.com/help/api/rest/v5#Activity # # Default Parameters: {limit: 20} raise ArgumentError.new("missing required key/value :project_id") unless opts[:project_id] project_id = opts[:project_id] opts[:parameters] = {} unless opts[:parameters] opts[:parameters][:limit] = 20 unless opts[:parameters][:limit] opts[:parameters][:fields] = opts[:fields] if opts[:fields] && opts[:parameters][:fields].nil? api_url = "/projects/#{project_id}/" api_url += "stories/#{opts[:story_id]}/" if opts[:story_id] api_url += "activity?" api_url.append_pivotal_params(opts[:parameters]) puts "\n****** URL: #{api_url}\n\n" response = PivotalAPI::Client.get(api_url) json_activity = JSON.parse(response, {:symbolize_names => true}) PivotalAPI::Activity.from_json(json_activity) end |
.comments(project_id, story, fields) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/pivotal-tracker-api/service.rb', line 50 def comments(project_id, story, fields) # opts: # :project_id - REQUIRED - A valid pivotal project ID # :story_id - REQUIRED - A valid pivotal story ID # :fields - OPTIONAL - specific fields to ask pivotal to return for each activity # :parameters - OPTIONAL - See list of parameters here https://www.pivotaltracker.com/help/api/rest/v5#Activity # # Default Parameters: {limit: 20} raise ArgumentError.new("missing required key/value :project_id") unless opts[:project_id] raise ArgumentError.new("missing required key/value :story_id") unless opts[:story_id] project_id = opts[:project_id] story_id = opts[:story_id] opts[:parameters] = {} unless opts[:parameters] opts[:parameters][:limit] = 20 unless opts[:parameters][:limit] opts[:parameters][:fields] = opts[:fields] if opts[:fields] && opts[:parameters][:fields].nil? api_url = "/projects/#{project_id}/stories/#{story_id}/comments" api_url.append_pivotal_params(opts[:parameters]) puts "\n****** URL: #{api_url}\n\n" response = PivotalAPI::Client.get_with_caching(api_url) json_comments = JSON.parse(response, {:symbolize_names => true}) PivotalAPI::Comments.from_json(json_comments) end |
.iterations(opts = {}) ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/pivotal-tracker-api/service.rb', line 118 def iterations(opts={}) # opts: # :project_id - REQUIRED - A valid pivotal project ID # :fields - OPTIONAL - specific fields to ask pivotal to return for each iteration # :parameters - OPTIONAL - See list of parameters here https://www.pivotaltracker.com/help/api/rest/v5#Iterations # # Default Parameters: {scope: 'current', limit: 1, offset: 0} raise ArgumentError.new("missing required key/value :project_id") unless opts[:project_id] project_id = opts[:project_id] opts[:parameters] = {} unless opts[:parameters] opts[:parameters][:scope] = 'current' unless opts[:parameters][:scope] opts[:parameters][:limit] = 1 unless opts[:parameters][:limit] opts[:parameters][:offset] = 0 unless opts[:parameters][:offset] opts[:parameters][:fields] = opts[:fields] if opts[:fields] && opts[:parameters][:fields].nil? api_url = "/projects/#{project_id}/iterations" api_url.append_pivotal_params(opts[:parameters]) puts "\n****** URL: #{api_url}\n\n" response = PivotalAPI::Client.get_with_caching(api_url) json_iterations = JSON.parse(response, {:symbolize_names => true}) PivotalAPI::Iterations.from_json(json_iterations) end |
.me(username, password) ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/pivotal-tracker-api/service.rb', line 12 def me(username, password) PivotalAPI::Client.username = username PivotalAPI::Client.password = password response = PivotalAPI::Client.ssl_get("/me") json_me = JSON.parse(response, {:symbolize_names => true}) me = PivotalAPI::Me.from_json(json_me) PivotalAPI::Client.token = me.api_token me end |
.project(opts = {}) ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/pivotal-tracker-api/service.rb', line 95 def project(opts={}) # opts: # :project_id - REQUIRED - A valid pivotal project ID # :fields - OPTIONAL - specific fields to ask pivotal to return for the project raise ArgumentError.new("missing required key/value :project_id") unless opts[:project_id] project_id = opts[:project_id] opts[:parameters] = {} unless opts[:parameters] opts[:parameters][:fields] = opts[:fields] if opts[:fields] && opts[:parameters][:fields].nil? return @project if !@project.nil? && @project.id == project_id.to_i api_url = "/projects/#{project_id}" api_url.append_pivotal_params(opts[:parameters]) puts "\n****** URL: #{api_url}\n\n" response = PivotalAPI::Client.get(api_url) json_project = JSON.parse(response, {:symbolize_names => true}) @project = PivotalAPI::Project.from_json(json_project) end |
.projects(opts = {}) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/pivotal-tracker-api/service.rb', line 78 def projects(opts={}) # opts: # :fields - OPTIONAL - specific fields to ask pivotal to return for each project opts[:parameters] = {} unless opts[:parameters] opts[:parameters][:fields] = opts[:fields] if opts[:fields] && opts[:parameters][:fields].nil? api_url = '/projects' api_url.append_pivotal_params(opts[:parameters]) puts "\n****** URL: #{api_url}\n\n" response = PivotalAPI::Client.get(api_url) json_projects = JSON.parse(response, {:symbolize_names => true}) PivotalAPI::Projects.from_json(json_projects) end |
.set_token(token) ⇒ Object
8 9 10 |
# File 'lib/pivotal-tracker-api/service.rb', line 8 def set_token(token) PivotalAPI::Client.token = token end |
.stories(opts = {}) ⇒ Object
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 |
# File 'lib/pivotal-tracker-api/service.rb', line 145 def stories(opts={}) # opts: # :project_id - REQUIRED - A valid pivotal project ID # :fields - OPTIONAL - specific fields to ask pivotal to return for each story # :parameters - OPTIONAL - See list of parameters here https://www.pivotaltracker.com/help/api/rest/v5#projects_project_id_stories_get raise ArgumentError.new("missing required key/value :project_id") unless opts[:project_id] project_id = opts[:project_id] opts[:parameters] = {} unless opts[:parameters] opts[:parameters][:limit] = 20 unless opts[:parameters][:limit] opts[:parameters][:offset] = 0 unless opts[:parameters][:offset] opts[:parameters][:fields] = opts[:fields] if opts[:fields] && opts[:parameters][:fields].nil? api_url = "/projects/#{project_id}/stories" api_url.append_pivotal_params(opts[:parameters]) puts "\n****** URL: #{api_url}\n\n" response = PivotalAPI::Client.get(api_url) json_story = JSON.parse(response, {:symbolize_names => true}) PivotalAPI::Stories.from_json(json_story) end |
.story(opts = {}) ⇒ Object
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/pivotal-tracker-api/service.rb', line 169 def story(opts={}) # opts: # :project_id - REQUIRED - A valid pivotal project ID # :story_id - REQUIRED - A valid pivotal story ID # :fields - OPTIONAL - specific fields to ask pivotal to return for each story raise ArgumentError.new("missing required key/value :project_id") unless opts[:project_id] raise ArgumentError.new("missing required key/value :story_id") unless opts[:story_id] project_id = opts[:project_id] story_id = opts[:story_id] opts[:parameters] = {} unless opts[:parameters] opts[:parameters][:fields] = opts[:fields] if opts[:fields] && opts[:parameters][:fields].nil? api_url = "/projects/#{project_id}/stories/#{story_id}" api_url.append_pivotal_params(opts[:parameters]) puts "\n****** URL: #{api_url}\n\n" response = PivotalAPI::Client.get(api_url) json_story = JSON.parse(response, {:symbolize_names => true}) PivotalAPI::Story.from_json(json_story) end |
.update_story(story_id, project_id, updates = {}) ⇒ Object
193 194 195 196 197 198 199 |
# File 'lib/pivotal-tracker-api/service.rb', line 193 def update_story(story_id, project_id, updates={}) raise ArgumentError.new("missing required parameter project_id") unless project_id raise ArgumentError.new("missing required parameter sotry_id") unless story_id api_url = "/projects/#{project_id}/stories/#{story_id}" PivotalAPI::Client.put(api_url, updates) end |