module Teamwork::Client::Project
Public Instance Methods
create_project(options = {})
click to toggle source
POST a new project Return Teamwork::Thing
# File lib/teamwork/client/project.rb, line 92 def create_project(options = {}) object_from_response(:post, "projects", "project", project: options) end
delete_project(id)
click to toggle source
DELETE a current project Return Boolean
# File lib/teamwork/client/project.rb, line 104 def delete_project(id) send(:delete, "projects/#{id}") end
project(id)
click to toggle source
GET a single project Return Teamwork::Thing
# File lib/teamwork/client/project.rb, line 78 def project(id) object_from_response(:get, "project/#{id}", "project") end
project_activity(project_id, options = {})
click to toggle source
GET the recent activity stream for a given project Return [Teamwork::Thing]
# File lib/teamwork/client/project.rb, line 8 def project_activity(project_id, options = {}) objects_from_response(:get, "projects/#{project_id}/latestActivity", "activity", options.merge({maxItems: 50})) end
project_companies(project_id)
click to toggle source
GET companies on a project params:
project_id: UnsignedInt
Return [Teamwork::Thing]
# 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)
click to toggle source
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]
# 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)
click to toggle source
GET messages on a project params:
project_id: UnsignedInt
Return [Teamwork::Thing]
# File lib/teamwork/client/project.rb, line 47 def project_messages(project_id) objects_from_response(:get, "projects/#{project_id}/posts", "posts") end
project_people(project_id)
click to toggle source
GET people on a project params:
project_id: UnsignedInt
Return [Teamwork::Thing]
# 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 = {})
click to toggle source
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]
# File lib/teamwork/client/project.rb, line 21 def project_timers(project_id, options = {}) objects_from_response(:get, "projects/#{project_id}/time_entries", "time-entries", options) end
projects(options = {})
click to toggle source
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]
# File lib/teamwork/client/project.rb, line 71 def projects(options = {}) url = options[:starred].nil? ? "projects" : "projects/starred" objects_from_response(:get, url, "projects", options) end
toggle_project_star(id, star: true)
click to toggle source
PUT a start to a project Return Boolean
# 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: options) end
update_project(id, options = {})
click to toggle source
PUT a current project Return Teamwork::Thing
# File lib/teamwork/client/project.rb, line 98 def update_project(id, options = {}) object_from_response(:put, "projects/#{id}", "project", project: options) end