slack-ruby-client 0.7.9 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (358) hide show
  1. checksums.yaml +5 -5
  2. data/.github/FUNDING.yml +1 -0
  3. data/.gitignore +2 -0
  4. data/.rubocop.yml +32 -1
  5. data/.rubocop_todo.yml +98 -49
  6. data/.travis.yml +10 -14
  7. data/CHANGELOG.md +172 -24
  8. data/CONTRIBUTING.md +17 -6
  9. data/Dangerfile +2 -0
  10. data/Gemfile +10 -4
  11. data/LICENSE.md +1 -1
  12. data/README.md +276 -54
  13. data/RELEASING.md +19 -11
  14. data/Rakefile +2 -1
  15. data/UPGRADING.md +84 -2
  16. data/bin/commands.rb +43 -1
  17. data/bin/commands/admin_analytics.rb +15 -0
  18. data/bin/commands/admin_apps.rb +40 -0
  19. data/bin/commands/admin_apps_approved.rb +17 -0
  20. data/bin/commands/admin_apps_requests.rb +16 -0
  21. data/bin/commands/admin_apps_restricted.rb +17 -0
  22. data/bin/commands/admin_barriers.rb +47 -0
  23. data/bin/commands/admin_conversations.rb +169 -0
  24. data/bin/commands/admin_conversations_ekm.rb +17 -0
  25. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  26. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  27. data/bin/commands/admin_emoji.rb +54 -0
  28. data/bin/commands/admin_inviteRequests.rb +36 -0
  29. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  30. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  31. data/bin/commands/admin_teams.rb +27 -0
  32. data/bin/commands/admin_teams_admins.rb +16 -0
  33. data/bin/commands/admin_teams_owners.rb +16 -0
  34. data/bin/commands/admin_teams_settings.rb +64 -0
  35. data/bin/commands/admin_usergroups.rb +48 -0
  36. data/bin/commands/admin_users.rb +97 -0
  37. data/bin/commands/admin_users_session.rb +38 -0
  38. data/bin/commands/api.rb +3 -3
  39. data/bin/commands/apps.rb +15 -0
  40. data/bin/commands/apps_connections.rb +13 -0
  41. data/bin/commands/apps_event_authorizations.rb +16 -0
  42. data/bin/commands/apps_permissions.rb +23 -0
  43. data/bin/commands/apps_permissions_resources.rb +15 -0
  44. data/bin/commands/apps_permissions_scopes.rb +13 -0
  45. data/bin/commands/apps_permissions_users.rb +26 -0
  46. data/bin/commands/auth.rb +5 -4
  47. data/bin/commands/auth_teams.rb +16 -0
  48. data/bin/commands/bots.rb +4 -2
  49. data/bin/commands/calls.rb +52 -0
  50. data/bin/commands/calls_participants.rb +25 -0
  51. data/bin/commands/channels.rb +64 -43
  52. data/bin/commands/chat.rb +114 -24
  53. data/bin/commands/chat_scheduledMessages.rb +19 -0
  54. data/bin/commands/conversations.rb +196 -0
  55. data/bin/commands/dialog.rb +15 -0
  56. data/bin/commands/dnd.rb +9 -8
  57. data/bin/commands/emoji.rb +3 -2
  58. data/bin/commands/files.rb +45 -30
  59. data/bin/commands/files_comments.rb +3 -24
  60. data/bin/commands/files_remote.rb +78 -0
  61. data/bin/commands/groups.rb +53 -53
  62. data/bin/commands/im.rb +17 -13
  63. data/bin/commands/migration.rb +16 -0
  64. data/bin/commands/mpim.rb +16 -13
  65. data/bin/commands/oauth.rb +17 -2
  66. data/bin/commands/oauth_v2.rb +17 -0
  67. data/bin/commands/pins.rb +7 -10
  68. data/bin/commands/reactions.rb +17 -15
  69. data/bin/commands/reminders.rb +11 -10
  70. data/bin/commands/rtm.rb +19 -4
  71. data/bin/commands/search.rb +15 -11
  72. data/bin/commands/stars.rb +11 -8
  73. data/bin/commands/team.rb +15 -10
  74. data/bin/commands/team_profile.rb +3 -2
  75. data/bin/commands/usergroups.rb +22 -16
  76. data/bin/commands/usergroups_users.rb +7 -4
  77. data/bin/commands/users.rb +65 -37
  78. data/bin/commands/users_admin.rb +29 -0
  79. data/bin/commands/users_prefs.rb +13 -0
  80. data/bin/commands/users_profile.rb +8 -7
  81. data/bin/commands/views.rb +48 -0
  82. data/bin/commands/workflows.rb +38 -0
  83. data/bin/slack +3 -4
  84. data/examples/hi_real_time_and_web/Gemfile +1 -0
  85. data/examples/hi_real_time_and_web/hi.rb +8 -4
  86. data/examples/{hi_real_time_async_eventmachine → hi_real_time_async_async}/Gemfile +2 -1
  87. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
  88. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/hi.rb +13 -8
  89. data/examples/hi_web/Gemfile +1 -0
  90. data/examples/hi_web/hi.rb +2 -1
  91. data/examples/new_ticket/Gemfile +1 -0
  92. data/examples/new_ticket/new_ticket.rb +2 -1
  93. data/lib/slack-ruby-client.rb +40 -26
  94. data/lib/slack.rb +1 -0
  95. data/lib/slack/config.rb +1 -0
  96. data/lib/slack/events/config.rb +32 -0
  97. data/lib/slack/events/request.rb +70 -0
  98. data/lib/slack/logger.rb +6 -5
  99. data/lib/slack/messages/formatting.rb +4 -4
  100. data/lib/slack/messages/message.rb +2 -6
  101. data/lib/slack/real_time/api/message.rb +3 -1
  102. data/lib/slack/real_time/api/message_id.rb +1 -0
  103. data/lib/slack/real_time/api/ping.rb +5 -2
  104. data/lib/slack/real_time/api/templates/event_handler.erb +1 -1
  105. data/lib/slack/real_time/api/typing.rb +3 -1
  106. data/lib/slack/real_time/client.rb +113 -32
  107. data/lib/slack/real_time/concurrency.rb +2 -2
  108. data/lib/slack/real_time/concurrency/async.rb +140 -0
  109. data/lib/slack/real_time/config.rb +20 -12
  110. data/lib/slack/real_time/models.rb +8 -7
  111. data/lib/slack/real_time/models/base.rb +2 -6
  112. data/lib/slack/real_time/models/bot.rb +1 -0
  113. data/lib/slack/real_time/models/channel.rb +1 -0
  114. data/lib/slack/real_time/models/group.rb +1 -0
  115. data/lib/slack/real_time/models/im.rb +1 -0
  116. data/lib/slack/real_time/models/team.rb +1 -0
  117. data/lib/slack/real_time/models/user.rb +1 -0
  118. data/lib/slack/real_time/socket.rb +46 -17
  119. data/lib/slack/real_time/stores.rb +4 -3
  120. data/lib/slack/real_time/stores/base.rb +5 -3
  121. data/lib/slack/real_time/stores/starter.rb +113 -72
  122. data/lib/slack/real_time/stores/store.rb +131 -88
  123. data/lib/slack/version.rb +2 -1
  124. data/lib/slack/web/api/endpoints.rb +110 -26
  125. data/lib/slack/web/api/endpoints/admin_analytics.rb +26 -0
  126. data/lib/slack/web/api/endpoints/admin_apps.rb +62 -0
  127. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  128. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  129. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  130. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  131. data/lib/slack/web/api/endpoints/admin_conversations.rb +260 -0
  132. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  133. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  134. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  135. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  136. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  137. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  138. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  139. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  140. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  141. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  142. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  143. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  144. data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
  145. data/lib/slack/web/api/endpoints/admin_users_session.rb +66 -0
  146. data/lib/slack/web/api/endpoints/api.rb +3 -4
  147. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  148. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  149. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  150. data/lib/slack/web/api/endpoints/apps_permissions.rb +36 -0
  151. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +31 -0
  152. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +21 -0
  153. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +50 -0
  154. data/lib/slack/web/api/endpoints/auth.rb +5 -4
  155. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  156. data/lib/slack/web/api/endpoints/bots.rb +5 -2
  157. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  158. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  159. data/lib/slack/web/api/endpoints/channels.rb +105 -49
  160. data/lib/slack/web/api/endpoints/chat.rb +221 -40
  161. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  162. data/lib/slack/web/api/endpoints/conversations.rb +332 -0
  163. data/lib/slack/web/api/endpoints/dialog.rb +33 -0
  164. data/lib/slack/web/api/endpoints/dnd.rb +11 -9
  165. data/lib/slack/web/api/endpoints/emoji.rb +3 -2
  166. data/lib/slack/web/api/endpoints/files.rb +75 -38
  167. data/lib/slack/web/api/endpoints/files_comments.rb +3 -38
  168. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  169. data/lib/slack/web/api/endpoints/groups.rb +76 -53
  170. data/lib/slack/web/api/endpoints/im.rb +38 -21
  171. data/lib/slack/web/api/endpoints/migration.rb +28 -0
  172. data/lib/slack/web/api/endpoints/mpim.rb +37 -22
  173. data/lib/slack/web/api/endpoints/oauth.rb +25 -4
  174. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  175. data/lib/slack/web/api/endpoints/pins.rb +10 -19
  176. data/lib/slack/web/api/endpoints/presence.rb +1 -1
  177. data/lib/slack/web/api/endpoints/reactions.rb +37 -28
  178. data/lib/slack/web/api/endpoints/reminders.rb +11 -10
  179. data/lib/slack/web/api/endpoints/rtm.rb +28 -7
  180. data/lib/slack/web/api/endpoints/search.rb +21 -14
  181. data/lib/slack/web/api/endpoints/stars.rb +24 -15
  182. data/lib/slack/web/api/endpoints/team.rb +21 -13
  183. data/lib/slack/web/api/endpoints/team_profile.rb +3 -2
  184. data/lib/slack/web/api/endpoints/usergroups.rb +33 -22
  185. data/lib/slack/web/api/endpoints/usergroups_users.rb +9 -4
  186. data/lib/slack/web/api/endpoints/users.rb +78 -29
  187. data/lib/slack/web/api/endpoints/users_admin.rb +49 -0
  188. data/lib/slack/web/api/endpoints/users_prefs.rb +21 -0
  189. data/lib/slack/web/api/endpoints/users_profile.rb +11 -10
  190. data/lib/slack/web/api/endpoints/views.rb +97 -0
  191. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  192. data/lib/slack/web/api/error.rb +2 -8
  193. data/lib/slack/web/api/errors.rb +850 -0
  194. data/lib/slack/web/api/errors/internal_error.rb +14 -0
  195. data/lib/slack/web/api/errors/slack_error.rb +29 -0
  196. data/lib/slack/web/api/errors/too_many_requests_error.rb +24 -0
  197. data/lib/slack/web/api/mixins.rb +6 -4
  198. data/lib/slack/web/api/mixins/channels.id.rb +6 -7
  199. data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
  200. data/lib/slack/web/api/mixins/groups.id.rb +6 -7
  201. data/lib/slack/web/api/mixins/ids.id.rb +24 -0
  202. data/lib/slack/web/api/mixins/users.id.rb +6 -7
  203. data/lib/slack/web/api/mixins/users.search.rb +39 -36
  204. data/lib/slack/web/api/patches/chat.1.patch +72 -0
  205. data/lib/slack/web/api/patches/dialog.1.open-json-support.patch +17 -0
  206. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  207. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  208. data/lib/slack/web/api/templates/command.erb +5 -3
  209. data/lib/slack/web/api/templates/commands.erb +2 -1
  210. data/lib/slack/web/api/templates/endpoints.erb +5 -3
  211. data/lib/slack/web/api/templates/errors.erb +20 -0
  212. data/lib/slack/web/api/templates/method.erb +26 -4
  213. data/lib/slack/web/api/templates/method_spec.erb +3 -2
  214. data/lib/slack/web/client.rb +2 -1
  215. data/lib/slack/web/config.rb +21 -10
  216. data/lib/slack/web/faraday/connection.rb +25 -16
  217. data/lib/slack/web/faraday/request.rb +2 -0
  218. data/lib/slack/web/faraday/response/raise_error.rb +23 -1
  219. data/lib/slack/web/faraday/response/wrap_error.rb +18 -0
  220. data/lib/slack/web/pagination/cursor.rb +52 -0
  221. data/lib/slack_ruby_client.rb +1 -0
  222. data/lib/tasks/git.rake +2 -1
  223. data/lib/tasks/real_time.rake +16 -6
  224. data/lib/tasks/update.rake +1 -0
  225. data/lib/tasks/web.rake +38 -10
  226. data/screenshots/create-app.png +0 -0
  227. data/slack-ruby-client.gemspec +9 -6
  228. data/spec/fixtures/slack/web/429_error.yml +2 -0
  229. data/spec/fixtures/slack/web/503_error.yml +14 -0
  230. data/spec/fixtures/slack/web/channels_info.yml +108 -15
  231. data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
  232. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
  233. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
  234. data/spec/fixtures/slack/web/paginated_users_list.yml +181 -0
  235. data/spec/fixtures/slack/web/rtm_connect.yml +70 -0
  236. data/spec/fixtures/slack/web/rtm_start.yml +1 -1
  237. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  238. data/spec/integration/integration_spec.rb +116 -48
  239. data/spec/slack/config_spec.rb +2 -0
  240. data/spec/slack/events/config_spec.rb +33 -0
  241. data/spec/slack/events/request_spec.rb +183 -0
  242. data/spec/slack/messages/formatting_spec.rb +25 -14
  243. data/spec/slack/real_time/api/message_spec.rb +6 -1
  244. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  245. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  246. data/spec/slack/real_time/client_spec.rb +462 -134
  247. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +3 -1
  248. data/spec/slack/real_time/event_handlers/bot_spec.rb +6 -3
  249. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  250. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +3 -2
  251. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  252. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  253. data/spec/slack/real_time/event_handlers/team_spec.rb +8 -4
  254. data/spec/slack/real_time/event_handlers/user_spec.rb +5 -2
  255. data/spec/slack/real_time/rtm_connect_spec.rb +14 -0
  256. data/spec/slack/real_time/rtm_start_spec.rb +1 -0
  257. data/spec/slack/real_time/store_spec.rb +2 -1
  258. data/spec/slack/slack_spec.rb +39 -7
  259. data/spec/slack/version_spec.rb +2 -1
  260. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  261. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  262. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  263. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  264. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +13 -0
  265. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  266. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  267. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  268. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  269. data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -0
  270. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  271. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  272. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  273. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  274. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  275. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  276. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  277. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  278. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  279. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +21 -0
  280. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  281. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  282. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  283. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  284. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +8 -0
  285. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +8 -0
  286. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +16 -0
  287. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +19 -0
  288. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  289. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  290. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  291. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  292. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  293. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  294. data/spec/slack/web/api/endpoints/conversations_spec.rb +109 -0
  295. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +13 -4
  296. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
  297. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +140 -24
  298. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +36 -0
  299. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
  300. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +21 -6
  301. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  302. data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
  303. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  304. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  305. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  306. data/spec/slack/web/api/endpoints/files_spec.rb +17 -5
  307. data/spec/slack/web/api/endpoints/im_spec.rb +5 -4
  308. data/spec/slack/web/api/endpoints/migration_spec.rb +13 -0
  309. data/spec/slack/web/api/endpoints/mpim_spec.rb +5 -4
  310. data/spec/slack/web/api/endpoints/oauth_spec.rb +5 -4
  311. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  312. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  313. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  314. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  315. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  316. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  317. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  318. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  319. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  320. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  321. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  322. data/spec/slack/web/api/endpoints/users_admin_spec.rb +18 -0
  323. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +8 -0
  324. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  325. data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
  326. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  327. data/spec/slack/web/api/error_spec.rb +5 -3
  328. data/spec/slack/web/api/errors/slack_error_spec.rb +38 -0
  329. data/spec/slack/web/api/mixins/channels_spec.rb +24 -12
  330. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  331. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  332. data/spec/slack/web/api/mixins/groups_spec.rb +24 -12
  333. data/spec/slack/web/api/mixins/users_spec.rb +30 -17
  334. data/spec/slack/web/api/pagination/cursor_spec.rb +100 -0
  335. data/spec/slack/web/client_spec.rb +215 -14
  336. data/spec/slack/web/faraday/response/raise_error_spec.rb +85 -0
  337. data/spec/spec_helper.rb +8 -1
  338. data/spec/support/queue_with_timeout.rb +6 -5
  339. data/spec/support/real_time/concurrency/mock.rb +2 -2
  340. data/spec/support/real_time/connected_client.rb +13 -2
  341. data/spec/support/real_time/event.rb +1 -0
  342. data/spec/support/token.rb +1 -0
  343. data/spec/support/vcr.rb +6 -1
  344. metadata +280 -55
  345. data/examples/hi_real_time/Gemfile +0 -5
  346. data/examples/hi_real_time/hi.gif +0 -0
  347. data/examples/hi_real_time/hi.rb +0 -37
  348. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  349. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  350. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -36
  351. data/lib/slack/real_time/concurrency/celluloid.rb +0 -113
  352. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
  353. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  354. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  355. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -20
  356. data/screenshots/register-bot.png +0 -0
  357. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -31
  358. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
