Module: Teamwork::Client::Project
- Included in:
- Teamwork::Client
- Defined in:
- lib/teamwork/client/project.rb
Instance Method Summary collapse
-
#create_project(options = {}) ⇒ Object
POST a new project Return Teamwork::Thing.
-
#delete_project(id) ⇒ Object
DELETE a current project Return Boolean.
-
#project(id) ⇒ Object
GET a single project Return Teamwork::Thing.
-
#project_activity(project_id, options = {}) ⇒ Object
GET the recent activity stream for a given project Return [Teamwork::Thing].
-
#project_companies(project_id) ⇒ Object
GET companies on a project params: project_id: UnsignedInt Return [Teamwork::Thing].
-
#project_files(project_id) ⇒ Object
GET files on a project Unfortunately the API returns a project with the associated files as a key in the hash.
-
#project_messages(project_id) ⇒ Object
GET messages on a project params: project_id: UnsignedInt Return [Teamwork::Thing].
-
#project_people(project_id) ⇒ Object
GET people on a project params: project_id: UnsignedInt Return [Teamwork::Thing].
-
#project_timers(project_id, options = {}) ⇒ Object
GET time entries for the project options: page: UnsignedInt fromdate: YYYYMMDD fromtime: HH:MM todate: YYYYMMDD totime: HH:MM sortorder: (ASC, DESC) (defaults to ascending order by date (oldest to newest)) Return [Teamwork::Thing].
-
#projects(options = {}) ⇒ Object
GET a list of projects Options: status: (ALL, ACTIVE, ARCHIVED) updatedAfterDate: YYYYMMDD updatedAfterTime: HH:MM createdAfterDate: YYYYMMDD createdAfterTime: HH:MM includePeople: boolean orderby: (name, companyName, lastActivityDate) starred: true page: UnsignedInt Return [Teamwork::Thing].
-
#toggle_project_star(id, star: true) ⇒ Object
PUT a start to a project Return Boolean.
-
#update_project(id, options = {}) ⇒ Object
PUT a current project Return Teamwork::Thing.
Instance Method Details
#create_project(options = {}) ⇒ Object
POST a new project Return Teamwork::Thing
92 93 94 |
# File 'lib/teamwork/client/project.rb', line 92 def create_project( = {}) object_from_response(:post, "projects", "project", project: ) end |
#delete_project(id) ⇒ Object
DELETE a current project Return Boolean
104 105 106 |
# File 'lib/teamwork/client/project.rb', line 104 def delete_project(id) send(:delete, "projects/#{id}") end |
#project(id) ⇒ Object
GET a single project Return Teamwork::Thing
78 79 80 |
# File 'lib/teamwork/client/project.rb', line 78 def project(id) object_from_response(:get, "project/#{id}", "project") end |
#project_activity(project_id, options = {}) ⇒ Object
GET the recent activity stream for a given project Return [Teamwork::Thing]
8 9 10 |
# File 'lib/teamwork/client/project.rb', line 8 def project_activity(project_id, = {}) objects_from_response(:get, "projects/#{project_id}/latestActivity", "activity", .merge({maxItems: 50})) end |
#project_companies(project_id) ⇒ Object
GET companies on a project params:
project_id: UnsignedInt
Return [Teamwork::Thing]
55 56 57 |
# File 'lib/teamwork/client/project.rb', line 55 def project_companies(project_id) objects_from_response(:get, "projects/#{project_id}/companies", "people") end |
#project_files(project_id) ⇒ Object
GET files on a project Unfortunately the API returns a project with the associated files as a key in the hash. So lets get the files out after. params:
project_id: UnsignedInt
Return [Teamwork::Thing]
39 40 41 |
# File 'lib/teamwork/client/project.rb', line 39 def project_files(project_id) object_from_response(:get, "projects/#{project_id}/files", "project").files.map { |file| Teamwork::Thing.new(file) } end |
#project_messages(project_id) ⇒ Object
GET messages on a project params:
project_id: UnsignedInt
Return [Teamwork::Thing]
47 48 49 |
# File 'lib/teamwork/client/project.rb', line 47 def (project_id) objects_from_response(:get, "projects/#{project_id}/posts", "posts") end |
#project_people(project_id) ⇒ Object
GET people on a project params:
project_id: UnsignedInt
Return [Teamwork::Thing]
29 30 31 |
# File 'lib/teamwork/client/project.rb', line 29 def project_people(project_id) objects_from_response(:get, "projects/#{project_id}/people", "people") end |
#project_timers(project_id, options = {}) ⇒ Object
GET time entries for the project options:
page: UnsignedInt
fromdate: YYYYMMDD
fromtime: HH:MM
todate: YYYYMMDD
totime: HH:MM
sortorder: (ASC, DESC) (defaults to ascending order by date (oldest to newest))
Return [Teamwork::Thing]
21 22 23 |
# File 'lib/teamwork/client/project.rb', line 21 def project_timers(project_id, = {}) objects_from_response(:get, "projects/#{project_id}/time_entries", "time-entries", ) end |
#projects(options = {}) ⇒ Object
GET a list of projects Options:
status: (ALL, ACTIVE, ARCHIVED)
updatedAfterDate: YYYYMMDD
updatedAfterTime: HH:MM
createdAfterDate: YYYYMMDD
createdAfterTime: HH:MM
includePeople: boolean
orderby: (name, companyName, lastActivityDate)
starred: true
page: UnsignedInt
Return [Teamwork::Thing]
71 72 73 74 |
# File 'lib/teamwork/client/project.rb', line 71 def projects( = {}) url = [:starred].nil? ? "projects" : "projects/starred" objects_from_response(:get, url, "projects", ) end |
#toggle_project_star(id, star: true) ⇒ Object
PUT a start to a project Return Boolean
84 85 86 87 |
# File 'lib/teamwork/client/project.rb', line 84 def toggle_project_star(id, star: true) url = star ? "projects/#{id}/star" : "projects/#{id}/unstar" object_from_response(:put, url, "project", project: ) end |
#update_project(id, options = {}) ⇒ Object
PUT a current project Return Teamwork::Thing
98 99 100 |
# File 'lib/teamwork/client/project.rb', line 98 def update_project(id, = {}) object_from_response(:put, "projects/#{id}", "project", project: ) end |