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