@@ -11,7 +11,7 @@ module Slack
11
11
  # @option options [Object] :presence
12
12
  # Either `active` or `away`.
13
13
  # @see https://api.slack.com/methods/presence.set
14
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/presence.set.json
14
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/presence.set.json
15
15
  def presence_set(options = {})
16
16
  throw ArgumentError.new('Required arguments :presence missing') if options[:presence].nil?
17
17
  post('presence.set', options)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,80 +7,88 @@ module Slack
6
7
  module Endpoints
7
8
  module Reactions
8
9
  #
9
- # This method adds a reaction (emoji) to an item (file, file comment, channel message, group message, or direct message).
10
- # One of file, file_comment, or the combination of channel and timestamp must be specified.
10
+ # Adds a reaction to an item.
11
11
  #
12
- # @option options [Object] :name
13
- # Reaction (emoji) name.
14
- # @option options [file] :file
15
- # File to add reaction to.
16
- # @option options [Object] :file_comment
17
- # File comment to add reaction to.
18
12
  # @option options [channel] :channel
19
13
  # Channel where the message to add reaction to was posted.
14
+ # @option options [Object] :name
15
+ # Reaction (emoji) name.
20
16
  # @option options [Object] :timestamp
21
17
  # Timestamp of the message to add reaction to.
