slack-ruby-client 0.7.9 → 0.16.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.
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
@@ -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,94 +7,110 @@ module Slack
6
7
  module Endpoints
7
8
  module Im
8
9
  #
9
- # This method closes a direct message channel.
10
+ # Close a direct message channel.
10
11
  #
11
12
  # @option options [im] :channel
12
13
  # Direct message channel to close.
13
14
  # @see https://api.slack.com/methods/im.close
14
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.close.json
15
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.close.json
15
16
  def im_close(options = {})
16
17
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
17
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
18
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
19
+ logger.warn('im.close: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.close.')
18
20
  post('im.close', options)
19
21
  end
20
22
 
21
23
  #
22
- # This method returns a portion of messages/events from the specified direct message channel.
23
- # To read the entire history for a direct message channel, call the method with no latest or
24
- # oldest arguments, and then continue paging using the instructions below.
24
+ # Fetches history of messages and events from direct message channel.
25
25
  #
26
26
  # @option options [im] :channel
27
27
  # Direct message channel to fetch history for.
28
+ # @option options [Object] :inclusive
29
+ # Include messages with latest or oldest timestamp in results.
28
30
  # @option options [timestamp] :latest
29
31
  # End of time range of messages to include in results.
30
32
  # @option options [timestamp] :oldest
31
33
  # Start of time range of messages to include in results.
32
- # @option options [Object] :inclusive
33
- # Include messages with latest or oldest timestamp in results.
34
34
  # @option options [Object] :unreads
35
35
  # Include unread_count_display in the output?.
36
36
  # @see https://api.slack.com/methods/im.history
37
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.history.json
37
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.history.json
38
38
  def im_history(options = {})
39
39
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
40
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
40
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
41
+ logger.warn('im.history: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.history.')
41
42
  post('im.history', options)
42
43
  end
43
44
 
44
45
  #
45
- # This method returns a list of all im channels that the user has.
46
+ # Lists direct message channels for the calling user.
46
47
  #
48
+ # @option options [Object] :cursor
49
+ # Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first "page" of the collection. See pagination for more detail.
50
+ # @option options [Object] :limit
51
+ # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached.
47
52
  # @see https://api.slack.com/methods/im.list
48
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.list.json
53
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.list.json
49
54
  def im_list(options = {})
50
- post('im.list', options)
55
+ logger.warn('im.list: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.list, users.conversations.')
56
+ if block_given?
57
+ Pagination::Cursor.new(self, :im_list, options).each do |page|
58
+ yield page
59
+ end
60
+ else
61
+ post('im.list', options)
62
+ end
51
63
  end
52
64
 
53
65
  #
54
- # This method moves the read cursor in a direct message channel.
66
+ # Sets the read cursor in a direct message channel.
55
67
  #
56
68
  # @option options [im] :channel
57
69
  # Direct message channel to set reading cursor in.
58
70
  # @option options [timestamp] :ts
59
71
  # Timestamp of the most recently seen message.
60
72
  # @see https://api.slack.com/methods/im.mark
61
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.mark.json
73
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.mark.json
62
74
  def im_mark(options = {})
63
75
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
64
76
  throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
65
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
77
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
78
+ logger.warn('im.mark: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.mark.')
66
79
  post('im.mark', options)
67
80
  end
68
81
 
69
82
  #
70
- # This method opens a direct message channel with another member of your Slack team.
83
+ # Opens a direct message channel.
71
84
  #
72
85
  # @option options [user] :user
73
86
  # User to open a direct message channel with.
87
+ # @option options [Object] :include_locale
88
+ # Set this to true to receive the locale for this im. Defaults to false.
74
89
  # @option options [Object] :return_im
75
90
  # Boolean, indicates you want the full IM channel definition in the response.
76
91
  # @see https://api.slack.com/methods/im.open
77
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.open.json
92
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.open.json
78
93
  def im_open(options = {})
