chatwork 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/README.md +113 -38
- data/lib/chatwork.rb +35 -3
- data/lib/chatwork/base_client.rb +9 -4
- data/lib/chatwork/client.rb +43 -8
- data/lib/chatwork/client/contacts_methods.rb +29 -0
- data/lib/chatwork/client/file_methods.rb +67 -0
- data/lib/chatwork/client/incoming_request_methods.rb +77 -0
- data/lib/chatwork/client/invitation_link_methods.rb +110 -0
- data/lib/chatwork/client/me_methods.rb +38 -0
- data/lib/chatwork/client/member_methods.rb +64 -0
- data/lib/chatwork/client/message_methods.rb +178 -0
- data/lib/chatwork/client/my_status_methods.rb +25 -0
- data/lib/chatwork/client/my_task_methods.rb +41 -0
- data/lib/chatwork/client/room_methods.rb +156 -0
- data/lib/chatwork/client/task_methods.rb +109 -0
- data/lib/chatwork/contacts.rb +6 -4
- data/lib/chatwork/converter.rb +18 -0
- data/lib/chatwork/file.rb +12 -6
- data/lib/chatwork/incoming_request.rb +18 -8
- data/lib/chatwork/invitation_link.rb +24 -20
- data/lib/chatwork/me.rb +6 -4
- data/lib/chatwork/member.rb +18 -12
- data/lib/chatwork/message.rb +42 -16
- data/lib/chatwork/my_status.rb +6 -4
- data/lib/chatwork/my_task.rb +6 -4
- data/lib/chatwork/oauth_client.rb +10 -2
- data/lib/chatwork/oauth_client/token_methods.rb +25 -0
- data/lib/chatwork/room.rb +37 -20
- data/lib/chatwork/task.rb +18 -14
- data/lib/chatwork/token.rb +1 -7
- data/lib/chatwork/version.rb +1 -1
- data/spec/lib/chatwork/client/contacts_methods_spec.rb +11 -0
- data/spec/lib/chatwork/client/file_methods_spec.rb +37 -0
- data/spec/lib/chatwork/client/incoming_request_methods_spec.rb +35 -0
- data/spec/lib/chatwork/client/invitation_link_methods_spec.rb +71 -0
- data/spec/lib/chatwork/client/me_methods_spec.rb +21 -0
- data/spec/lib/chatwork/client/member_methods_spec.rb +47 -0
- data/spec/lib/chatwork/client/message_methods_spec.rb +102 -0
- data/spec/lib/chatwork/client/my_status_methods_spec.rb +11 -0
- data/spec/lib/chatwork/client/my_task_methods_spec.rb +20 -0
- data/spec/lib/chatwork/client/room_methods_spec.rb +111 -0
- data/spec/lib/chatwork/client/task_methods_spec.rb +80 -0
- data/spec/lib/chatwork/client_spec.rb +8 -1
- data/spec/lib/chatwork/contacts_spec.rb +2 -2
- data/spec/lib/chatwork/{entity_methods_spec.rb → converter_spec.rb} +2 -2
- data/spec/lib/chatwork/file_spec.rb +2 -2
- data/spec/lib/chatwork/incoming_request_spec.rb +3 -3
- data/spec/lib/chatwork/invitation_link_spec.rb +4 -2
- data/spec/lib/chatwork/me_spec.rb +3 -21
- data/spec/lib/chatwork/member_spec.rb +2 -1
- data/spec/lib/chatwork/message_spec.rb +7 -7
- data/spec/lib/chatwork/my_status_spec.rb +1 -1
- data/spec/lib/chatwork/my_task_spec.rb +1 -0
- data/spec/lib/chatwork/{token_spec.rb → oauth_client/token_methods_spec.rb} +4 -7
- data/spec/lib/chatwork/oauth_client_spec.rb +7 -1
- data/spec/lib/chatwork/room_spec.rb +5 -2
- data/spec/lib/chatwork/task_spec.rb +3 -0
- data/spec/support/contexts/api_context.rb +4 -3
- data/spec/support/examples/a_chatwork_api.rb +22 -5
- data/spec/support/utils/raml_parser.rb +2 -3
- metadata +42 -8
- data/lib/chatwork/entity_methods.rb +0 -36
@@ -1,7 +1,5 @@
|
|
1
1
|
module ChatWork
|
2
2
|
module InvitationLink
|
3
|
-
extend EntityMethods
|
4
|
-
|
5
3
|
# Get invitation link
|
6
4
|
#
|
7
5
|
# @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-link
|
@@ -9,6 +7,10 @@ module ChatWork
|
|
9
7
|
#
|
10
8
|
# @param room_id [Integer]
|
11
9
|
#
|
10
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
11
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
12
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
13
|
+
#
|
12
14
|
# @return [Hashie::Mash]
|
13
15
|
#
|
14
16
|
# @example response format
|
@@ -18,8 +20,8 @@ module ChatWork
|
|
18
20
|
# "need_acceptance": true,
|
19
21
|
# "description": "Link description text"
|
20
22
|
# }
|
21
|
-
def self.get(room_id
|
22
|
-
|
23
|
+
def self.get(room_id:, &block)
|
24
|
+
ChatWork.client.get_invitation_link(room_id: room_id, &block)
|
23
25
|
end
|
24
26
|
|
25
27
|
# Create invitation link
|
@@ -32,6 +34,10 @@ module ChatWork
|
|
32
34
|
# @param description [String] description of link page
|
33
35
|
# @param need_acceptance [Boolean] Approval necessity. Whether participation requires administrator approval.
|
34
36
|
#
|
37
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
38
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
39
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
40
|
+
#
|
35
41
|
# @return [Hashie::Mash]
|
36
42
|
#
|
37
43
|
# @example response format
|
@@ -41,13 +47,8 @@ module ChatWork
|
|
41
47
|
# "need_acceptance": true,
|
42
48
|
# "description": "This is a public room for topic A."
|
43
49
|
# }
|
44
|
-
def self.create(room_id:, code: nil, description: nil, need_acceptance: nil)
|
45
|
-
|
46
|
-
code: code,
|
47
|
-
description: description,
|
48
|
-
need_acceptance: boolean_to_integer(need_acceptance),
|
49
|
-
}
|
50
|
-
_post("/rooms/#{room_id}/link", params)
|
50
|
+
def self.create(room_id:, code: nil, description: nil, need_acceptance: nil, &block)
|
51
|
+
ChatWork.client.create_invitation_link(room_id: room_id, code: code, description: description, need_acceptance: need_acceptance, &block)
|
51
52
|
end
|
52
53
|
|
53
54
|
# Update invitation link
|
@@ -60,6 +61,10 @@ module ChatWork
|
|
60
61
|
# @param description [String] description of link page
|
61
62
|
# @param need_acceptance [Boolean] Approval necessity. Whether participation requires administrator approval.
|
62
63
|
#
|
64
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
65
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
66
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
67
|
+
#
|
63
68
|
# @return [Hashie::Mash]
|
64
69
|
#
|
65
70
|
# @example response format
|
@@ -69,13 +74,8 @@ module ChatWork
|
|
69
74
|
# "need_acceptance": false,
|
70
75
|
# "description": "Public room for everybody"
|
71
76
|
# }
|
72
|
-
def self.update(room_id:, code: nil, description: nil, need_acceptance: nil)
|
73
|
-
|
74
|
-
code: code,
|
75
|
-
description: description,
|
76
|
-
need_acceptance: boolean_to_integer(need_acceptance),
|
77
|
-
}
|
78
|
-
_put("/rooms/#{room_id}/link", params)
|
77
|
+
def self.update(room_id:, code: nil, description: nil, need_acceptance: nil, &block)
|
78
|
+
ChatWork.client.update_invitation_link(room_id: room_id, code: code, description: description, need_acceptance: need_acceptance, &block)
|
79
79
|
end
|
80
80
|
|
81
81
|
# Delete invitation link
|
@@ -85,14 +85,18 @@ module ChatWork
|
|
85
85
|
#
|
86
86
|
# @param room_id [Integer]
|
87
87
|
#
|
88
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
89
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
90
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
91
|
+
#
|
88
92
|
# @return [Hashie::Mash]
|
89
93
|
#
|
90
94
|
# @example response format
|
91
95
|
# {
|
92
96
|
# "public": false
|
93
97
|
# }
|
94
|
-
def self.destroy(room_id
|
95
|
-
|
98
|
+
def self.destroy(room_id:, &block)
|
99
|
+
ChatWork.client.destroy_invitation_link(room_id: room_id, &block)
|
96
100
|
end
|
97
101
|
end
|
98
102
|
end
|
data/lib/chatwork/me.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
module ChatWork
|
2
2
|
module Me
|
3
|
-
extend EntityMethods
|
4
|
-
|
5
3
|
# Get your account information
|
6
4
|
#
|
7
5
|
# @see http://developer.chatwork.com/ja/endpoint_me.html#GET-me
|
8
6
|
# @see http://download.chatwork.com/ChatWork_API_Documentation.pdf
|
9
7
|
#
|
8
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
9
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
10
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
11
|
+
#
|
10
12
|
# @return [Hashie::Mash]
|
11
13
|
#
|
12
14
|
# @example response format
|
@@ -31,8 +33,8 @@ module ChatWork
|
|
31
33
|
# "avatar_image_url": "https://example.com/abc.png",
|
32
34
|
# "login_mail": "account@example.com"
|
33
35
|
# }
|
34
|
-
def self.get
|
35
|
-
|
36
|
+
def self.get(&block)
|
37
|
+
ChatWork.client.get_me(&block)
|
36
38
|
end
|
37
39
|
end
|
38
40
|
end
|
data/lib/chatwork/member.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module ChatWork
|
2
2
|
module Member
|
3
|
-
extend EntityMethods
|
4
|
-
|
5
3
|
# Get the list of all chat members associated with the specified chat
|
6
4
|
#
|
7
5
|
# @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-members
|
@@ -9,6 +7,10 @@ module ChatWork
|
|
9
7
|
#
|
10
8
|
# @param room_id [Integer]
|
11
9
|
#
|
10
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
11
|
+
# @yieldparam response_body [Array<Hashie::Mash>] response body
|
12
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
13
|
+
#
|
12
14
|
# @return [Array<Hashie::Mash>]
|
13
15
|
#
|
14
16
|
# @example response format
|
@@ -24,8 +26,8 @@ module ChatWork
|
|
24
26
|
# "avatar_image_url": "https://example.com/abc.png"
|
25
27
|
# }
|
26
28
|
# ]
|
27
|
-
def self.get(room_id
|
28
|
-
|
29
|
+
def self.get(room_id:, &block)
|
30
|
+
ChatWork.client.get_members(room_id: room_id, &block)
|
29
31
|
end
|
30
32
|
|
31
33
|
# Change associated members of group chat at once
|
@@ -39,6 +41,10 @@ module ChatWork
|
|
39
41
|
# @param members_member_ids [Array<Integer>, String] List of user IDs who will be given member permission for the group chat.
|
40
42
|
# @param members_readonly_ids [Array<Integer>, String] List of user IDs who will be given read-only permission for the group chat.
|
41
43
|
#
|
44
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
45
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
46
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
47
|
+
#
|
42
48
|
# @return [Hashie::Mash]
|
43
49
|
#
|
44
50
|
# @example response format
|
@@ -47,14 +53,14 @@ module ChatWork
|
|
47
53
|
# "member": [10, 103],
|
48
54
|
# "readonly": [6, 11]
|
49
55
|
# }
|
50
|
-
def self.update_all(room_id:, members_admin_ids:, members_member_ids: nil, members_readonly_ids: nil)
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
56
|
+
def self.update_all(room_id:, members_admin_ids:, members_member_ids: nil, members_readonly_ids: nil, &block)
|
57
|
+
ChatWork.client.update_all_members(
|
58
|
+
room_id: room_id,
|
59
|
+
members_admin_ids: members_admin_ids,
|
60
|
+
members_member_ids: members_member_ids,
|
61
|
+
members_readonly_ids: members_readonly_ids,
|
62
|
+
&block
|
63
|
+
)
|
58
64
|
end
|
59
65
|
end
|
60
66
|
end
|
data/lib/chatwork/message.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module ChatWork
|
2
2
|
module Message
|
3
|
-
extend EntityMethods
|
4
|
-
|
5
3
|
# Get all messages associated with the specified chat (returns up to 100 entries).
|
6
4
|
#
|
7
5
|
# If the parameter is not set, it returns the next 100 entries from previous call.
|
@@ -12,6 +10,10 @@ module ChatWork
|
|
12
10
|
# @param room_id [Integer]
|
13
11
|
# @param force [Boolean, Integer] Flag which forces to get 100 newest entries regardless of previous calls.
|
14
12
|
#
|
13
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
14
|
+
# @yieldparam response_body [Array<Hashie::Mash>] response body
|
15
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
16
|
+
#
|
15
17
|
# @return [Array<Hashie::Mash>]
|
16
18
|
#
|
17
19
|
# @example response format
|
@@ -28,8 +30,8 @@ module ChatWork
|
|
28
30
|
# "update_time": 0
|
29
31
|
# }
|
30
32
|
# ]
|
31
|
-
def self.get(room_id:, force: nil)
|
32
|
-
|
33
|
+
def self.get(room_id:, force: nil, &block)
|
34
|
+
ChatWork.client.get_messages(room_id: room_id, force: force, &block)
|
33
35
|
end
|
34
36
|
|
35
37
|
# Add new message to the chat
|
@@ -40,14 +42,18 @@ module ChatWork
|
|
40
42
|
# @param room_id [Integer]
|
41
43
|
# @param body [String] message body
|
42
44
|
#
|
45
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
46
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
47
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
48
|
+
#
|
43
49
|
# @return [Hashie::Mash]
|
44
50
|
#
|
45
51
|
# @example response format
|
46
52
|
# {
|
47
53
|
# "message_id": "1234"
|
48
54
|
# }
|
49
|
-
def self.create(room_id:, body
|
50
|
-
|
55
|
+
def self.create(room_id:, body:, &block)
|
56
|
+
ChatWork.client.create_message(room_id: room_id, body: body, &block)
|
51
57
|
end
|
52
58
|
|
53
59
|
# Mark messages as read
|
@@ -58,6 +64,10 @@ module ChatWork
|
|
58
64
|
# @param room_id [Integer]
|
59
65
|
# @param message_id [String]
|
60
66
|
#
|
67
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
68
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
69
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
70
|
+
#
|
61
71
|
# @return [Hashie::Mash]
|
62
72
|
#
|
63
73
|
# @example response format
|
@@ -65,8 +75,8 @@ module ChatWork
|
|
65
75
|
# "unread_num": 461,
|
66
76
|
# "mention_num": 0
|
67
77
|
# }
|
68
|
-
def self.read(room_id:, message_id: nil)
|
69
|
-
|
78
|
+
def self.read(room_id:, message_id: nil, &block)
|
79
|
+
ChatWork.client.read_message(room_id: room_id, message_id: message_id, &block)
|
70
80
|
end
|
71
81
|
|
72
82
|
# Mark messages as unread
|
@@ -77,6 +87,10 @@ module ChatWork
|
|
77
87
|
# @param room_id [Integer]
|
78
88
|
# @param message_id [String]
|
79
89
|
#
|
90
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
91
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
92
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
93
|
+
#
|
80
94
|
# @return [Hashie::Mash]
|
81
95
|
#
|
82
96
|
# @example response format
|
@@ -84,8 +98,8 @@ module ChatWork
|
|
84
98
|
# "unread_num": 3,
|
85
99
|
# "mention_num": 0
|
86
100
|
# }
|
87
|
-
def self.unread(room_id:, message_id
|
88
|
-
|
101
|
+
def self.unread(room_id:, message_id:, &block)
|
102
|
+
ChatWork.client.unread_message(room_id: room_id, message_id: message_id, &block)
|
89
103
|
end
|
90
104
|
|
91
105
|
# Get information about the specified message
|
@@ -96,6 +110,10 @@ module ChatWork
|
|
96
110
|
# @param room_id [Integer]
|
97
111
|
# @param message_id [String]
|
98
112
|
#
|
113
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
114
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
115
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
116
|
+
#
|
99
117
|
# @return [Hashie::Mash]
|
100
118
|
#
|
101
119
|
# @example response format
|
@@ -110,8 +128,8 @@ module ChatWork
|
|
110
128
|
# "send_time": 1384242850,
|
111
129
|
# "update_time": 0
|
112
130
|
# }
|
113
|
-
def self.find(room_id:, message_id
|
114
|
-
|
131
|
+
def self.find(room_id:, message_id:, &block)
|
132
|
+
ChatWork.client.find_message(room_id: room_id, message_id: message_id, &block)
|
115
133
|
end
|
116
134
|
|
117
135
|
# Update the specified message
|
@@ -123,14 +141,18 @@ module ChatWork
|
|
123
141
|
# @param message_id [String]
|
124
142
|
# @param body [String] message body
|
125
143
|
#
|
144
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
145
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
146
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
147
|
+
#
|
126
148
|
# @return [Hashie::Mash]
|
127
149
|
#
|
128
150
|
# @example response format
|
129
151
|
# {
|
130
152
|
# "message_id": "1234"
|
131
153
|
# }
|
132
|
-
def self.update(room_id:, message_id:, body
|
133
|
-
|
154
|
+
def self.update(room_id:, message_id:, body:, &block)
|
155
|
+
ChatWork.client.update_message(room_id: room_id, message_id: message_id, body: body, &block)
|
134
156
|
end
|
135
157
|
|
136
158
|
# Destroy the specified message
|
@@ -141,14 +163,18 @@ module ChatWork
|
|
141
163
|
# @param room_id [Integer]
|
142
164
|
# @param message_id [String]
|
143
165
|
#
|
166
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
167
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
168
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
169
|
+
#
|
144
170
|
# @return [Hashie::Mash]
|
145
171
|
#
|
146
172
|
# @example response format
|
147
173
|
# {
|
148
174
|
# "message_id": "1234"
|
149
175
|
# }
|
150
|
-
def self.destroy(room_id:, message_id
|
151
|
-
|
176
|
+
def self.destroy(room_id:, message_id:, &block)
|
177
|
+
ChatWork.client.destroy_message(room_id: room_id, message_id: message_id, &block)
|
152
178
|
end
|
153
179
|
end
|
154
180
|
end
|
data/lib/chatwork/my_status.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
module ChatWork
|
2
2
|
module MyStatus
|
3
|
-
extend EntityMethods
|
4
|
-
|
5
3
|
# Get the number of: unread messages, unread To messages, and unfinished tasks.
|
6
4
|
#
|
7
5
|
# @see http://developer.chatwork.com/ja/endpoint_my.html#GET-my-status
|
8
6
|
# @see http://download.chatwork.com/ChatWork_API_Documentation.pdf
|
9
7
|
#
|
8
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
9
|
+
# @yieldparam response_body [Hashie::Mash] response body
|
10
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
11
|
+
#
|
10
12
|
# @return [Hashie::Mash]
|
11
13
|
#
|
12
14
|
# @example response format
|
@@ -18,8 +20,8 @@ module ChatWork
|
|
18
20
|
# "mention_num": 1,
|
19
21
|
# "mytask_num": 8
|
20
22
|
# }
|
21
|
-
def self.get
|
22
|
-
|
23
|
+
def self.get(&block)
|
24
|
+
ChatWork.client.get_my_status(&block)
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
data/lib/chatwork/my_task.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module ChatWork
|
2
2
|
module MyTask
|
3
|
-
extend EntityMethods
|
4
|
-
|
5
3
|
# Get the list of all unfinished tasks
|
6
4
|
#
|
7
5
|
# (*This method returns up to 100 entries. We are planning to implement pagination to support larger number of data retrieval)
|
@@ -12,6 +10,10 @@ module ChatWork
|
|
12
10
|
# @param assigned_by_account_id [Integer] Account ID of the person who assigned task
|
13
11
|
# @param status [String] Task status (open, done)
|
14
12
|
#
|
13
|
+
# @yield [response_body, response_header] if block was given, return response body and response header through block arguments
|
14
|
+
# @yieldparam response_body [Array<Hashie::Mash>] response body
|
15
|
+
# @yieldparam response_header [Hash<String, String>] response header (e.g. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)
|
16
|
+
#
|
15
17
|
# @return [Array<Hashie::Mash>]
|
16
18
|
#
|
17
19
|
# @example response format
|
@@ -34,8 +36,8 @@ module ChatWork
|
|
34
36
|
# "status": "open"
|
35
37
|
# }
|
36
38
|
# ]
|
37
|
-
def self.get(assigned_by_account_id: nil, status: nil)
|
38
|
-
|
39
|
+
def self.get(assigned_by_account_id: nil, status: nil, &block)
|
40
|
+
ChatWork.client.get_my_tasks(assigned_by_account_id: assigned_by_account_id, status: status, &block)
|
39
41
|
end
|
40
42
|
end
|
41
43
|
end
|
@@ -2,9 +2,17 @@ require "base64"
|
|
2
2
|
|
3
3
|
module ChatWork
|
4
4
|
class OAuthClient < BaseClient
|
5
|
-
|
5
|
+
require "chatwork/oauth_client/token_methods"
|
6
|
+
|
7
|
+
include TokenMethods
|
8
|
+
|
9
|
+
# @param client_id [String]
|
10
|
+
# @param client_secret [String]
|
11
|
+
# @param api_base [String] default is {ChatWork.oauth_api_base}
|
12
|
+
def initialize(client_id:, client_secret:, api_base: nil)
|
13
|
+
api_base ||= ChatWork.oauth_api_base
|
6
14
|
signature = Base64.encode64("#{client_id}:#{client_secret}").delete("\n")
|
7
|
-
super(
|
15
|
+
super(api_base: api_base, header: { "Authorization" => "Basic #{signature}" })
|
8
16
|
end
|
9
17
|
end
|
10
18
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module ChatWork::OAuthClient::TokenMethods
|
2
|
+
# refresh access_token with refresh_token
|
3
|
+
#
|
4
|
+
# @param refresh_token [String]
|
5
|
+
# @param scope [Array<String>]
|
6
|
+
#
|
7
|
+
# @return [Hash]
|
8
|
+
# @example response
|
9
|
+
# {
|
10
|
+
# "access_token" => "new_access_token",
|
11
|
+
# "token_type" => "Bearer",
|
12
|
+
# "expires_in" => "1800",
|
13
|
+
# "refresh_token" => "refresh_token",
|
14
|
+
# "scope" => "users.all:read rooms.all:read_write contacts.all:read_write",
|
15
|
+
# }
|
16
|
+
def refresh_access_token(refresh_token, scope = [])
|
17
|
+
params = {
|
18
|
+
grant_type: "refresh_token",
|
19
|
+
refresh_token: refresh_token,
|
20
|
+
}
|
21
|
+
params[:scope] = scope.join(" ") unless scope.empty?
|
22
|
+
|
23
|
+
post("/token", params)
|
24
|
+
end
|
25
|
+
end
|