22
18
  # @see https://api.slack.com/methods/reactions.add
23
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.add.json
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.add.json
24
20
  def reactions_add(options = {})
21
+ throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
25
22
  throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
26
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
23
+ throw ArgumentError.new('Required arguments :timestamp missing') if options[:timestamp].nil?
24
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
27
25
  post('reactions.add', options)
28
26
  end
29
27
 
30
28
  #
31
- # This method returns a list of all reactions for a single item (file, file comment, channel message, group message, or direct message).
29
+ # Gets reactions for an item.
32
30
  #
31
+ # @option options [channel] :channel
32
+ # Channel where the message to get reactions for was posted.
33
33
  # @option options [file] :file
34
34
  # File to get reactions for.
35
35
  # @option options [Object] :file_comment
36
36
  # File comment to get reactions for.
37
- # @option options [channel] :channel
38
- # Channel where the message to get reactions for was posted.
39
- # @option options [Object] :timestamp
40
- # Timestamp of the message to get reactions for.
41
37
  # @option options [Object] :full
42
38
  # If true always return the complete reaction list.
39
+ # @option options [Object] :timestamp
40
+ # Timestamp of the message to get reactions for.
43
41
  # @see https://api.slack.com/methods/reactions.get
44
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.get.json
42
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.get.json
45
43
  def reactions_get(options = {})