79
94
  throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
80
95
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
96
+ logger.warn('im.open: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.open.')
81
97
  post('im.open', options)
82
98
  end
83
99
 
84
100
  #
85
- # This method returns an entire thread (a message plus all the messages in reply to it).
101
+ # Retrieve a thread of messages posted to a direct message conversation
86
102
  #
87
103
  # @option options [im] :channel
88
104
  # Direct message channel to fetch thread from.
89
105
  # @option options [Object] :thread_ts
90
106
  # Unique identifier of a thread's parent message.
91
107
  # @see https://api.slack.com/methods/im.replies
92
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.replies.json
108
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.replies.json
93
109
  def im_replies(options = {})
94
110
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
95
111
  throw ArgumentError.new('Required arguments :thread_ts missing') if options[:thread_ts].nil?
96
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
112
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
113
+ logger.warn('im.replies: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.replies.')
97
114
  post('im.replies', options)
98
115
  end
99
116
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module Migration
9
+ #
10
+ # For Enterprise Grid workspaces, map local user IDs to global user IDs
11
+ #
12
+ # @option options [Object] :users
13
+ # A comma-separated list of user ids, up to 400 per request.
14
+ # @option options [Object] :team_id
15
+ # Specify team_id starts with T in case of Org Token.
16
+ # @option options [Object] :to_old
17
+ # Specify true to convert W global user IDs to workspace-specific U IDs. Defaults to false.
18
+ # @see https://api.slack.com/methods/migration.exchange
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/migration/migration.exchange.json
20
+ def migration_exchange(options = {})
21
+ throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
22
+ post('migration.exchange', options)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ 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,63 +7,75 @@ module Slack
6
7
  module Endpoints
7
8
  module Mpim
8
9
  #
9
- # This method closes a multiparty direct message channel.
10
+ # Closes a multiparty direct message channel.
10
11
  #
11
12
  # @option options [channel] :channel
12
13
  # MPIM to close.
13
14
  # @see https://api.slack.com/methods/mpim.close
14
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.close.json
15
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.close.json
15
16
  def mpim_close(options = {})
16
17
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
17
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
18
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
19
+ logger.warn('mpim.close: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.close.')
18
20
  post('mpim.close', options)
19
21
  end
20
22
 
21
23
  #
22
- # This method returns a portion of messages/events from the specified multiparty direct message channel.
23
- # To read the entire history for a multiparty direct message, call the method with no latest or
24
- # oldest arguments, and then continue paging using the instructions below.
24
+ # Fetches history of messages and events from a multiparty direct message.
25
25
  #
26
26
  # @option options [channel] :channel
27
27
  # Multiparty direct message to fetch history for.
28
+ # @option options [Object] :inclusive
29
+ # Include messages with latest or oldest timestamp in results.
28
30
  # @option options [timestamp] :latest
29
31
  # End of time range of messages to include in results.
30
32
  # @option options [timestamp] :oldest
31
33
  # Start of time range of messages to include in results.
32
- # @option options [Object] :inclusive
33
- # Include messages with latest or oldest timestamp in results.
34
34
  # @option options [Object] :unreads
35
35
  # Include unread_count_display in the output?.
36
36
  # @see https://api.slack.com/methods/mpim.history
37
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.history.json
37
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.history.json
38
38
  def mpim_history(options = {})
39
39
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
40
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
40
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
41
+ logger.warn('mpim.history: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.history.')
41
42
  post('mpim.history', options)
42
43
  end
43
44
 
44
45
  #
45
- # This method returns a list of all multiparty direct message channels that the user has.
46
+ # Lists multiparty direct message channels for the calling user.
46
47
  #
48
+ # @option options [Object] :cursor
49
+ # 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.
50
+ # @option options [Object] :limit
51
+ # 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.
47
52
  # @see https://api.slack.com/methods/mpim.list
48
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.list.json
53
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.list.json
49
54
  def mpim_list(options = {})
