class Asana::Resources::ProjectStatus

A _project status_ is an update on the progress of a particular project, and is sent out to all project followers when created. These updates include both text describing the update and a color code intended to represent the overall state of the project: “green” for projects that are on track, “yellow” for projects at risk, and “red” for projects that are behind.

Project statuses can be created and deleted, but not modified.

Attributes

color[R]
created_at[R]
created_by[R]
gid[R]
html_text[R]
resource_type[R]
text[R]
title[R]

Public Class Methods

create(client, project: required("project"), text: required("text"), color: required("color"), options: {}, **data)
Alias for: create_in_project
create_in_project(client, project: required("project"), text: required("text"), color: required("color"), options: {}, **data) click to toggle source

Creates a new status update on the project.

Returns the full record of the newly created project status update.

project - [Gid] The project on which to create a status update. text - [String] The text of the project status update.

color - [String] The color to associate with the status update. Must be one of `“red”`, `“yellow”`, or `“green”`.

options - [Hash] the request I/O options. data - [Hash] the attributes to post.

# File lib/asana/resources/project_status.rb, line 47
def create_in_project(client, project: required("project"), text: required("text"), color: required("color"), options: {}, **data)
  with_params = data.merge(text: text, color: color).reject { |_,v| v.nil? || Array(v).empty? }
  Resource.new(parse(client.post("/projects/#{project}/project_statuses", body: with_params, options: options)).first, client: client)
end
Also aliased as: create
find_by_id(client, id, options: {}) click to toggle source

Returns the complete record for a single status update.

id - [Gid] The project status update to get. options - [Hash] the request I/O options.

# File lib/asana/resources/project_status.rb, line 67
def find_by_id(client, id, options: {})

  self.new(parse(client.get("/project_statuses/#{id}", options: options)).first, client: client)
end
find_by_project(client, project: required("project"), per_page: 20, options: {}) click to toggle source

Returns the compact project status update records for all updates on the project.

project - [Gid] The project to find status updates for. per_page - [Integer] the number of records to fetch per page. options - [Hash] the request I/O options.

# File lib/asana/resources/project_status.rb, line 58
def find_by_project(client, project: required("project"), per_page: 20, options: {})
  params = { limit: per_page }.reject { |_,v| v.nil? || Array(v).empty? }
  Collection.new(parse(client.get("/projects/#{project}/project_statuses", params: params, options: options)), type: Resource, client: client)
end
plural_name() click to toggle source

Returns the plural name of the resource.

# File lib/asana/resources/project_status.rb, line 32
def plural_name
  'project_statuses'
end

Public Instance Methods

delete() click to toggle source

Deletes a specific, existing project status update.

Returns an empty data record.

# File lib/asana/resources/project_status.rb, line 76
def delete()

  client.delete("/project_statuses/#{gid}") && true
end