46
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
44
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
47
45
  post('reactions.get', options)
48
46
  end
49
47
 
50
48
  #
51
- # This method returns a list of all items (file, file comment, channel message, group message, or direct message) reacted to by a user.
49
+ # Lists reactions made by a user.
52
50
  #
53
- # @option options [user] :user
54
- # Show reactions made by this user. Defaults to the authed user.
51
+ # @option options [Object] :cursor
52
+ # Parameter for pagination. Set cursor equal to the next_cursor attribute returned by the previous request's response_metadata. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection. See pagination for more details.
55
53
  # @option options [Object] :full
56
54
  # If true always return the complete reaction list.
55
+ # @option options [Object] :limit
56
+ # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.
57
+ # @option options [Object] :team_id
58
+ # encoded team id to list reactions in, required if org token is used.
59
+ # @option options [user] :user
60
+ # Show reactions made by this user. Defaults to the authed user.
57
61
  # @see https://api.slack.com/methods/reactions.list
58
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.list.json
62
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.list.json
59
63
  def reactions_list(options = {})
60
64
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
61
- post('reactions.list', options)
65
+ if block_given?
66
+ Pagination::Cursor.new(self, :reactions_list, options).each do |page|
67
+ yield page
68
+ end
69
+ else
70
+ post('reactions.list', options)
71
+ end
62
72
  end
