module ChatWork::Client::TaskMethods

Public Instance Methods

create_task(room_id:, body:, to_ids:, limit: nil, limit_type: nil, &block) click to toggle source

Add a new task to the chat

@see developer.chatwork.com/ja/endpoint_rooms.html#POST-rooms-room_id-tasks @see download.chatwork.com/ChatWork_API_Documentation.pdf

@param room_id [Integer] @param body [String] Task description @param to_ids [Array<Integer>, String] Account ID of the person/people responsible to complete the task @param limit [Time, Integer] When the task is due @param limit_type [String] Type of task deadline (e.g. `none`, `date`, `time`)

@yield [response_body, response_header] if block was given, return response body and response header through block arguments @yieldparam response_body [Hashie::Mash] response body @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)

@return [Hashie::Mash]

@example response format

{
  "task_ids": [123,124]
}
# File lib/chatwork/client/task_methods.rb, line 66
def create_task(room_id:, body:, to_ids:, limit: nil, limit_type: nil, &block)
  params = {
    body:   body,
    to_ids: Array(to_ids).join(","),
    limit_type: limit_type,
  }
  params[:limit] = limit.to_i if limit

  post("/rooms/#{room_id}/tasks", params, &block)
end
find_task(room_id:, task_id:, &block) click to toggle source

Get information about the specified task

@see developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-tasks-task_id @see download.chatwork.com/ChatWork_API_Documentation.pdf

@param room_id [Integer] @param task_id [Integer]

@yield [response_body, response_header] if block was given, return response body and response header through block arguments @yieldparam response_body [Hashie::Mash] response body @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)

@return [Hashie::Mash]

@example response format

{
  "task_id": 3,
  "account": {
    "account_id": 123,
    "name": "Bob",
    "avatar_image_url": "https://example.com/abc.png"
  },
  "assigned_by_account": {
    "account_id": 456,
    "name": "Anna",
    "avatar_image_url": "https://example.com/def.png"
  },
  "message_id": "13",
  "body": "buy milk",
  "limit_time": 1384354799,
  "status": "open",
  "limit_type": "date"
}
# File lib/chatwork/client/task_methods.rb, line 110
def find_task(room_id:, task_id:, &block)
  get("/rooms/#{room_id}/tasks/#{task_id}", &block)
end
get_tasks(room_id:, account_id:, assigned_by_account_id: nil, status: nil, &block) click to toggle source

Get the list of tasks associated with the specified chat

(*This method returns up to 100 entries. We are planning to implement pagination to support larger number of data retrieval)

@see developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-tasks @see download.chatwork.com/ChatWork_API_Documentation.pdf

@param room_id [Integer] @param account_id [Integer] @param assigned_by_account_id [Integer] Account ID of the person who assigned task @param status [String] Task status (open, done)

@yield [response_body, response_header] if block was given, return response body and response header through block arguments @yieldparam response_body [Array<Hashie::Mash>] response body @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)

@return [Array<Hashie::Mash>]

@example response format

[
  {
    "task_id": 3,
    "account": {
      "account_id": 123,
      "name": "Bob",
      "avatar_image_url": "https://example.com/abc.png"
    },
    "assigned_by_account": {
      "account_id": 456,
      "name": "Anna",
      "avatar_image_url": "https://example.com/def.png"
    },
    "message_id": "13",
    "body": "buy milk",
    "limit_time": 1384354799,
    "status": "open",
    "limit_type": "date"
  }
]
# File lib/chatwork/client/task_methods.rb, line 41
def get_tasks(room_id:, account_id:, assigned_by_account_id: nil, status: nil, &block)
  get("/rooms/#{room_id}/tasks", account_id: account_id, assigned_by_account_id: assigned_by_account_id, status: status, &block)
end
update_task_status(room_id:, task_id:, body:, &block) click to toggle source

Update task completion status

@see developer.chatwork.com/ja/endpoint_rooms.html#PUT-rooms-room_id-tasks-task_id-status @see download.chatwork.com/ChatWork_API_Documentation.pdf

@param room_id [Integer] @param task_id [Integer] @param body [String] Task completion status (e.g. `open`, `done`)

@yield [response_body, response_header] if block was given, return response body and response header through block arguments @yieldparam response_body [Hashie::Mash] response body @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)

@return [Hashie::Mash]

@example response format

{
  "task_id": 1234
}
# File lib/chatwork/client/task_methods.rb, line 133
def update_task_status(room_id:, task_id:, body:, &block)
  put("/rooms/#{room_id}/tasks/#{task_id}/status", body: body, &block)
end