slack-ruby-client 0.13.1 → 2.0.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 (402) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/workflows/integration_test.yml +26 -0
  4. data/.github/workflows/lint.yml +14 -0
  5. data/.github/workflows/pr_lint.yml +21 -0
  6. data/.github/workflows/test.yml +36 -0
  7. data/.gitignore +5 -3
  8. data/.rubocop.yml +34 -5
  9. data/.rubocop_todo.yml +180 -46
  10. data/.ruby-version +1 -0
  11. data/CHANGELOG.md +119 -2
  12. data/CONTRIBUTING.md +23 -11
  13. data/Dangerfile +2 -0
  14. data/Gemfile +22 -5
  15. data/Gemfile.danger +6 -0
  16. data/LICENSE.md +1 -1
  17. data/README.md +236 -101
  18. data/RELEASING.md +2 -2
  19. data/Rakefile +2 -1
  20. data/UPGRADING.md +100 -2
  21. data/bin/commands/admin_analytics.rb +16 -0
  22. data/bin/commands/admin_apps.rb +51 -0
  23. data/bin/commands/admin_apps_approved.rb +17 -0
  24. data/bin/commands/admin_apps_requests.rb +28 -0
  25. data/bin/commands/admin_apps_restricted.rb +17 -0
  26. data/bin/commands/admin_audit_anomaly_allow.rb +23 -0
  27. data/bin/commands/admin_auth_policy.rb +39 -0
  28. data/bin/commands/admin_barriers.rb +47 -0
  29. data/bin/commands/admin_conversations.rb +171 -0
  30. data/bin/commands/admin_conversations_ekm.rb +17 -0
  31. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  32. data/bin/commands/admin_emoji.rb +54 -0
  33. data/bin/commands/admin_inviteRequests.rb +36 -0
  34. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  35. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  36. data/bin/commands/admin_teams.rb +27 -0
  37. data/bin/commands/admin_teams_admins.rb +16 -0
  38. data/bin/commands/admin_teams_owners.rb +16 -0
  39. data/bin/commands/admin_teams_settings.rb +64 -0
  40. data/bin/commands/admin_usergroups.rb +48 -0
  41. data/bin/commands/admin_users.rb +98 -0
  42. data/bin/commands/admin_users_session.rb +78 -0
  43. data/bin/commands/admin_users_unsupportedVersions.rb +15 -0
  44. data/bin/commands/api.rb +1 -1
  45. data/bin/commands/apps.rb +15 -0
  46. data/bin/commands/apps_connections.rb +13 -0
  47. data/bin/commands/apps_event_authorizations.rb +16 -0
  48. data/bin/commands/apps_manifest.rb +52 -0
  49. data/bin/commands/auth.rb +1 -0
  50. data/bin/commands/auth_teams.rb +16 -0
  51. data/bin/commands/bookmarks.rb +53 -0
  52. data/bin/commands/bots.rb +2 -0
  53. data/bin/commands/calls.rb +52 -0
  54. data/bin/commands/calls_participants.rb +25 -0
  55. data/bin/commands/chat.rb +61 -14
  56. data/bin/commands/chat_scheduledMessages.rb +19 -0
  57. data/bin/commands/conversations.rb +82 -10
  58. data/bin/commands/dialog.rb +1 -0
  59. data/bin/commands/dnd.rb +6 -3
  60. data/bin/commands/emoji.rb +1 -0
  61. data/bin/commands/files.rb +34 -18
  62. data/bin/commands/files_comments.rb +1 -21
  63. data/bin/commands/files_remote.rb +78 -0
  64. data/bin/commands/migration.rb +2 -0
  65. data/bin/commands/oauth.rb +2 -14
  66. data/bin/commands/oauth_v2.rb +29 -0
  67. data/bin/commands/openid_connect.rb +27 -0
  68. data/bin/commands/pins.rb +3 -6
  69. data/bin/commands/reactions.rb +3 -3
  70. data/bin/commands/reminders.rb +7 -0
  71. data/bin/commands/rtm.rb +1 -15
  72. data/bin/commands/search.rb +6 -1
  73. data/bin/commands/stars.rb +8 -6
  74. data/bin/commands/team.rb +6 -0
  75. data/bin/commands/team_billing.rb +13 -0
  76. data/bin/commands/team_preferences.rb +13 -0
  77. data/bin/commands/team_profile.rb +1 -0
  78. data/bin/commands/tooling_tokens.rb +14 -0
  79. data/bin/commands/usergroups.rb +7 -1
  80. data/bin/commands/usergroups_users.rb +3 -0
  81. data/bin/commands/users.rb +6 -4
  82. data/bin/commands/users_admin.rb +1 -0
  83. data/bin/commands/users_prefs.rb +1 -0
  84. data/bin/commands/users_profile.rb +6 -5
  85. data/bin/commands/views.rb +50 -0
  86. data/bin/commands/workflows.rb +38 -0
  87. data/bin/commands.rb +41 -8
  88. data/bin/slack +3 -4
  89. data/examples/hi_real_time_and_web/Gemfile +1 -0
  90. data/examples/hi_real_time_and_web/hi.rb +7 -3
  91. data/examples/hi_real_time_async_async/Gemfile +1 -0
  92. data/examples/hi_real_time_async_async/hi.rb +6 -2
  93. data/examples/hi_web/Gemfile +1 -0
  94. data/examples/hi_web/hi.rb +1 -0
  95. data/examples/new_ticket/Gemfile +1 -0
  96. data/examples/new_ticket/new_ticket.rb +1 -0
  97. data/lib/slack/config.rb +2 -2
  98. data/lib/slack/events/config.rb +32 -0
  99. data/lib/slack/events/request.rb +72 -0
  100. data/lib/slack/logger.rb +6 -5
  101. data/lib/slack/messages/formatting.rb +1 -0
  102. data/lib/slack/messages/message.rb +1 -4
  103. data/lib/slack/real_time/api/message.rb +6 -3
  104. data/lib/slack/real_time/api/message_id.rb +1 -0
  105. data/lib/slack/real_time/api/ping.rb +5 -2
  106. data/lib/slack/real_time/api/templates/event_handler.erb +5 -1
  107. data/lib/slack/real_time/api/typing.rb +5 -2
  108. data/lib/slack/real_time/client.rb +105 -54
  109. data/lib/slack/real_time/concurrency/async.rb +77 -6
  110. data/lib/slack/real_time/concurrency.rb +1 -2
  111. data/lib/slack/real_time/config.rb +9 -13
  112. data/lib/slack/real_time/models/base.rb +1 -4
  113. data/lib/slack/real_time/models/bot.rb +1 -0
  114. data/lib/slack/real_time/models/channel.rb +5 -0
  115. data/lib/slack/real_time/models/im.rb +1 -0
  116. data/lib/slack/real_time/models/{group.rb → mpim.rb} +2 -1
  117. data/lib/slack/real_time/models/team.rb +1 -0
  118. data/lib/slack/real_time/models/user.rb +1 -0
  119. data/lib/slack/real_time/models.rb +3 -1
  120. data/lib/slack/real_time/socket.rb +45 -17
  121. data/lib/slack/real_time/stores/base.rb +28 -14
  122. data/lib/slack/real_time/stores/starter.rb +325 -297
  123. data/lib/slack/real_time/stores/store.rb +271 -196
  124. data/lib/slack/real_time/stores.rb +2 -7
  125. data/lib/slack/version.rb +2 -1
  126. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  127. data/lib/slack/web/api/endpoints/admin_apps.rb +78 -0
  128. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  129. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +51 -0
  130. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  131. data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +34 -0
  132. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  133. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  134. data/lib/slack/web/api/endpoints/admin_conversations.rb +264 -0
  135. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  136. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  137. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  138. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  139. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  140. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  141. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  142. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  143. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  144. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  145. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  146. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  147. data/lib/slack/web/api/endpoints/admin_users_session.rb +122 -0
  148. data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
  149. data/lib/slack/web/api/endpoints/api.rb +2 -3
  150. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  151. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  152. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  153. data/lib/slack/web/api/endpoints/apps_manifest.rb +77 -0
  154. data/lib/slack/web/api/endpoints/auth.rb +2 -1
  155. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  156. data/lib/slack/web/api/endpoints/bookmarks.rb +88 -0
  157. data/lib/slack/web/api/endpoints/bots.rb +4 -1
  158. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  159. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  160. data/lib/slack/web/api/endpoints/chat.rb +168 -65
  161. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  162. data/lib/slack/web/api/endpoints/conversations.rb +182 -67
  163. data/lib/slack/web/api/endpoints/dialog.rb +5 -4
  164. data/lib/slack/web/api/endpoints/dnd.rb +9 -4
  165. data/lib/slack/web/api/endpoints/emoji.rb +1 -0
  166. data/lib/slack/web/api/endpoints/files.rb +69 -37
  167. data/lib/slack/web/api/endpoints/files_comments.rb +4 -36
  168. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  169. data/lib/slack/web/api/endpoints/migration.rb +6 -3
  170. data/lib/slack/web/api/endpoints/oauth.rb +7 -31
  171. data/lib/slack/web/api/endpoints/oauth_v2.rb +48 -0
  172. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  173. data/lib/slack/web/api/endpoints/pins.rb +11 -18
  174. data/lib/slack/web/api/endpoints/reactions.rb +22 -21
  175. data/lib/slack/web/api/endpoints/reminders.rb +23 -10
  176. data/lib/slack/web/api/endpoints/rtm.rb +3 -25
  177. data/lib/slack/web/api/endpoints/search.rb +31 -16
  178. data/lib/slack/web/api/endpoints/stars.rb +14 -11
  179. data/lib/slack/web/api/endpoints/team.rb +15 -4
  180. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  181. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  182. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  183. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  184. data/lib/slack/web/api/endpoints/usergroups.rb +31 -20
  185. data/lib/slack/web/api/endpoints/usergroups_users.rb +13 -8
  186. data/lib/slack/web/api/endpoints/users.rb +24 -23
  187. data/lib/slack/web/api/endpoints/users_admin.rb +3 -2
  188. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  189. data/lib/slack/web/api/endpoints/users_profile.rb +8 -7
  190. data/lib/slack/web/api/endpoints/views.rb +102 -0
  191. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  192. data/lib/slack/web/api/endpoints.rb +82 -18
  193. data/lib/slack/web/api/error.rb +1 -0
  194. data/lib/slack/web/api/errors/server_error.rb +37 -0
  195. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  196. data/lib/slack/web/api/errors/too_many_requests_error.rb +2 -4
  197. data/lib/slack/web/api/errors.rb +1116 -0
  198. data/lib/slack/web/api/mixins/{channels.id.rb → conversations.id.rb} +5 -6
  199. data/lib/slack/web/api/mixins/ids.id.rb +3 -2
  200. data/lib/slack/web/api/mixins/users.id.rb +3 -4
  201. data/lib/slack/web/api/mixins/users.search.rb +3 -1
  202. data/lib/slack/web/api/mixins.rb +2 -2
  203. data/lib/slack/web/api/patches/chat.attachments-blocks.patch +69 -0
  204. data/lib/slack/web/api/patches/{dialog.1.open-json-support.patch → dialog.encoded-json.patch} +4 -4
  205. data/lib/slack/web/api/patches/views.view-json.patch +55 -0
  206. data/lib/slack/web/api/templates/command.erb +1 -0
  207. data/lib/slack/web/api/templates/commands.erb +1 -0
  208. data/lib/slack/web/api/templates/endpoints.erb +2 -2
  209. data/lib/slack/web/api/templates/errors.erb +20 -0
  210. data/lib/slack/web/api/templates/method.erb +6 -2
  211. data/lib/slack/web/api/templates/method_spec.erb +2 -1
  212. data/lib/slack/web/client.rb +2 -1
  213. data/lib/slack/web/config.rb +5 -2
  214. data/lib/slack/web/faraday/connection.rb +24 -20
  215. data/lib/slack/web/faraday/request.rb +5 -1
  216. data/lib/slack/web/faraday/response/raise_error.rb +14 -7
  217. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  218. data/lib/slack/web/pagination/cursor.rb +7 -7
  219. data/lib/slack-ruby-client.rb +12 -5
  220. data/lib/slack.rb +1 -0
  221. data/lib/slack_ruby_client.rb +1 -0
  222. data/lib/tasks/git.rake +1 -0
  223. data/lib/tasks/real_time.rake +51 -21
  224. data/lib/tasks/update.rake +1 -0
  225. data/lib/tasks/web.rake +48 -12
  226. data/screenshots/create-app.png +0 -0
  227. data/slack-ruby-client.gemspec +7 -12
  228. data/spec/fixtures/slack/web/429_error.yml +50 -54
  229. data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
  230. data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
  231. data/spec/fixtures/slack/web/conversations_info.yml +167 -0
  232. data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
  233. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
  234. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
  235. data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
  236. data/spec/fixtures/slack/web/rtm_connect.yml +347 -26
  237. data/spec/fixtures/slack/web/users_info.yml +153 -69
  238. data/spec/fixtures/slack/web/users_list.yml +102 -41
  239. data/spec/fixtures/slack/web/views_open_error.yml +83 -0
  240. data/spec/integration/integration_spec.rb +115 -47
  241. data/spec/slack/config_spec.rb +2 -0
  242. data/spec/slack/events/config_spec.rb +35 -0
  243. data/spec/slack/events/request_spec.rb +188 -0
  244. data/spec/slack/messages/formatting_spec.rb +35 -13
  245. data/spec/slack/real_time/api/message_spec.rb +7 -2
  246. data/spec/slack/real_time/api/ping_spec.rb +3 -1
  247. data/spec/slack/real_time/api/typing_spec.rb +6 -2
  248. data/spec/slack/real_time/client_spec.rb +300 -142
  249. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  250. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  251. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  252. data/spec/slack/real_time/event_handlers/bot_spec.rb +20 -17
  253. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +3 -2
  254. data/spec/slack/real_time/event_handlers/im_spec.rb +31 -27
  255. data/spec/slack/real_time/event_handlers/{group_spec.rb → private_channel_spec.rb} +36 -27
  256. data/spec/slack/real_time/event_handlers/{channel_spec.rb → public_channel_spec.rb} +31 -24
  257. data/spec/slack/real_time/event_handlers/team_spec.rb +8 -7
  258. data/spec/slack/real_time/event_handlers/user_spec.rb +7 -5
  259. data/spec/slack/real_time/rtm_connect_spec.rb +2 -1
  260. data/spec/slack/real_time/stores/store_spec.rb +50 -0
  261. data/spec/slack/slack_spec.rb +41 -6
  262. data/spec/slack/version_spec.rb +2 -1
  263. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  264. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  265. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +13 -0
  266. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  267. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +18 -0
  268. data/spec/slack/web/api/endpoints/admin_audit_anomaly_allow_spec.rb +8 -0
  269. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
  270. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  271. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  272. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  273. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  274. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  275. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  276. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  277. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  278. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  279. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  280. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  281. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  282. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  283. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +41 -0
  284. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  285. data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -0
  286. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  287. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  288. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  289. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
  290. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  291. data/spec/slack/web/api/endpoints/{apps_permissions_resources_spec.rb → auth_teams_spec.rb} +2 -1
  292. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +40 -0
  293. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  294. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  295. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  296. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  297. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +9 -7
  298. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +144 -40
  299. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  300. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +18 -6
  301. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +8 -3
  302. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +112 -0
  303. data/spec/slack/web/api/endpoints/dnd_spec.rb +4 -3
  304. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  305. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  306. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  307. data/spec/slack/web/api/endpoints/files_spec.rb +18 -4
  308. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  309. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -22
  310. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +16 -0
  311. data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -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/{apps_permissions_scopes_spec.rb → team_billing_spec.rb} +2 -1
  319. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
  320. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  321. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  322. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
  323. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  324. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  325. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  326. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  327. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  328. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  329. data/spec/slack/web/api/error_spec.rb +7 -7
  330. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -7
  331. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  332. data/spec/slack/web/api/mixins/conversations_spec.rb +45 -0
  333. data/spec/slack/web/api/mixins/users_spec.rb +19 -8
  334. data/spec/slack/web/api/pagination/cursor_spec.rb +47 -15
  335. data/spec/slack/web/client_spec.rb +199 -22
  336. data/spec/slack/web/faraday/request_spec.rb +80 -0
  337. data/spec/slack/web/faraday/response/raise_error_spec.rb +48 -12
  338. data/spec/spec_helper.rb +9 -2
  339. data/spec/support/queue_with_timeout.rb +5 -4
  340. data/spec/support/real_time/concurrency/mock.rb +1 -0
  341. data/spec/support/real_time/connected_client.rb +6 -6
  342. data/spec/support/real_time/event.rb +1 -0
  343. data/spec/support/real_time/loaded_client.rb +120 -0
  344. data/spec/support/token.rb +1 -0
  345. data/spec/support/vcr.rb +37 -1
  346. metadata +174 -262
  347. data/.travis.yml +0 -32
  348. data/bin/commands/apps_permissions.rb +0 -22
  349. data/bin/commands/apps_permissions_resources.rb +0 -14
  350. data/bin/commands/apps_permissions_scopes.rb +0 -12
  351. data/bin/commands/apps_permissions_users.rb +0 -25
  352. data/bin/commands/channels.rb +0 -175
  353. data/bin/commands/groups.rb +0 -174
  354. data/bin/commands/im.rb +0 -67
  355. data/bin/commands/mpim.rb +0 -65
  356. data/examples/hi_real_time/Gemfile +0 -5
  357. data/examples/hi_real_time/hi.gif +0 -0
  358. data/examples/hi_real_time/hi.rb +0 -37
  359. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  360. data/examples/hi_real_time_async_celluloid/Procfile +0 -2
  361. data/examples/hi_real_time_async_celluloid/hi.rb +0 -35
  362. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
  363. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  364. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -35
  365. data/lib/slack/real_time/concurrency/celluloid.rb +0 -118
  366. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -66
  367. data/lib/slack/web/api/endpoints/apps_permissions.rb +0 -35
  368. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +0 -30
  369. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +0 -20
  370. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +0 -49
  371. data/lib/slack/web/api/endpoints/channels.rb +0 -266
  372. data/lib/slack/web/api/endpoints/groups.rb +0 -265
  373. data/lib/slack/web/api/endpoints/im.rb +0 -113
  374. data/lib/slack/web/api/endpoints/mpim.rb +0 -108
  375. data/lib/slack/web/api/endpoints/presence.rb +0 -23
  376. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  377. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  378. data/lib/slack/web/api/mixins/groups.id.rb +0 -26
  379. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  380. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  381. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  382. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  383. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -13
  384. data/screenshots/register-bot.png +0 -0
  385. data/spec/fixtures/slack/web/503_error.yml +0 -14
  386. data/spec/fixtures/slack/web/channels_info.yml +0 -46
  387. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  388. data/spec/fixtures/slack/web/rtm_start.yml +0 -104
  389. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -106
  390. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
  391. data/spec/slack/real_time/rtm_start_spec.rb +0 -13
  392. data/spec/slack/real_time/store_spec.rb +0 -11
  393. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -15
  394. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +0 -18
  395. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -100
  396. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
  397. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
  398. data/spec/slack/web/api/endpoints/im_spec.rb +0 -38
  399. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -38
  400. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
  401. data/spec/slack/web/api/mixins/channels_spec.rb +0 -33
  402. data/spec/slack/web/api/mixins/groups_spec.rb +0 -33