63
73
 
64
74
  #
65
- # This method removes a reaction (emoji) from an item (file, file comment, channel message, group message, or direct message).
66
- # One of file, file_comment, or the combination of channel and timestamp must be specified.
75
+ # Removes a reaction from an item.
67
76
  #
68
77
  # @option options [Object] :name
69
78
  # Reaction (emoji) name.
79
+ # @option options [channel] :channel
80
+ # Channel where the message to remove reaction from was posted.
70
81
  # @option options [file] :file
71
82
  # File to remove reaction from.
72
83
  # @option options [Object] :file_comment
73
84
  # File comment to remove reaction from.
74
- # @option options [channel] :channel
75
- # Channel where the message to remove reaction from was posted.
76
85
  # @option options [Object] :timestamp
77
86
  # Timestamp of the message to remove reaction from.
78
87
  # @see https://api.slack.com/methods/reactions.remove
79
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.remove.json
88
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.remove.json
80
89
  def reactions_remove(options = {})
81
90
  throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
82
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
91
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
83
92
  post('reactions.remove', options)
84
93
  end
85
94
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,7 +7,7 @@ module Slack
6
7
  module Endpoints
7
8
  module Reminders
8
9
  #
9
- # This method creates a reminder.
10
+ # Creates a reminder.
10
11
  #
11
12
  # @option options [Object] :text
12
13
  # The content of the reminder.
@@ -15,7 +16,7 @@ module Slack
15
16
  # @option options [user] :user
16
17
  # The user who will receive the reminder. If no user is specified, the reminder will go to user who created it.
17
18
  # @see https://api.slack.com/methods/reminders.add
18
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reminders/reminders.add.json
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.add.json
19
20
  def reminders_add(options = {})