50
- post('mpim.list', options)
55
+ logger.warn('mpim.list: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.list, users.conversations.')
56
+ if block_given?
57
+ Pagination::Cursor.new(self, :mpim_list, options).each do |page|
58
+ yield page
59
+ end
60
+ else
61
+ post('mpim.list', options)
62
+ end
51
63
  end
52
64
 
53
65
  #
54
- # This method moves the read cursor in a multiparty direct message channel.
66
+ # Sets the read cursor in a multiparty direct message channel.
55
67
  #
56
68
  # @option options [channel] :channel
57
- # multiparty direct message channel to set reading cursor in.
69
+ # Channel or conversation to set the read cursor for.
58
70
  # @option options [timestamp] :ts
59
- # Timestamp of the most recently seen message.
71
+ # Unique identifier of message you want marked as most recently seen in this conversation.
60
72
  # @see https://api.slack.com/methods/mpim.mark
61
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.mark.json
73
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.mark.json
62
74
  def mpim_mark(options = {})
63
75
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
64
76
  throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
65
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
77
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
78
+ logger.warn('mpim.mark: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.mark.')
66
79
  post('mpim.mark', options)
67
80
  end
68
81
 
@@ -72,25 +85,27 @@ module Slack
72
85
  # @option options [Object] :users
73
86
  # Comma separated lists of users. The ordering of the users is preserved whenever a MPIM group is returned.
74
87
  # @see https://api.slack.com/methods/mpim.open
75
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.open.json
88
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.open.json
76
89
  def mpim_open(options = {})
77
90
  throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
91
+ logger.warn('mpim.open: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.open.')
78
92
  post('mpim.open', options)
79
93
  end
80
94
 
81
95
  #
82
- # This method returns an entire thread (a message plus all the messages in reply to it).
96
+ # Retrieve a thread of messages posted to a direct message conversation from a multiparty direct message.
83
97
  #
84
98
  # @option options [channel] :channel
85
99
  # Multiparty direct message channel to fetch thread from.
86
100
  # @option options [Object] :thread_ts
87
101
  # Unique identifier of a thread's parent message.
88
102
  # @see https://api.slack.com/methods/mpim.replies
89
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.replies.json
103
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.replies.json
90
104
  def mpim_replies(options = {})
91
105
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
92
106
  throw ArgumentError.new('Required arguments :thread_ts missing') if options[:thread_ts].nil?
93
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
107
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
108
+ logger.warn('mpim.replies: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.replies.')
94
109
  post('mpim.replies', options)
95
110
  end
96
111
  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,8 +7,7 @@ module Slack
6
7
  module Endpoints
7
8
  module Oauth
8
9
  #
9
- # This method allows you to exchange a temporary OAuth code for an API access token.
10
- # This is used as part of the OAuth authentication flow.
10
+ # Exchanges a temporary OAuth verifier code for an access token.
11
11
  #
12
12
  # @option options [Object] :client_id
13
13
  # Issued when you created your application.
@@ -17,13 +17,34 @@ module Slack
17
17
  # The code param returned via the OAuth callback.
18
18
  # @option options [Object] :redirect_uri
19
19
  # This must match the originally submitted URI (if one was sent).
20
+ # @option options [Object] :single_channel
21
+ # Request the user to add your app only to a single channel. Only valid with a legacy workspace app.
20
22
  # @see https://api.slack.com/methods/oauth.access
21
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/oauth/oauth.access.json
23
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth/oauth.access.json
22
24
  def oauth_access(options = {})
