class Asana::Resources::Story
A story represents an activity associated with an object in the Asana
system. Stories are generated by the system whenever users take actions such as creating or assigning tasks, or moving tasks between projects. Comments are also a form of user-generated story.
Attributes
Public Class Methods
Adds a comment to a task. The comment will be authored by the currently authenticated user, and timestamped when the server receives the request.
Returns the full record for the new story added to the task.
task - [Id] Globally unique identifier for the task.
text - [String] The plain text of the comment to add. options - [Hash] the request I/O options. data - [Hash] the attributes to post.
# File lib/asana/resources/story.rb, line 82 def create_on_task(client, task: required("task"), text: required("text"), options: {}, **data) with_params = data.merge(text: text).reject { |_,v| v.nil? || Array(v).empty? } self.new(parse(client.post("/tasks/#{task}/stories", body: with_params, options: options)).first, client: client) end
Returns the full record for a single story.
id - [Gid] Globally unique identifier for the story.
options - [Hash] the request I/O options.
# File lib/asana/resources/story.rb, line 66 def find_by_id(client, id, options: {}) self.new(parse(client.get("/stories/#{id}", options: options)).first, client: client) end
Returns the compact records for all stories on the task.
task - [Gid] Globally unique identifier for the task.
per_page - [Integer] the number of records to fetch per page. options - [Hash] the request I/O options.
# File lib/asana/resources/story.rb, line 56 def find_by_task(client, task: required("task"), per_page: 20, options: {}) params = { limit: per_page }.reject { |_,v| v.nil? || Array(v).empty? } Collection.new(parse(client.get("/tasks/#{task}/stories", params: params, options: options)), type: self, client: client) end
Returns the plural name of the resource.
# File lib/asana/resources/story.rb, line 46 def plural_name 'stories' end
Public Instance Methods
Deletes a story. A user can only delete stories they have created. Returns an empty data record.
# File lib/asana/resources/story.rb, line 104 def delete() client.delete("/stories/#{gid}") && true end
Updates the story and returns the full record for the updated story. Only comment stories can have their text updated, and only comment stories and attachment stories can be pinned. Only one of `text` and `html_text` can be specified.
text - [String] The plain text with which to update the comment.
html_text
- [String] The rich text with which to update the comment. is_pinned
- [Boolean] Whether the story should be pinned on the resource. options - [Hash] the request I/O options. data - [Hash] the attributes to post.
# File lib/asana/resources/story.rb, line 98 def update(text: nil, html_text: nil, is_pinned: nil, options: {}, **data) with_params = data.merge(text: text, html_text: html_text, is_pinned: is_pinned).reject { |_,v| v.nil? || Array(v).empty? } refresh_with(parse(client.put("/stories/#{gid}", body: with_params, options: options)).first) end