20
21
  throw ArgumentError.new('Required arguments :text missing') if options[:text].nil?
21
22
  throw ArgumentError.new('Required arguments :time missing') if options[:time].nil?
@@ -24,46 +25,46 @@ module Slack
24
25
  end
25
26
 
26
27
  #
27
- # This method completes a reminder.
28
+ # Marks a reminder as complete.
28
29
  #
29
30
  # @option options [Object] :reminder
30
31
  # The ID of the reminder to be marked as complete.
31
32
  # @see https://api.slack.com/methods/reminders.complete
32
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reminders/reminders.complete.json
33
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.complete.json
33
34
  def reminders_complete(options = {})
34
35
  throw ArgumentError.new('Required arguments :reminder missing') if options[:reminder].nil?
35
36
  post('reminders.complete', options)
36
37
  end
37
38
 
38
39
  #
39
- # This method deletes a reminder.
40
+ # Deletes a reminder.
40
41
  #
41
42
  # @option options [Object] :reminder
42
43
  # The ID of the reminder.
43
44
  # @see https://api.slack.com/methods/reminders.delete
44
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reminders/reminders.delete.json
45
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.delete.json
45
46
  def reminders_delete(options = {})
46
47
  throw ArgumentError.new('Required arguments :reminder missing') if options[:reminder].nil?
47
48
  post('reminders.delete', options)
48
49
  end
49
50
 
50
51
  #
51
- # This method returns information about a reminder.
52
+ # Gets information about a reminder.
52
53
  #
53
54
  # @option options [Object] :reminder
54
55
  # The ID of the reminder.
55
56
  # @see https://api.slack.com/methods/reminders.info
56
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reminders/reminders.info.json
57
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.info.json
57
58
  def reminders_info(options = {})
58
59
  throw ArgumentError.new('Required arguments :reminder missing') if options[:reminder].nil?
59
60
  post('reminders.info', options)
60
61
  end
61
62
 
62
63
  #
63
- # This method lists all reminders created by or for a given user.
64
+ # Lists all reminders created by or for a given user.
64
65
  #
65
66
  # @see https://api.slack.com/methods/reminders.list
66
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reminders/reminders.list.json
67
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.list.json
67
68
  def reminders_list(options = {})
68
69
  post('reminders.list', options)
69
70
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,17 +7,37 @@ module Slack
6
7
  module Endpoints
7
8
  module Rtm
8
9
  #
9
- # This method starts a Real Time Messaging API session. Refer to the
10
- # RTM API documentation for full details on how to use the RTM API.
10
+ # Starts a Real Time Messaging session.
11
11
  #
12
- # @option options [Object] :simple_latest
13
- # Return timestamp only for latest message object of each channel (improves performance).
14
- # @option options [Object] :no_unreads
15
- # Skip unread counts for each channel (improves performance).
12
+ # @option options [Object] :batch_presence_aware
13
+ # Batch presence deliveries via subscription. Enabling changes the shape of presence_change events. See batch presence.
14
+ # @option options [Object] :presence_sub
15
+ # Only deliver presence events when requested by subscription. See presence subscriptions.
16
+ # @see https://api.slack.com/methods/rtm.connect
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/rtm/rtm.connect.json
18
+ def rtm_connect(options = {})
19
+ post('rtm.connect', options)
20
+ end
21
+
22
+ #
23
+ # Starts a Real Time Messaging session.
24
+ #
25
+ # @option options [Object] :batch_presence_aware
26
+ # Batch presence deliveries via subscription. Enabling changes the shape of presence_change events. See batch presence.
27
+ # @option options [Object] :include_locale
28
+ # Set this to true to receive the locale for users and channels. Defaults to false.
16
29
  # @option options [Object] :mpim_aware
17
30
  # Returns MPIMs to the client in the API response.
31
+ # @option options [Object] :no_latest
32
+ # Exclude latest timestamps for channels, groups, mpims, and ims. Automatically sets no_unreads to 1.
33
+ # @option options [Object] :no_unreads
34
+ # Skip unread counts for each channel (improves performance).
35
+ # @option options [Object] :presence_sub
36
+ # Only deliver presence events when requested by subscription. See presence subscriptions.
37
+ # @option options [Object] :simple_latest
38
+ # Return timestamp only for latest message object of each channel (improves performance).
18
39
  # @see https://api.slack.com/methods/rtm.start
19
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/rtm/rtm.start.json
40
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/rtm/rtm.start.json
20
41
  def rtm_start(options = {})
21
42
  post('rtm.start', options)
22
43
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,54 +7,60 @@ module Slack
6
7
  module Endpoints
7
8
  module Search
8
9
  #