25
+ post('oauth.access', options)
26
+ end
27
+
28
+ #
29
+ # Exchanges a temporary OAuth verifier code for a workspace token.
30
+ #
31
+ # @option options [Object] :client_id
32
+ # Issued when you created your application.
33
+ # @option options [Object] :client_secret
34
+ # Issued when you created your application.
35
+ # @option options [Object] :code
36
+ # The code param returned via the OAuth callback.
37
+ # @option options [Object] :redirect_uri
38
+ # This must match the originally submitted URI (if one was sent).
39
+ # @option options [Object] :single_channel
40
+ # Request the user to add your app only to a single channel.
41
+ # @see https://api.slack.com/methods/oauth.token
42
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth/oauth.token.json
43
+ def oauth_token(options = {})
23
44
  throw ArgumentError.new('Required arguments :client_id missing') if options[:client_id].nil?
24
45
  throw ArgumentError.new('Required arguments :client_secret missing') if options[:client_secret].nil?
25
46
  throw ArgumentError.new('Required arguments :code missing') if options[:code].nil?
26
- post('oauth.access', options)
47
+ post('oauth.token', options)
27
48
  end
28
49
  end
29
50
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module OauthV2
9
+ #
10
+ # Exchanges a temporary OAuth verifier code for an access token.
11
+ #
12
+ # @option options [Object] :code
13
+ # The code param returned via the OAuth callback.
14
+ # @option options [Object] :client_id
15
+ # Issued when you created your application.
16
+ # @option options [Object] :client_secret
17
+ # Issued when you created your application.
18
+ # @option options [Object] :redirect_uri
19
+ # This must match the originally submitted URI (if one was sent).
20
+ # @see https://api.slack.com/methods/oauth.v2.access
21
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth.v2/oauth.v2.access.json
22
+ def oauth_v2_access(options = {})
23
+ throw ArgumentError.new('Required arguments :code missing') if options[:code].nil?
24
+ post('oauth.v2.access', options)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ 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,55 +7,45 @@ module Slack
6
7
  module Endpoints
7
8
  module Pins
8
9
  #
9
- # This method pins an item (file, file comment, channel message, or group message) to a particular channel.
10
- # The channel argument is required and one of file, file_comment, or timestamp must also be specified.
10
+ # Pins an item to a channel.
11
11
  #
12
12
  # @option options [channel] :channel
13
13
  # Channel to pin the item in.
14
- # @option options [file] :file
15
- # File to pin.
16
- # @option options [Object] :file_comment
17
- # File comment to pin.
18
14
  # @option options [Object] :timestamp
19
15
  # Timestamp of the message to pin.
20
16
  # @see https://api.slack.com/methods/pins.add
21
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins/pins.add.json
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/pins/pins.add.json
22
18
  def pins_add(options = {})
23
19
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
24
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
20
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
25
21
  post('pins.add', options)
26
22
  end
27
23
 
28
24
  #
29
- # This method lists the items pinned to a channel.
25
+ # Lists items pinned to a channel.
30
26
  #
31
27
  # @option options [channel] :channel
32
28
  # Channel to get pinned items for.
33
29
  # @see https://api.slack.com/methods/pins.list
34
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins/pins.list.json
30
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/pins/pins.list.json
35
31
  def pins_list(options = {})
36
32
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
37
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
33
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
38
34
  post('pins.list', options)
39
35
  end
40
36
 
41
37
  #
42
- # This method un-pins an item (file, file comment, channel message, or group message) from a channel.
43
- # The channel argument is required and one of file, file_comment, or timestamp must also be specified.
38
+ # Un-pins an item from a channel.
44
39
  #
45
40
  # @option options [channel] :channel
46
41
  # Channel where the item is pinned to.
47
- # @option options [file] :file
48
- # File to un-pin.
49
- # @option options [Object] :file_comment
50
- # File comment to un-pin.
51
42
  # @option options [Object] :timestamp
52
43
  # Timestamp of the message to un-pin.
53
44
  # @see https://api.slack.com/methods/pins.remove
54
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins/pins.remove.json
45
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/pins/pins.remove.json
55
46
  def pins_remove(options = {})
56
47
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
57
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
48
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
58
49
  post('pins.remove', options)
59
50
  end
60
51
  end