-
Notifications
You must be signed in to change notification settings - Fork 27
/
task.rb
131 lines (128 loc) · 5.3 KB
/
task.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
module ChatWork
module Task
# 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 http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-tasks
# @see http://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"
# }
# ]
def self.get(room_id:, account_id:, assigned_by_account_id: nil, status: nil, &block)
ChatWork.client.get_tasks(room_id: room_id, account_id: account_id, assigned_by_account_id: assigned_by_account_id, status: status, &block)
end
# Add a new task to the chat
#
# @see http://developer.chatwork.com/ja/endpoint_rooms.html#POST-rooms-room_id-tasks
# @see http://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]
# }
def self.create(room_id:, body:, to_ids:, limit: nil, limit_type: nil, &block)
ChatWork.client.create_task(room_id: room_id, body: body, to_ids: to_ids, limit: limit, limit_type: limit_type, &block)
end
# Get information about the specified task
#
# @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-tasks-task_id
# @see http://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"
# }
def self.find(room_id:, task_id:, &block)
ChatWork.client.find_task(room_id: room_id, task_id: task_id, &block)
end
# Update task completion status
#
# @see http://developer.chatwork.com/ja/endpoint_rooms.html#PUT-rooms-room_id-tasks-task_id-status
# @see http://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
# }
def self.update_status(room_id:, task_id:, body:, &block)
ChatWork.client.update_task_status(room_id: room_id, task_id: task_id, body: body, &block)
end
end
end