data/.travis.yml DELETED
@@ -1,32 +0,0 @@
1
- language: ruby
2
-
3
- cache: bundler
4
-
5
- rvm:
6
- - 2.2
7
- - 2.3
8
- - 2.5
9
- - ruby-head
10
- - jruby-head
11
-
12
- matrix:
13
- include:
14
- - rvm: 2.4.1
15
- script:
16
- - bundle exec danger
17
- - rvm: 2.4.1
18
- env: CONCURRENCY=celluloid-io
19
- - rvm: 2.4.1
20
- env: CONCURRENCY=faye-websocket
21
- - rvm: 2.5
22
- env: CONCURRENCY=async-websocket
23
- allow_failures:
24
- - rvm: ruby-head
25
- - rvm: jruby-head
26
-
27
- git:
28
- submodules: false
29
-
30
- before_install:
31
- - gem update bundler
32
- - gem update --system
@@ -1,22 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- desc 'AppsPermissions methods.'
4
- command 'apps_permissions' do |g|
5
- g.desc 'Returns list of permissions this app has on a team.'
6
- g.long_desc %( Returns list of permissions this app has on a team. )
7
- g.command 'info' do |c|
8
- c.action do |_global_options, options, _args|
9
- puts JSON.dump($client.apps_permissions_info(options))
10
- end
11
- end
12
-
13
- g.desc 'Allows an app to request additional scopes'
14
- g.long_desc %( Allows an app to request additional scopes )
15
- g.command 'request' do |c|
16
- c.flag 'scopes', desc: 'A comma separated list of scopes to request for.'
17
- c.flag 'trigger_id', desc: 'Token used to trigger the permissions API.'
18
- c.action do |_global_options, options, _args|
19
- puts JSON.dump($client.apps_permissions_request(options))
20
- end
21
- end
22
- end
@@ -1,14 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- desc 'AppsPermissionsResources methods.'
4
- command 'apps_permissions_resources' do |g|
5
- g.desc 'Returns list of resource grants this app has on a team.'
6
- g.long_desc %( Returns list of resource grants this app has on a team. )
7
- g.command 'list' do |c|
8
- c.flag 'cursor', desc: "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."
9
- c.flag 'limit', desc: 'The maximum number of items to return.'
10
- c.action do |_global_options, options, _args|
11
- puts JSON.dump($client.apps_permissions_resources_list(options))
12
- end
13
- end
14
- end
@@ -1,12 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- desc 'AppsPermissionsScopes methods.'
4
- command 'apps_permissions_scopes' do |g|
5
- g.desc 'Returns list of scopes this app has on a team.'
6
- g.long_desc %( Returns list of scopes this app has on a team. )
7
- g.command 'list' do |c|
8
- c.action do |_global_options, options, _args|
9
- puts JSON.dump($client.apps_permissions_scopes_list(options))
10
- end
11
- end
12
- end
@@ -1,25 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- desc 'AppsPermissionsUsers methods.'
4
- command 'apps_permissions_users' do |g|
5
- g.desc 'Returns list of user grants and corresponding scopes this app has on a team.'
6
- g.long_desc %( Returns list of user grants and corresponding scopes this app has on a team. )
7
- g.command 'list' do |c|
8
- c.flag 'cursor', desc: "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."
9
- c.flag 'limit', desc: 'The maximum number of items to return.'
10
- c.action do |_global_options, options, _args|
11
- puts JSON.dump($client.apps_permissions_users_list(options))
12
- end
13
- end
14
-
15
- g.desc 'Enables an app to trigger a permissions modal to grant an app access to a user access scope.'
16
- g.long_desc %( Enables an app to trigger a permissions modal to grant an app access to a user access scope. )
17
- g.command 'request' do |c|
18
- c.flag 'scopes', desc: 'A comma separated list of user scopes to request for.'
19
- c.flag 'trigger_id', desc: 'Token used to trigger the request.'
20
- c.flag 'user', desc: 'The user this scope is being requested for.'
21
- c.action do |_global_options, options, _args|
22
- puts JSON.dump($client.apps_permissions_users_request(options))
23
- end
24
- end
25
- end
@@ -1,175 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- desc "Get info on your team's Slack channels, create or archive channels, invite users, set the topic and purpose, and mark a channel as read."
4
- command 'channels' do |g|
5
- g.desc 'Archives a channel.'
6
- g.long_desc %( Archives a channel. )
7
- g.command 'archive' do |c|
8
- c.flag 'channel', desc: 'Channel to archive.'
9
- c.action do |_global_options, options, _args|
10
- puts JSON.dump($client.channels_archive(options))
11
- end
12
- end
13
-
14
- g.desc 'Creates a channel.'
15
- g.long_desc %( Creates a channel. )
16
- g.command 'create' do |c|
17
- c.flag 'name', desc: 'Name of channel to create.'
18
- c.flag 'validate', desc: 'Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.'
19
- c.action do |_global_options, options, _args|
20
- puts JSON.dump($client.channels_create(options))
21
- end
22
- end
23
-
24
- g.desc 'Delete a channel (undocumented)'
25
- g.long_desc %( Delete a channel )
26
- g.command 'delete' do |c|
27
- c.flag 'channel', desc: 'Channel to delete.'
28
- c.action do |_global_options, options, _args|
29
- puts JSON.dump($client.channels_delete(options))
30
- end
31
- end
32
-
33
- g.desc 'Fetches history of messages and events from a channel.'
34
- g.long_desc %( Fetches history of messages and events from a channel. )
35
- g.command 'history' do |c|
36
- c.flag 'channel', desc: 'Channel to fetch history for.'
37
- c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results.'
38
- c.flag 'latest', desc: 'End of time range of messages to include in results.'
39
- c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
40
- c.flag 'unreads', desc: 'Include unread_count_display in the output?.'
41
- c.action do |_global_options, options, _args|
42
- puts JSON.dump($client.channels_history(options))
43
- end
44
- end
45
-
46
- g.desc 'This method returns the ID of a team channel.'
47
- g.long_desc %( This method returns the ID of a team channel. )
48
- g.command 'id' do |c|
49
- c.flag 'channel', desc: 'Channel to get ID for, prefixed with #.'
50
- c.action do |_global_options, options, _args|
51
- puts JSON.dump($client.channels_id(options))
52
- end
53
- end
54
-
55
- g.desc 'Gets information about a channel.'
56
- g.long_desc %( Gets information about a channel. )
57
- g.command 'info' do |c|
58
- c.flag 'channel', desc: 'Channel to get info on.'
59
- c.flag 'include_locale', desc: 'Set this to true to receive the locale for this channel. Defaults to false.'
60
- c.action do |_global_options, options, _args|
61
- puts JSON.dump($client.channels_info(options))
62
- end
63
- end
64
-
65
- g.desc 'Invites a user to a channel.'
66
- g.long_desc %( Invites a user to a channel. )
67
- g.command 'invite' do |c|
68
- c.flag 'channel', desc: 'Channel to invite user to.'
69
- c.flag 'user', desc: 'User to invite to channel.'
70
- c.action do |_global_options, options, _args|
71
- puts JSON.dump($client.channels_invite(options))
72
- end
73
- end
74
-
75
- g.desc 'Joins a channel, creating it if needed.'
76
- g.long_desc %( Joins a channel, creating it if needed. )
77
- g.command 'join' do |c|
78
- c.flag 'name', desc: 'Name of channel to join.'
79
- c.flag 'validate', desc: 'Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.'
80
- c.action do |_global_options, options, _args|
81
- puts JSON.dump($client.channels_join(options))
82
- end
83
- end
84
-
85
- g.desc 'Removes a user from a channel.'
86
- g.long_desc %( Removes a user from a channel. )
87
- g.command 'kick' do |c|
88
- c.flag 'channel', desc: 'Channel to remove user from.'
89
- c.flag 'user', desc: 'User to remove from channel.'
90
- c.action do |_global_options, options, _args|
91
- puts JSON.dump($client.channels_kick(options))
92
- end
93
- end
94
-
95
- g.desc 'Leaves a channel.'
96
- g.long_desc %( Leaves a channel. )
97
- g.command 'leave' do |c|
98
- c.flag 'channel', desc: 'Channel to leave.'
99
- c.action do |_global_options, options, _args|
100
- puts JSON.dump($client.channels_leave(options))
101
- end
102
- end
103
-
104
- g.desc 'Lists all channels in a Slack team.'
105
- g.long_desc %( Lists all channels in a Slack team. )
106
- g.command 'list' do |c|
107
- c.flag 'cursor', desc: "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."
108
- c.flag 'exclude_archived', desc: 'Exclude archived channels from the list.'
109
- c.flag 'exclude_members', desc: 'Exclude the members collection from each channel.'
110
- c.flag 'limit', desc: "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."
111
- c.action do |_global_options, options, _args|
112
- puts JSON.dump($client.channels_list(options))
113
- end
114
- end
115
-
116
- g.desc 'Sets the read cursor in a channel.'
117
- g.long_desc %( Sets the read cursor in a channel. )
118
- g.command 'mark' do |c|
119
- c.flag 'channel', desc: 'Channel to set reading cursor in.'
120
- c.flag 'ts', desc: 'Timestamp of the most recently seen message.'
121
- c.action do |_global_options, options, _args|
122
- puts JSON.dump($client.channels_mark(options))
123
- end
124
- end
125
-
126
- g.desc 'Renames a channel.'
127
- g.long_desc %( Renames a channel. )
128
- g.command 'rename' do |c|
129
- c.flag 'channel', desc: 'Channel to rename.'
130
- c.flag 'name', desc: 'New name for channel.'
131
- c.flag 'validate', desc: 'Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.'
132
- c.action do |_global_options, options, _args|
133
- puts JSON.dump($client.channels_rename(options))
134
- end
135
- end
136
-
137
- g.desc 'Retrieve a thread of messages posted to a channel'
138
- g.long_desc %( Retrieve a thread of messages posted to a channel )
139
- g.command 'replies' do |c|
140
- c.flag 'channel', desc: 'Channel to fetch thread from.'
141
- c.flag 'thread_ts', desc: "Unique identifier of a thread's parent message."
142
- c.action do |_global_options, options, _args|
143
- puts JSON.dump($client.channels_replies(options))
144
- end
145
- end
146
-
147
- g.desc 'Sets the purpose for a channel.'
148
- g.long_desc %( Sets the purpose for a channel. )
149
- g.command 'setPurpose' do |c|
150
- c.flag 'channel', desc: 'Channel to set the purpose of.'
151
- c.flag 'purpose', desc: 'The new purpose.'
152
- c.action do |_global_options, options, _args|
153
- puts JSON.dump($client.channels_setPurpose(options))
154
- end
155
- end
156
-
157
- g.desc 'Sets the topic for a channel.'
158
- g.long_desc %( Sets the topic for a channel. )
159
- g.command 'setTopic' do |c|
160
- c.flag 'channel', desc: 'Channel to set the topic of.'
161
- c.flag 'topic', desc: 'The new topic.'
162
- c.action do |_global_options, options, _args|
163
- puts JSON.dump($client.channels_setTopic(options))
164
- end
165
- end
166
-
167
- g.desc 'Unarchives a channel.'
168
- g.long_desc %( Unarchives a channel. )
169
- g.command 'unarchive' do |c|
170
- c.flag 'channel', desc: 'Channel to unarchive.'
171
- c.action do |_global_options, options, _args|
172
- puts JSON.dump($client.channels_unarchive(options))
173
- end
174
- end
175
- end
@@ -1,174 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- desc "Get info on your team's private channels."
4
- command 'groups' do |g|
5
- g.desc 'Archives a private channel.'
6
- g.long_desc %( Archives a private channel. )
7
- g.command 'archive' do |c|
8
- c.flag 'channel', desc: 'Private channel to archive.'
9
- c.action do |_global_options, options, _args|
10
- puts JSON.dump($client.groups_archive(options))
11
- end
12
- end
13
-
14
- g.desc 'Creates a private channel.'
15
- g.long_desc %( Creates a private channel. )
16
- g.command 'create' do |c|
17
- c.flag 'name', desc: 'Name of private channel to create.'
18
- c.flag 'validate', desc: 'Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.'
19
- c.action do |_global_options, options, _args|
20
- puts JSON.dump($client.groups_create(options))
21
- end
22
- end
23
-
24
- g.desc 'Clones and archives a private channel.'
25
- g.long_desc %( Clones and archives a private channel. )
26
- g.command 'createChild' do |c|
27
- c.flag 'channel', desc: 'Private channel to clone and archive.'
28
- c.action do |_global_options, options, _args|
29
- puts JSON.dump($client.groups_createChild(options))
30
- end
31
- end
32
-
33
- g.desc 'Fetches history of messages and events from a private channel.'
34
- g.long_desc %( Fetches history of messages and events from a private channel. )
35
- g.command 'history' do |c|
36
- c.flag 'channel', desc: 'Private channel to fetch history for.'
37
- c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results.'
38
- c.flag 'latest', desc: 'End of time range of messages to include in results.'
39
- c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
40
- c.flag 'unreads', desc: 'Include unread_count_display in the output?.'
41
- c.action do |_global_options, options, _args|
42
- puts JSON.dump($client.groups_history(options))
43
- end
44
- end
45
-
46
- g.desc 'This method returns the ID of a group.'
47
- g.long_desc %( This method returns the ID of a group. )
48
- g.command 'id' do |c|
49
- c.flag 'channel', desc: 'Group channel to get ID for, prefixed with #.'
50
- c.action do |_global_options, options, _args|
51
- puts JSON.dump($client.groups_id(options))
52
- end
53
- end
54
-
55
- g.desc 'Gets information about a private channel.'
56
- g.long_desc %( Gets information about a private channel. )
57
- g.command 'info' do |c|
58
- c.flag 'channel', desc: 'Private channel to get info on.'
59
- c.flag 'include_locale', desc: 'Set this to true to receive the locale for this group. Defaults to false.'
60
- c.action do |_global_options, options, _args|
61
- puts JSON.dump($client.groups_info(options))
62
- end
63
- end
64
-
65
- g.desc 'Invites a user to a private channel.'
66
- g.long_desc %( Invites a user to a private channel. )
67
- g.command 'invite' do |c|
68
- c.flag 'channel', desc: 'Private channel to invite user to.'
69
- c.flag 'user', desc: 'User to invite.'
70
- c.action do |_global_options, options, _args|
71
- puts JSON.dump($client.groups_invite(options))
72
- end
73
- end
74
-
75
- g.desc 'Removes a user from a private channel.'
76
- g.long_desc %( Removes a user from a private channel. )
77
- g.command 'kick' do |c|
78
- c.flag 'channel', desc: 'Private channel to remove user from.'
79
- c.flag 'user', desc: 'User to remove from private channel.'
80
- c.action do |_global_options, options, _args|
81
- puts JSON.dump($client.groups_kick(options))
82
- end
83
- end
84
-
85
- g.desc 'Leaves a private channel.'
86
- g.long_desc %( Leaves a private channel. )
87
- g.command 'leave' do |c|
88
- c.flag 'channel', desc: 'Private channel to leave.'
89
- c.action do |_global_options, options, _args|
90
- puts JSON.dump($client.groups_leave(options))
91
- end
92
- end
93
-
94
- g.desc 'Lists private channels that the calling user has access to.'
95
- g.long_desc %( Lists private channels that the calling user has access to. )
96
- g.command 'list' do |c|
97
- c.flag 'cursor', desc: "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."
98
- c.flag 'exclude_archived', desc: "Don't return archived private channels."
99
- c.flag 'exclude_members', desc: 'Exclude the members from each group.'
100
- c.flag 'limit', desc: "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."
101
- c.action do |_global_options, options, _args|
102
- puts JSON.dump($client.groups_list(options))
103
- end
104
- end
105
-
106
- g.desc 'Sets the read cursor in a private channel.'
107
- g.long_desc %( Sets the read cursor in a private channel. )
108
- g.command 'mark' do |c|
109
- c.flag 'channel', desc: 'Private channel to set reading cursor in.'
110
- c.flag 'ts', desc: 'Timestamp of the most recently seen message.'
111
- c.action do |_global_options, options, _args|
112
- puts JSON.dump($client.groups_mark(options))
113
- end
114
- end
115
-
116
- g.desc 'Opens a private channel.'
117
- g.long_desc %( Opens a private channel. )
118
- g.command 'open' do |c|
119
- c.flag 'channel', desc: 'Private channel to open.'
120
- c.action do |_global_options, options, _args|
121
- puts JSON.dump($client.groups_open(options))
122
- end
123
- end
124
-
125
- g.desc 'Renames a private channel.'
126
- g.long_desc %( Renames a private channel. )
127
- g.command 'rename' do |c|
128
- c.flag 'channel', desc: 'Private channel to rename.'
129
- c.flag 'name', desc: 'New name for private channel.'
130
- c.flag 'validate', desc: 'Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.'
131
- c.action do |_global_options, options, _args|
132
- puts JSON.dump($client.groups_rename(options))
133
- end
134
- end
135
-
136
- g.desc 'Retrieve a thread of messages posted to a private channel'
137
- g.long_desc %( Retrieve a thread of messages posted to a private channel )
138
- g.command 'replies' do |c|
139
- c.flag 'channel', desc: 'Private channel to fetch thread from.'
140
- c.flag 'thread_ts', desc: "Unique identifier of a thread's parent message."
141
- c.action do |_global_options, options, _args|
142
- puts JSON.dump($client.groups_replies(options))
143
- end
144
- end
145
-
146
- g.desc 'Sets the purpose for a private channel.'
147
- g.long_desc %( Sets the purpose for a private channel. )
148
- g.command 'setPurpose' do |c|
149
- c.flag 'channel', desc: 'Private channel to set the purpose of.'
150
- c.flag 'purpose', desc: 'The new purpose.'
151
- c.action do |_global_options, options, _args|
152
- puts JSON.dump($client.groups_setPurpose(options))
153
- end
154
- end
155
-
156
- g.desc 'Sets the topic for a private channel.'
157
- g.long_desc %( Sets the topic for a private channel. )
158
- g.command 'setTopic' do |c|
159
- c.flag 'channel', desc: 'Private channel to set the topic of.'
160
- c.flag 'topic', desc: 'The new topic.'
161
- c.action do |_global_options, options, _args|
162
- puts JSON.dump($client.groups_setTopic(options))
163
- end
164
- end
165
-
166
- g.desc 'Unarchives a private channel.'
167
- g.long_desc %( Unarchives a private channel. )
168
- g.command 'unarchive' do |c|
169
- c.flag 'channel', desc: 'Private channel to unarchive.'
170
- c.action do |_global_options, options, _args|
171
- puts JSON.dump($client.groups_unarchive(options))
172
- end
173
- end
174
- end
data/bin/commands/im.rb DELETED
@@ -1,67 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- desc 'Get info on your direct messages.'
4
- command 'im' do |g|
5
- g.desc 'Close a direct message channel.'
6
- g.long_desc %( Close a direct message channel. )
7
- g.command 'close' do |c|
8
- c.flag 'channel', desc: 'Direct message channel to close.'
9
- c.action do |_global_options, options, _args|
10
- puts JSON.dump($client.im_close(options))
11
- end
12
- end
13
-
14
- g.desc 'Fetches history of messages and events from direct message channel.'
15
- g.long_desc %( Fetches history of messages and events from direct message channel. )
16
- g.command 'history' do |c|
17
- c.flag 'channel', desc: 'Direct message channel to fetch history for.'
18
- c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results.'
19
- c.flag 'latest', desc: 'End of time range of messages to include in results.'
20
- c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
21
- c.flag 'unreads', desc: 'Include unread_count_display in the output?.'
22
- c.action do |_global_options, options, _args|
23
- puts JSON.dump($client.im_history(options))
24
- end
25
- end
26
-
27
- g.desc 'Lists direct message channels for the calling user.'
28
- g.long_desc %( Lists direct message channels for the calling user. )
29
- g.command 'list' do |c|
30
- c.flag 'cursor', desc: "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."
31
- c.flag 'limit', desc: "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."
32
- c.action do |_global_options, options, _args|
33
- puts JSON.dump($client.im_list(options))
34
- end
35
- end
36
-
37
- g.desc 'Sets the read cursor in a direct message channel.'
38
- g.long_desc %( Sets the read cursor in a direct message channel. )
39
- g.command 'mark' do |c|
40
- c.flag 'channel', desc: 'Direct message channel to set reading cursor in.'
41
- c.flag 'ts', desc: 'Timestamp of the most recently seen message.'
42
- c.action do |_global_options, options, _args|
43
- puts JSON.dump($client.im_mark(options))
44
- end
45
- end
46
-
47
- g.desc 'Opens a direct message channel.'
48
- g.long_desc %( Opens a direct message channel. )
49
- g.command 'open' do |c|
50
- c.flag 'user', desc: 'User to open a direct message channel with.'
51
- c.flag 'include_locale', desc: 'Set this to true to receive the locale for this im. Defaults to false.'
52
- c.flag 'return_im', desc: 'Boolean, indicates you want the full IM channel definition in the response.'
53
- c.action do |_global_options, options, _args|
54
- puts JSON.dump($client.im_open(options))
55
- end
56
- end
57
-
58
- g.desc 'Retrieve a thread of messages posted to a direct message conversation'
59
- g.long_desc %( Retrieve a thread of messages posted to a direct message conversation )
60
- g.command 'replies' do |c|
61
- c.flag 'channel', desc: 'Direct message channel to fetch thread from.'
62
- c.flag 'thread_ts', desc: "Unique identifier of a thread's parent message."
63
- c.action do |_global_options, options, _args|
64
- puts JSON.dump($client.im_replies(options))
65
- end
66
- end
67
- end
data/bin/commands/mpim.rb DELETED
@@ -1,65 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- desc 'Get info on your multiparty direct messages.'
4
- command 'mpim' do |g|
5
- g.desc 'Closes a multiparty direct message channel.'
6
- g.long_desc %( Closes a multiparty direct message channel. )
7
- g.command 'close' do |c|
8
- c.flag 'channel', desc: 'MPIM to close.'
9
- c.action do |_global_options, options, _args|
10
- puts JSON.dump($client.mpim_close(options))
11
- end
12
- end
13
-
14
- g.desc 'Fetches history of messages and events from a multiparty direct message.'
15
- g.long_desc %( Fetches history of messages and events from a multiparty direct message. )
16
- g.command 'history' do |c|
17
- c.flag 'channel', desc: 'Multiparty direct message to fetch history for.'
18
- c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results.'
19
- c.flag 'latest', desc: 'End of time range of messages to include in results.'
20
- c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
21
- c.flag 'unreads', desc: 'Include unread_count_display in the output?.'
22
- c.action do |_global_options, options, _args|
23
- puts JSON.dump($client.mpim_history(options))
24
- end
25
- end
26
-
27
- g.desc 'Lists multiparty direct message channels for the calling user.'
28
- g.long_desc %( Lists multiparty direct message channels for the calling user. )
29
- g.command 'list' do |c|
30
- c.flag 'cursor', desc: "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."
31
- c.flag 'limit', desc: "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."
32
- c.action do |_global_options, options, _args|
33
- puts JSON.dump($client.mpim_list(options))
34
- end
35
- end
36
-
37
- g.desc 'Sets the read cursor in a multiparty direct message channel.'
38
- g.long_desc %( Sets the read cursor in a multiparty direct message channel. )
39
- g.command 'mark' do |c|
40
- c.flag 'channel', desc: 'multiparty direct message channel to set reading cursor in.'
41
- c.flag 'ts', desc: 'Timestamp of the most recently seen message.'
42
- c.action do |_global_options, options, _args|
43
- puts JSON.dump($client.mpim_mark(options))
44
- end
45
- end
46
-
47
- g.desc 'This method opens a multiparty direct message.'
48
- g.long_desc %( This method opens a multiparty direct message. )
49
- g.command 'open' do |c|
50
- c.flag 'users', desc: 'Comma separated lists of users. The ordering of the users is preserved whenever a MPIM group is returned.'
51
- c.action do |_global_options, options, _args|
52
- puts JSON.dump($client.mpim_open(options))
53
- end
54
- end
55
-
56
- g.desc 'Retrieve a thread of messages posted to a direct message conversation from a multiparty direct message.'
57
- g.long_desc %( Retrieve a thread of messages posted to a direct message conversation from a multiparty direct message. )
58
- g.command 'replies' do |c|
59
- c.flag 'channel', desc: 'Multiparty direct message channel to fetch thread from.'
60
- c.flag 'thread_ts', desc: "Unique identifier of a thread's parent message."
61
- c.action do |_global_options, options, _args|
62
- puts JSON.dump($client.mpim_replies(options))
63
- end
64
- end
65
- end
@@ -1,5 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'slack-ruby-client', path: '../..'
4
-
5
- gem 'celluloid-io', require: ['celluloid/current', 'celluloid/io']
Binary file
@@ -1,37 +0,0 @@
1
- require 'slack-ruby-client'
2
-
3
- Slack.configure do |config|
4
- config.token = ENV['SLACK_API_TOKEN']
5
- config.logger = Logger.new(STDOUT)
6
- config.logger.level = Logger::INFO
7
- raise 'Missing ENV[SLACK_API_TOKEN]!' unless config.token
8
- end
9
-
10
- client = Slack::RealTime::Client.new
11
-
12
- client.on :hello do
13
- puts "Successfully connected, welcome '#{client.self.name}' to the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
14
- end
15
-
16
- client.on :message do |data|
17
- puts data
18
-
19
- client.typing channel: data.channel
20
-
21
- case data.text
22
- when 'bot hi' then
23
- client.message channel: data.channel, text: "Hi <@#{data.user}>!"
24
- when /^bot/ then
25
- client.message channel: data.channel, text: "Sorry <@#{data.user}>, what?"
26
- end
27
- end
28
-
29
- client.on :close do |_data|
30
- puts 'Connection closing, exiting.'
31
- end
32
-
33
- client.on :closed do |_data|
34
- puts 'Connection has been disconnected.'
35
- end
36
-
37
- client.start!
@@ -1,6 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'slack-ruby-client', path: '../..'
4
-
5
- gem 'celluloid-io', require: ['celluloid/current', 'celluloid/io']
6
- gem 'foreman'
@@ -1,2 +0,0 @@
1
- console: bundle exec ruby hi.rb
2
-