9
- # This method allows users and applications to search both messages and files in a single call.
10
+ # Searches for messages and files matching a query.
10
11
  #
11
12
  # @option options [Object] :query
12
13
  # Search query. May contains booleans, etc.
14
+ # @option options [Object] :highlight
15
+ # Pass a value of true to enable query highlight markers (see below).
13
16
  # @option options [Object] :sort
14
17
  # Return matches sorted by either score or timestamp.
15
18
  # @option options [Object] :sort_dir
16
19
  # Change sort direction to ascending (asc) or descending (desc).
17
- # @option options [Object] :highlight
18
- # Pass a value of 1 to enable query highlight markers (see below).
20
+ # @option options [Object] :team_id
21
+ # encoded team id to search in, required if org token is used.
19
22
  # @see https://api.slack.com/methods/search.all
20
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/search/search.all.json
23
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/search/search.all.json
21
24
  def search_all(options = {})
22
25
  throw ArgumentError.new('Required arguments :query missing') if options[:query].nil?
23
26
  post('search.all', options)
24
27
  end
25
28
 
26
29
  #
27
- # This method returns files matching a search query.
30
+ # Searches for files matching a query.
28
31
  #
29
32
  # @option options [Object] :query
30
- # Search query. May contain booleans, etc.
33
+ # Search query.
34
+ # @option options [Object] :highlight
35
+ # Pass a value of true to enable query highlight markers (see below).
31
36
  # @option options [Object] :sort
32
37
  # Return matches sorted by either score or timestamp.
33
38
  # @option options [Object] :sort_dir
34
39
  # Change sort direction to ascending (asc) or descending (desc).
35
- # @option options [Object] :highlight
36
- # Pass a value of 1 to enable query highlight markers (see below).
40
+ # @option options [Object] :team_id
41
+ # encoded team id to search in, required if org token is used.
37
42
  # @see https://api.slack.com/methods/search.files
38
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/search/search.files.json
43
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/search/search.files.json
39
44
  def search_files(options = {})
40
45
  throw ArgumentError.new('Required arguments :query missing') if options[:query].nil?
41
46
  post('search.files', options)
42
47
  end
43
48
 
44
49
  #
45
- # This method returns messages matching a search query.
50
+ # Searches for messages matching a query.
46
51
  #
47
52
  # @option options [Object] :query
48
- # Search query. May contains booleans, etc.
53
+ # Search query.
54
+ # @option options [Object] :highlight
55
+ # Pass a value of true to enable query highlight markers (see below).
49
56
  # @option options [Object] :sort
50
57
  # Return matches sorted by either score or timestamp.
51
58
  # @option options [Object] :sort_dir
52
59
  # Change sort direction to ascending (asc) or descending (desc).
53
- # @option options [Object] :highlight
54
- # Pass a value of 1 to enable query highlight markers (see below).
60
+ # @option options [Object] :team_id
61
+ # encoded team id to search in, required if org token is used.
55
62
  # @see https://api.slack.com/methods/search.messages
56
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/search/search.messages.json
63
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/search/search.messages.json
57
64
  def search_messages(options = {})
58
65
  throw ArgumentError.new('Required arguments :query missing') if options[:query].nil?
59
66
  post('search.messages', options)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,49 +7,57 @@ module Slack
6
7
  module Endpoints
7
8
  module Stars
8
9
  #
9
- # This method adds a star to an item (message, file, file comment, channel, private group, or DM) on behalf of the authenticated user.
10
- # One of file, file_comment, channel, or the combination of channel and timestamp must be specified.
10
+ # Adds a star to an item.
11
11
  #
12
+ # @option options [channel] :channel
13
+ # Channel to add star to, or channel where the message to add star to was posted (used with timestamp).
12
14
  # @option options [file] :file
13
15
  # File to add star to.
14
16
  # @option options [Object] :file_comment
15
17
  # File comment to add star to.
16
- # @option options [channel] :channel
17
- # Channel to add star to, or channel where the message to add star to was posted (used with timestamp).
18
18
  # @option options [Object] :timestamp
19
19
  # Timestamp of the message to add star to.
20
20
  # @see https://api.slack.com/methods/stars.add
21
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/stars/stars.add.json
21
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/stars/stars.add.json
22
22
  def stars_add(options = {})
23
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
23
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
24
24
  post('stars.add', options)
25
25
  end
26
26
 
27
27
  #
28
- # This method lists the items starred by the authed user.
28
+ # Lists stars for a user.
29
29
  #
30
+ # @option options [Object] :cursor
31
+ # Parameter for pagination. Set cursor equal to the next_cursor attribute returned by the previous request's response_metadata. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection. See pagination for more details.
32
+ # @option options [Object] :limit
33
+ # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.
30
34
  # @see https://api.slack.com/methods/stars.list
31
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/stars/stars.list.json
35
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/stars/stars.list.json
32
36
  def stars_list(options = {})
33
- post('stars.list', options)
37
+ if block_given?
38
+ Pagination::Cursor.new(self, :stars_list, options).each do |page|
39
+ yield page
40
+ end
41
+ else
42
+ post('stars.list', options)
43
+ end
34
44
  end
35
45
 
36
46
  #
37
- # This method removes a star from an item (message, file, file comment, channel, private group, or DM) on behalf of the authenticated user.
38
- # One of file, file_comment, channel, or the combination of channel and timestamp must be specified.
47
+ # Removes a star from an item.
39
48
  #
49
+ # @option options [channel] :channel
50
+ # Channel to remove star from, or channel where the message to remove star from was posted (used with timestamp).
40
51
  # @option options [file] :file
41
52
  # File to remove star from.
42
53
  # @option options [Object] :file_comment
43
54
  # File comment to remove star from.
44
- # @option options [channel] :channel
45
- # Channel to remove star from, or channel where the message to remove star from was posted (used with timestamp).
46
55
  # @option options [Object] :timestamp
47
56
  # Timestamp of the message to remove star from.
48
57
  # @see https://api.slack.com/methods/stars.remove
49
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/stars/stars.remove.json
58
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/stars/stars.remove.json
50
59
  def stars_remove(options = {})
51
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
60
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
52
61
  post('stars.remove', options)
53
62
  end
54
63
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,51 +7,58 @@ module Slack
6
7
  module Endpoints
7
8
  module Team
8
9
  #
9
- # This method is used to get the access logs for users on a team.
10
+ # Gets the access logs for the current team.
10
11
  #
11
12
  # @option options [Object] :before
12
13
  # End of time range of logs to include in results (inclusive).
14
+ # @option options [Object] :team_id
15
+ # encoded team id to get logs from, required if org token is used.
13
16
  # @see https://api.slack.com/methods/team.accessLogs
14
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/team/team.accessLogs.json
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/team/team.accessLogs.json
15
18
  def team_accessLogs(options = {})
16
19
  post('team.accessLogs', options)
17
20
  end
18
21
 
19
22
  #
20
- # This method lists billable information for each user on the team. Currently this consists solely of whether the user is
21
- # subject to billing per Slack's Fair Billing policy.
23
+ # Gets billable users information for the current team.
22
24
  #
25
+ # @option options [Object] :team_id
26
+ # encoded team id to get the billable information from, required if org token is used.
23
27
  # @option options [user] :user
24
28
  # A user to retrieve the billable information for. Defaults to all users.
25
29
  # @see https://api.slack.com/methods/team.billableInfo
26
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/team/team.billableInfo.json
30
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/team/team.billableInfo.json
27
31
  def team_billableInfo(options = {})
28
32
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
29
33
  post('team.billableInfo', options)
30
34
  end
31
35
 
32
36
  #
33
- # This method provides information about your team.
37
+ # Gets information about the current team.
34
38
  #
39
+ # @option options [Object] :team
40
+ # Team to get info on, if omitted, will return information about the current team. Will only return team that the authenticated token is allowed to see through external shared channels.
35
41
  # @see https://api.slack.com/methods/team.info
36
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/team/team.info.json
42
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/team/team.info.json
37
43
  def team_info(options = {})
38
44
  post('team.info', options)
39
45
  end
40
46
 
41
47
  #
42
- # This method lists the integration activity logs for a team, including when integrations are added, modified and removed. This method can only be called by Admins.
48
+ # Gets the integration logs for the current team.
43
49
  #
44
- # @option options [Object] :service_id
45
- # Filter logs to this service. Defaults to all logs.
46
50
  # @option options [Object] :app_id
47
51
  # Filter logs to this Slack app. Defaults to all logs.
48
- # @option options [user] :user
49
- # Filter logs generated by this user's actions. Defaults to all logs.
50
52
  # @option options [Object] :change_type
51
53
  # Filter logs with this change type. Defaults to all logs.
54
+ # @option options [Object] :service_id
55
+ # Filter logs to this service. Defaults to all logs.
56
+ # @option options [Object] :team_id
57
+ # encoded team id to get logs from, required if org token is used.
58
+ # @option options [user] :user
59
+ # Filter logs generated by this user's actions. Defaults to all logs.
52
60
  # @see https://api.slack.com/methods/team.integrationLogs
53
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/team/team.integrationLogs.json
61
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/team/team.integrationLogs.json
54
62
  def team_integrationLogs(options = {})
55
63
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
56
64
  post('team.integrationLogs', options)