slack-ruby-client 0.7.9 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (358) hide show
  1. checksums.yaml +5 -5
  2. data/.github/FUNDING.yml +1 -0
  3. data/.gitignore +2 -0
  4. data/.rubocop.yml +32 -1
  5. data/.rubocop_todo.yml +98 -49
  6. data/.travis.yml +10 -14
  7. data/CHANGELOG.md +172 -24
  8. data/CONTRIBUTING.md +17 -6
  9. data/Dangerfile +2 -0
  10. data/Gemfile +10 -4
  11. data/LICENSE.md +1 -1
  12. data/README.md +276 -54
  13. data/RELEASING.md +19 -11
  14. data/Rakefile +2 -1
  15. data/UPGRADING.md +84 -2
  16. data/bin/commands.rb +43 -1
  17. data/bin/commands/admin_analytics.rb +15 -0
  18. data/bin/commands/admin_apps.rb +40 -0
  19. data/bin/commands/admin_apps_approved.rb +17 -0
  20. data/bin/commands/admin_apps_requests.rb +16 -0
  21. data/bin/commands/admin_apps_restricted.rb +17 -0
  22. data/bin/commands/admin_barriers.rb +47 -0
  23. data/bin/commands/admin_conversations.rb +169 -0
  24. data/bin/commands/admin_conversations_ekm.rb +17 -0
  25. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  26. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  27. data/bin/commands/admin_emoji.rb +54 -0
  28. data/bin/commands/admin_inviteRequests.rb +36 -0
  29. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  30. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  31. data/bin/commands/admin_teams.rb +27 -0
  32. data/bin/commands/admin_teams_admins.rb +16 -0
  33. data/bin/commands/admin_teams_owners.rb +16 -0
  34. data/bin/commands/admin_teams_settings.rb +64 -0
  35. data/bin/commands/admin_usergroups.rb +48 -0
  36. data/bin/commands/admin_users.rb +97 -0
  37. data/bin/commands/admin_users_session.rb +38 -0
  38. data/bin/commands/api.rb +3 -3
  39. data/bin/commands/apps.rb +15 -0
  40. data/bin/commands/apps_connections.rb +13 -0
  41. data/bin/commands/apps_event_authorizations.rb +16 -0
  42. data/bin/commands/apps_permissions.rb +23 -0
  43. data/bin/commands/apps_permissions_resources.rb +15 -0
  44. data/bin/commands/apps_permissions_scopes.rb +13 -0
  45. data/bin/commands/apps_permissions_users.rb +26 -0
  46. data/bin/commands/auth.rb +5 -4
  47. data/bin/commands/auth_teams.rb +16 -0
  48. data/bin/commands/bots.rb +4 -2
  49. data/bin/commands/calls.rb +52 -0
  50. data/bin/commands/calls_participants.rb +25 -0
  51. data/bin/commands/channels.rb +64 -43
  52. data/bin/commands/chat.rb +114 -24
  53. data/bin/commands/chat_scheduledMessages.rb +19 -0
  54. data/bin/commands/conversations.rb +196 -0
  55. data/bin/commands/dialog.rb +15 -0
  56. data/bin/commands/dnd.rb +9 -8
  57. data/bin/commands/emoji.rb +3 -2
  58. data/bin/commands/files.rb +45 -30
  59. data/bin/commands/files_comments.rb +3 -24
  60. data/bin/commands/files_remote.rb +78 -0
  61. data/bin/commands/groups.rb +53 -53
  62. data/bin/commands/im.rb +17 -13
  63. data/bin/commands/migration.rb +16 -0
  64. data/bin/commands/mpim.rb +16 -13
  65. data/bin/commands/oauth.rb +17 -2
  66. data/bin/commands/oauth_v2.rb +17 -0
  67. data/bin/commands/pins.rb +7 -10
  68. data/bin/commands/reactions.rb +17 -15
  69. data/bin/commands/reminders.rb +11 -10
  70. data/bin/commands/rtm.rb +19 -4
  71. data/bin/commands/search.rb +15 -11
  72. data/bin/commands/stars.rb +11 -8
  73. data/bin/commands/team.rb +15 -10
  74. data/bin/commands/team_profile.rb +3 -2
  75. data/bin/commands/usergroups.rb +22 -16
  76. data/bin/commands/usergroups_users.rb +7 -4
  77. data/bin/commands/users.rb +65 -37
  78. data/bin/commands/users_admin.rb +29 -0
  79. data/bin/commands/users_prefs.rb +13 -0
  80. data/bin/commands/users_profile.rb +8 -7
  81. data/bin/commands/views.rb +48 -0
  82. data/bin/commands/workflows.rb +38 -0
  83. data/bin/slack +3 -4
  84. data/examples/hi_real_time_and_web/Gemfile +1 -0
  85. data/examples/hi_real_time_and_web/hi.rb +8 -4
  86. data/examples/{hi_real_time_async_eventmachine → hi_real_time_async_async}/Gemfile +2 -1
  87. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
  88. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/hi.rb +13 -8
  89. data/examples/hi_web/Gemfile +1 -0
  90. data/examples/hi_web/hi.rb +2 -1
  91. data/examples/new_ticket/Gemfile +1 -0
  92. data/examples/new_ticket/new_ticket.rb +2 -1
  93. data/lib/slack-ruby-client.rb +40 -26
  94. data/lib/slack.rb +1 -0
  95. data/lib/slack/config.rb +1 -0
  96. data/lib/slack/events/config.rb +32 -0
  97. data/lib/slack/events/request.rb +70 -0
  98. data/lib/slack/logger.rb +6 -5
  99. data/lib/slack/messages/formatting.rb +4 -4
  100. data/lib/slack/messages/message.rb +2 -6
  101. data/lib/slack/real_time/api/message.rb +3 -1
  102. data/lib/slack/real_time/api/message_id.rb +1 -0
  103. data/lib/slack/real_time/api/ping.rb +5 -2
  104. data/lib/slack/real_time/api/templates/event_handler.erb +1 -1
  105. data/lib/slack/real_time/api/typing.rb +3 -1
  106. data/lib/slack/real_time/client.rb +113 -32
  107. data/lib/slack/real_time/concurrency.rb +2 -2
  108. data/lib/slack/real_time/concurrency/async.rb +140 -0
  109. data/lib/slack/real_time/config.rb +20 -12
  110. data/lib/slack/real_time/models.rb +8 -7
  111. data/lib/slack/real_time/models/base.rb +2 -6
  112. data/lib/slack/real_time/models/bot.rb +1 -0
  113. data/lib/slack/real_time/models/channel.rb +1 -0
  114. data/lib/slack/real_time/models/group.rb +1 -0
  115. data/lib/slack/real_time/models/im.rb +1 -0
  116. data/lib/slack/real_time/models/team.rb +1 -0
  117. data/lib/slack/real_time/models/user.rb +1 -0
  118. data/lib/slack/real_time/socket.rb +46 -17
  119. data/lib/slack/real_time/stores.rb +4 -3
  120. data/lib/slack/real_time/stores/base.rb +5 -3
  121. data/lib/slack/real_time/stores/starter.rb +113 -72
  122. data/lib/slack/real_time/stores/store.rb +131 -88
  123. data/lib/slack/version.rb +2 -1
  124. data/lib/slack/web/api/endpoints.rb +110 -26
  125. data/lib/slack/web/api/endpoints/admin_analytics.rb +26 -0
  126. data/lib/slack/web/api/endpoints/admin_apps.rb +62 -0
  127. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  128. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  129. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  130. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  131. data/lib/slack/web/api/endpoints/admin_conversations.rb +260 -0
  132. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  133. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  134. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  135. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  136. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  137. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  138. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  139. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  140. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  141. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  142. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  143. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  144. data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
  145. data/lib/slack/web/api/endpoints/admin_users_session.rb +66 -0
  146. data/lib/slack/web/api/endpoints/api.rb +3 -4
  147. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  148. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  149. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  150. data/lib/slack/web/api/endpoints/apps_permissions.rb +36 -0
  151. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +31 -0
  152. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +21 -0
  153. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +50 -0
  154. data/lib/slack/web/api/endpoints/auth.rb +5 -4
  155. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  156. data/lib/slack/web/api/endpoints/bots.rb +5 -2
  157. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  158. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  159. data/lib/slack/web/api/endpoints/channels.rb +105 -49
  160. data/lib/slack/web/api/endpoints/chat.rb +221 -40
  161. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  162. data/lib/slack/web/api/endpoints/conversations.rb +332 -0
  163. data/lib/slack/web/api/endpoints/dialog.rb +33 -0
  164. data/lib/slack/web/api/endpoints/dnd.rb +11 -9
  165. data/lib/slack/web/api/endpoints/emoji.rb +3 -2
  166. data/lib/slack/web/api/endpoints/files.rb +75 -38
  167. data/lib/slack/web/api/endpoints/files_comments.rb +3 -38
  168. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  169. data/lib/slack/web/api/endpoints/groups.rb +76 -53
  170. data/lib/slack/web/api/endpoints/im.rb +38 -21
  171. data/lib/slack/web/api/endpoints/migration.rb +28 -0
  172. data/lib/slack/web/api/endpoints/mpim.rb +37 -22
  173. data/lib/slack/web/api/endpoints/oauth.rb +25 -4
  174. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  175. data/lib/slack/web/api/endpoints/pins.rb +10 -19
  176. data/lib/slack/web/api/endpoints/presence.rb +1 -1
  177. data/lib/slack/web/api/endpoints/reactions.rb +37 -28
  178. data/lib/slack/web/api/endpoints/reminders.rb +11 -10
  179. data/lib/slack/web/api/endpoints/rtm.rb +28 -7
  180. data/lib/slack/web/api/endpoints/search.rb +21 -14
  181. data/lib/slack/web/api/endpoints/stars.rb +24 -15
  182. data/lib/slack/web/api/endpoints/team.rb +21 -13
  183. data/lib/slack/web/api/endpoints/team_profile.rb +3 -2
  184. data/lib/slack/web/api/endpoints/usergroups.rb +33 -22
  185. data/lib/slack/web/api/endpoints/usergroups_users.rb +9 -4
  186. data/lib/slack/web/api/endpoints/users.rb +78 -29
  187. data/lib/slack/web/api/endpoints/users_admin.rb +49 -0
  188. data/lib/slack/web/api/endpoints/users_prefs.rb +21 -0
  189. data/lib/slack/web/api/endpoints/users_profile.rb +11 -10
  190. data/lib/slack/web/api/endpoints/views.rb +97 -0
  191. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  192. data/lib/slack/web/api/error.rb +2 -8
  193. data/lib/slack/web/api/errors.rb +850 -0
  194. data/lib/slack/web/api/errors/internal_error.rb +14 -0
  195. data/lib/slack/web/api/errors/slack_error.rb +29 -0
  196. data/lib/slack/web/api/errors/too_many_requests_error.rb +24 -0
  197. data/lib/slack/web/api/mixins.rb +6 -4
  198. data/lib/slack/web/api/mixins/channels.id.rb +6 -7
  199. data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
  200. data/lib/slack/web/api/mixins/groups.id.rb +6 -7
  201. data/lib/slack/web/api/mixins/ids.id.rb +24 -0
  202. data/lib/slack/web/api/mixins/users.id.rb +6 -7
  203. data/lib/slack/web/api/mixins/users.search.rb +39 -36
  204. data/lib/slack/web/api/patches/chat.1.patch +72 -0
  205. data/lib/slack/web/api/patches/dialog.1.open-json-support.patch +17 -0
  206. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  207. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  208. data/lib/slack/web/api/templates/command.erb +5 -3
  209. data/lib/slack/web/api/templates/commands.erb +2 -1
  210. data/lib/slack/web/api/templates/endpoints.erb +5 -3
  211. data/lib/slack/web/api/templates/errors.erb +20 -0
  212. data/lib/slack/web/api/templates/method.erb +26 -4
  213. data/lib/slack/web/api/templates/method_spec.erb +3 -2
  214. data/lib/slack/web/client.rb +2 -1
  215. data/lib/slack/web/config.rb +21 -10
  216. data/lib/slack/web/faraday/connection.rb +25 -16
  217. data/lib/slack/web/faraday/request.rb +2 -0
  218. data/lib/slack/web/faraday/response/raise_error.rb +23 -1
  219. data/lib/slack/web/faraday/response/wrap_error.rb +18 -0
  220. data/lib/slack/web/pagination/cursor.rb +52 -0
  221. data/lib/slack_ruby_client.rb +1 -0
  222. data/lib/tasks/git.rake +2 -1
  223. data/lib/tasks/real_time.rake +16 -6
  224. data/lib/tasks/update.rake +1 -0
  225. data/lib/tasks/web.rake +38 -10
  226. data/screenshots/create-app.png +0 -0
  227. data/slack-ruby-client.gemspec +9 -6
  228. data/spec/fixtures/slack/web/429_error.yml +2 -0
  229. data/spec/fixtures/slack/web/503_error.yml +14 -0
  230. data/spec/fixtures/slack/web/channels_info.yml +108 -15
  231. data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
  232. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
  233. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
  234. data/spec/fixtures/slack/web/paginated_users_list.yml +181 -0
  235. data/spec/fixtures/slack/web/rtm_connect.yml +70 -0
  236. data/spec/fixtures/slack/web/rtm_start.yml +1 -1
  237. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  238. data/spec/integration/integration_spec.rb +116 -48
  239. data/spec/slack/config_spec.rb +2 -0
  240. data/spec/slack/events/config_spec.rb +33 -0
  241. data/spec/slack/events/request_spec.rb +183 -0
  242. data/spec/slack/messages/formatting_spec.rb +25 -14
  243. data/spec/slack/real_time/api/message_spec.rb +6 -1
  244. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  245. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  246. data/spec/slack/real_time/client_spec.rb +462 -134
  247. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +3 -1
  248. data/spec/slack/real_time/event_handlers/bot_spec.rb +6 -3
  249. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  250. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +3 -2
  251. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  252. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  253. data/spec/slack/real_time/event_handlers/team_spec.rb +8 -4
  254. data/spec/slack/real_time/event_handlers/user_spec.rb +5 -2
  255. data/spec/slack/real_time/rtm_connect_spec.rb +14 -0
  256. data/spec/slack/real_time/rtm_start_spec.rb +1 -0
  257. data/spec/slack/real_time/store_spec.rb +2 -1
  258. data/spec/slack/slack_spec.rb +39 -7
  259. data/spec/slack/version_spec.rb +2 -1
  260. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  261. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  262. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  263. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  264. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +13 -0
  265. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  266. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  267. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  268. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  269. data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -0
  270. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  271. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  272. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  273. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  274. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  275. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  276. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  277. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  278. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  279. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +21 -0
  280. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  281. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  282. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  283. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  284. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +8 -0
  285. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +8 -0
  286. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +16 -0
  287. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +19 -0
  288. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  289. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  290. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  291. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  292. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  293. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  294. data/spec/slack/web/api/endpoints/conversations_spec.rb +109 -0
  295. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +13 -4
  296. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
  297. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +140 -24
  298. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +36 -0
  299. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
  300. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +21 -6
  301. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  302. data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
  303. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  304. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  305. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  306. data/spec/slack/web/api/endpoints/files_spec.rb +17 -5
  307. data/spec/slack/web/api/endpoints/im_spec.rb +5 -4
  308. data/spec/slack/web/api/endpoints/migration_spec.rb +13 -0
  309. data/spec/slack/web/api/endpoints/mpim_spec.rb +5 -4
  310. data/spec/slack/web/api/endpoints/oauth_spec.rb +5 -4
  311. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  312. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  313. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  314. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  315. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  316. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  317. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  318. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  319. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  320. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  321. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  322. data/spec/slack/web/api/endpoints/users_admin_spec.rb +18 -0
  323. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +8 -0
  324. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  325. data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
  326. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  327. data/spec/slack/web/api/error_spec.rb +5 -3
  328. data/spec/slack/web/api/errors/slack_error_spec.rb +38 -0
  329. data/spec/slack/web/api/mixins/channels_spec.rb +24 -12
  330. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  331. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  332. data/spec/slack/web/api/mixins/groups_spec.rb +24 -12
  333. data/spec/slack/web/api/mixins/users_spec.rb +30 -17
  334. data/spec/slack/web/api/pagination/cursor_spec.rb +100 -0
  335. data/spec/slack/web/client_spec.rb +215 -14
  336. data/spec/slack/web/faraday/response/raise_error_spec.rb +85 -0
  337. data/spec/spec_helper.rb +8 -1
  338. data/spec/support/queue_with_timeout.rb +6 -5
  339. data/spec/support/real_time/concurrency/mock.rb +2 -2
  340. data/spec/support/real_time/connected_client.rb +13 -2
  341. data/spec/support/real_time/event.rb +1 -0
  342. data/spec/support/token.rb +1 -0
  343. data/spec/support/vcr.rb +6 -1
  344. metadata +280 -55
  345. data/examples/hi_real_time/Gemfile +0 -5
  346. data/examples/hi_real_time/hi.gif +0 -0
  347. data/examples/hi_real_time/hi.rb +0 -37
  348. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  349. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  350. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -36
  351. data/lib/slack/real_time/concurrency/celluloid.rb +0 -113
  352. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
  353. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  354. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  355. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -20
  356. data/screenshots/register-bot.png +0 -0
  357. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -31
  358. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
@@ -1,33 +1,36 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Stars methods.'
4
5
  command 'stars' do |g|
5
- g.desc 'This method adds a star to an item (message, file, file comment, channel, private group, or DM) on behalf of the authenticated user.'
6
- g.long_desc %( This method adds a star to an item (message, file, file comment, channel, private group, or DM) on behalf of the authenticated user. One of file, file_comment, channel, or the combination of channel and timestamp must be specified. )
6
+ g.desc 'Adds a star to an item.'
7
+ g.long_desc %( Adds a star to an item. )
7
8
  g.command 'add' do |c|
9
+ c.flag 'channel', desc: 'Channel to add star to, or channel where the message to add star to was posted (used with timestamp).'
8
10
  c.flag 'file', desc: 'File to add star to.'
9
11
  c.flag 'file_comment', desc: 'File comment to add star to.'
10
- c.flag 'channel', desc: 'Channel to add star to, or channel where the message to add star to was posted (used with timestamp).'
11
12
  c.flag 'timestamp', desc: 'Timestamp of the message to add star to.'
12
13
  c.action do |_global_options, options, _args|
13
14
  puts JSON.dump($client.stars_add(options))
14
15
  end
15
16
  end
16
17
 
17
- g.desc 'This method lists the items starred by the authed user.'
18
- g.long_desc %( This method lists the items starred by the authed user. )
18
+ g.desc 'Lists stars for a user.'
19
+ g.long_desc %( Lists stars for a user. )
19
20
  g.command 'list' do |c|
21
+ 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."
22
+ 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."
20
23
  c.action do |_global_options, options, _args|
21
24
  puts JSON.dump($client.stars_list(options))
22
25
  end
23
26
  end
24
27
 
25
- g.desc 'This method removes a star from an item (message, file, file comment, channel, private group, or DM) on behalf of the authenticated user.'
26
- g.long_desc %( This method removes a star from an item (message, file, file comment, channel, private group, or DM) on behalf of the authenticated user. One of file, file_comment, channel, or the combination of channel and timestamp must be specified. )
28
+ g.desc 'Removes a star from an item.'
29
+ g.long_desc %( Removes a star from an item. )
27
30
  g.command 'remove' do |c|
31
+ c.flag 'channel', desc: 'Channel to remove star from, or channel where the message to remove star from was posted (used with timestamp).'
28
32
  c.flag 'file', desc: 'File to remove star from.'
29
33
  c.flag 'file_comment', desc: 'File comment to remove star from.'
30
- c.flag 'channel', desc: 'Channel to remove star from, or channel where the message to remove star from was posted (used with timestamp).'
31
34
  c.flag 'timestamp', desc: 'Timestamp of the message to remove star from.'
32
35
  c.action do |_global_options, options, _args|
33
36
  puts JSON.dump($client.stars_remove(options))
data/bin/commands/team.rb CHANGED
@@ -1,40 +1,45 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Team methods.'
4
5
  command 'team' do |g|
5
- g.desc 'This method is used to get the access logs for users on a team.'
6
- g.long_desc %( This method is used to get the access logs for users on a team. )
6
+ g.desc 'Gets the access logs for the current team.'
7
+ g.long_desc %( Gets the access logs for the current team. )
7
8
  g.command 'accessLogs' do |c|
8
9
  c.flag 'before', desc: 'End of time range of logs to include in results (inclusive).'
10
+ c.flag 'team_id', desc: 'encoded team id to get logs from, required if org token is used.'
9
11
  c.action do |_global_options, options, _args|
10
12
  puts JSON.dump($client.team_accessLogs(options))
11
13
  end
12
14
  end
13
15
 
14
- g.desc 'This method lists billable information for each user on the team. Currently this consists solely of whether the user is'
15
- g.long_desc %( This method lists billable information for each user on the team. Currently this consists solely of whether the user is subject to billing per Slack's Fair Billing policy. )
16
+ g.desc 'Gets billable users information for the current team.'
17
+ g.long_desc %( Gets billable users information for the current team. )
16
18
  g.command 'billableInfo' do |c|
19
+ c.flag 'team_id', desc: 'encoded team id to get the billable information from, required if org token is used.'
17
20
  c.flag 'user', desc: 'A user to retrieve the billable information for. Defaults to all users.'
18
21
  c.action do |_global_options, options, _args|
19
22
  puts JSON.dump($client.team_billableInfo(options))
20
23
  end
21
24
  end
22
25
 
23
- g.desc 'This method provides information about your team.'
24
- g.long_desc %( This method provides information about your team. )
26
+ g.desc 'Gets information about the current team.'
27
+ g.long_desc %( Gets information about the current team. )
25
28
  g.command 'info' do |c|
29
+ c.flag 'team', desc: 'Team to get info on, if omitted, will return information about the current team. Will only return team that the authenticated token is allowed to see through external shared channels.'
26
30
  c.action do |_global_options, options, _args|
27
31
  puts JSON.dump($client.team_info(options))
28
32
  end
29
33
  end
30
34
 
31
- g.desc 'This method lists the integration activity logs for a team, including when integrations are added, modified and removed. This method can only be called by Admins.'
32
- g.long_desc %( This method lists the integration activity logs for a team, including when integrations are added, modified and removed. This method can only be called by Admins. )
35
+ g.desc 'Gets the integration logs for the current team.'
36
+ g.long_desc %( Gets the integration logs for the current team. )
33
37
  g.command 'integrationLogs' do |c|
34
- c.flag 'service_id', desc: 'Filter logs to this service. Defaults to all logs.'
35
38
  c.flag 'app_id', desc: 'Filter logs to this Slack app. Defaults to all logs.'
36
- c.flag 'user', desc: "Filter logs generated by this user's actions. Defaults to all logs."
37
39
  c.flag 'change_type', desc: 'Filter logs with this change type. Defaults to all logs.'
40
+ c.flag 'service_id', desc: 'Filter logs to this service. Defaults to all logs.'
41
+ c.flag 'team_id', desc: 'encoded team id to get logs from, required if org token is used.'
42
+ c.flag 'user', desc: "Filter logs generated by this user's actions. Defaults to all logs."
38
43
  c.action do |_global_options, options, _args|
39
44
  puts JSON.dump($client.team_integrationLogs(options))
40
45
  end
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'TeamProfile methods.'
4
5
  command 'team_profile' do |g|
5
- g.desc 'This method is used to get the profile field definitions for this team.'
6
- g.long_desc %( This method is used to get the profile field definitions for this team. )
6
+ g.desc "Retrieve a team's profile."
7
+ g.long_desc %( Retrieve a team's profile. )
7
8
  g.command 'get' do |c|
8
9
  c.flag 'visibility', desc: 'Filter by visibility.'
9
10
  c.action do |_global_options, options, _args|
@@ -1,60 +1,66 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc "Get info on your team's User Groups."
4
5
  command 'usergroups' do |g|
5
- g.desc 'This method is used to create a User Group.'
6
- g.long_desc %( This method is used to create a User Group. )
6
+ g.desc 'Create a User Group'
7
+ g.long_desc %( Create a User Group )
7
8
  g.command 'create' do |c|
8
9
  c.flag 'name', desc: 'A name for the User Group. Must be unique among User Groups.'
9
- c.flag 'handle', desc: 'A mention handle. Must be unique among channels, users and User Groups.'
10
- c.flag 'description', desc: 'A short description of the User Group.'
11
10
  c.flag 'channels', desc: 'A comma separated string of encoded channel IDs for which the User Group uses as a default.'
11
+ c.flag 'description', desc: 'A short description of the User Group.'
12
+ c.flag 'handle', desc: 'A mention handle. Must be unique among channels, users and User Groups.'
12
13
  c.flag 'include_count', desc: 'Include the number of users in each User Group.'
14
+ c.flag 'team_id', desc: 'Encoded team id where the user group has to be created, required if org token is used.'
13
15
  c.action do |_global_options, options, _args|
14
16
  puts JSON.dump($client.usergroups_create(options))
15
17
  end
16
18
  end
17
19
 
18
- g.desc 'This method disables an existing User Group.'
19
- g.long_desc %( This method disables an existing User Group. )
20
+ g.desc 'Disable an existing User Group'
21
+ g.long_desc %( Disable an existing User Group )
20
22
  g.command 'disable' do |c|
21
23
  c.flag 'usergroup', desc: 'The encoded ID of the User Group to disable.'
22
24
  c.flag 'include_count', desc: 'Include the number of users in the User Group.'
25
+ c.flag 'team_id', desc: 'Encoded team id where the user group is, required if org token is used.'
23
26
  c.action do |_global_options, options, _args|
24
27
  puts JSON.dump($client.usergroups_disable(options))
25
28
  end
26
29
  end
27
30
 
28
- g.desc 'This method enables a User Group which was previously disabled.'
29
- g.long_desc %( This method enables a User Group which was previously disabled. )
31
+ g.desc 'Enable a User Group'
32
+ g.long_desc %( Enable a User Group )
30
33
  g.command 'enable' do |c|
31
34
  c.flag 'usergroup', desc: 'The encoded ID of the User Group to enable.'
32
35
  c.flag 'include_count', desc: 'Include the number of users in the User Group.'
36
+ c.flag 'team_id', desc: 'Encoded team id where the user group is, required if org token is used.'
33
37
  c.action do |_global_options, options, _args|
34
38
  puts JSON.dump($client.usergroups_enable(options))
35
39
  end
36
40
  end
37
41
 
38
- g.desc 'This method returns a list of all User Groups in the team. This can optionally include disabled User Groups.'
39
- g.long_desc %( This method returns a list of all User Groups in the team. This can optionally include disabled User Groups. )
42
+ g.desc 'List all User Groups for a team'
43
+ g.long_desc %( List all User Groups for a team )
40
44
  g.command 'list' do |c|
41
- c.flag 'include_disabled', desc: 'Include disabled User Groups.'
42
45
  c.flag 'include_count', desc: 'Include the number of users in each User Group.'
46
+ c.flag 'include_disabled', desc: 'Include disabled User Groups.'
43
47
  c.flag 'include_users', desc: 'Include the list of users for each User Group.'
48
+ c.flag 'team_id', desc: 'encoded team id to list user groups in, required if org token is used.'
44
49
  c.action do |_global_options, options, _args|
45
50
  puts JSON.dump($client.usergroups_list(options))
46
51
  end
47
52
  end
48
53
 
49
- g.desc 'This method updates the properties of an existing User Group.'
50
- g.long_desc %( This method updates the properties of an existing User Group. )
54
+ g.desc 'Update an existing User Group'
55
+ g.long_desc %( Update an existing User Group )
51
56
  g.command 'update' do |c|
52
57
  c.flag 'usergroup', desc: 'The encoded ID of the User Group to update.'
53
- c.flag 'name', desc: 'A name for the User Group. Must be unique among User Groups.'
54
- c.flag 'handle', desc: 'A mention handle. Must be unique among channels, users and User Groups.'
55
- c.flag 'description', desc: 'A short description of the User Group.'
56
58
  c.flag 'channels', desc: 'A comma separated string of encoded channel IDs for which the User Group uses as a default.'
59
+ c.flag 'description', desc: 'A short description of the User Group.'
60
+ c.flag 'handle', desc: 'A mention handle. Must be unique among channels, users and User Groups.'
57
61
  c.flag 'include_count', desc: 'Include the number of users in the User Group.'
62
+ c.flag 'name', desc: 'A name for the User Group. Must be unique among User Groups.'
63
+ c.flag 'team_id', desc: 'encoded team id where the user group exists, required if org token is used.'
58
64
  c.action do |_global_options, options, _args|
59
65
  puts JSON.dump($client.usergroups_update(options))
60
66
  end
@@ -1,23 +1,26 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'UsergroupsUsers methods.'
4
5
  command 'usergroups_users' do |g|
5
- g.desc 'This method returns a list of all users within a User Group.'
6
- g.long_desc %( This method returns a list of all users within a User Group. )
6
+ g.desc 'List all users in a User Group'
7
+ g.long_desc %( List all users in a User Group )
7
8
  g.command 'list' do |c|
8
9
  c.flag 'usergroup', desc: 'The encoded ID of the User Group to update.'
9
10
  c.flag 'include_disabled', desc: 'Allow results that involve disabled User Groups.'
11
+ c.flag 'team_id', desc: 'encoded team id where the user group exists, required if org token is used.'
10
12
  c.action do |_global_options, options, _args|
11
13
  puts JSON.dump($client.usergroups_users_list(options))
12
14
  end
13
15
  end
14
16
 
15
- g.desc 'This method updates the list of users that belong to a User Group. This method replaces all users in a User Group with the list of users provided in the users parameter.'
16
- g.long_desc %( This method updates the list of users that belong to a User Group. This method replaces all users in a User Group with the list of users provided in the users parameter. )
17
+ g.desc 'Update the list of users for a User Group'
18
+ g.long_desc %( Update the list of users for a User Group )
17
19
  g.command 'update' do |c|
18
20
  c.flag 'usergroup', desc: 'The encoded ID of the User Group to update.'
19
21
  c.flag 'users', desc: 'A comma separated string of encoded user IDs that represent the entire list of users for the User Group.'
20
22
  c.flag 'include_count', desc: 'Include the number of users in the User Group.'
23
+ c.flag 'team_id', desc: 'encoded team id where the user group exists, required if org token is used.'
21
24
  c.action do |_global_options, options, _args|
22
25
  puts JSON.dump($client.usergroups_users_update(options))
23
26
  end
@@ -1,17 +1,32 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Get info on members of your Slack team.'
4
5
  command 'users' do |g|
5
- g.desc 'This method allows the user to delete their profile image. It will clear whatever image is currently set.'
6
- g.long_desc %( This method allows the user to delete their profile image. It will clear whatever image is currently set. )
6
+ g.desc 'List conversations the calling user may access.'
7
+ g.long_desc %( List conversations the calling user may access. )
8
+ g.command 'conversations' do |c|
9
+ 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."
10
+ c.flag 'exclude_archived', desc: 'Set to true to exclude archived channels from the list.'
11
+ 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. Must be an integer no larger than 1000."
12
+ c.flag 'team_id', desc: 'encoded team id to list conversations in, required if org token is used.'
13
+ c.flag 'types', desc: 'Mix and match channel types by providing a comma-separated list of any combination of public_channel, private_channel, mpim, im.'
14
+ c.flag 'user', desc: "Browse conversations by a specific user ID's membership. Non-public channels are restricted to those where the calling user shares membership."
15
+ c.action do |_global_options, options, _args|
16
+ puts JSON.dump($client.users_conversations(options))
17
+ end
18
+ end
19
+
20
+ g.desc 'Delete the user profile photo'
21
+ g.long_desc %( Delete the user profile photo )
7
22
  g.command 'deletePhoto' do |c|
8
23
  c.action do |_global_options, options, _args|
9
24
  puts JSON.dump($client.users_deletePhoto(options))
10
25
  end
11
26
  end
12
27
 
13
- g.desc "This method lets you find out information about a user's presence."
14
- g.long_desc %( This method lets you find out information about a user's presence. Consult the presence documentation for more details. )
28
+ g.desc 'Gets user presence information.'
29
+ g.long_desc %( Gets user presence information. )
15
30
  g.command 'getPresence' do |c|
16
31
  c.flag 'user', desc: 'User to get presence info on. Defaults to the authed user.'
17
32
  c.action do |_global_options, options, _args|
@@ -19,76 +34,89 @@ command 'users' do |g|
19
34
  end
20
35
  end
21
36
 
22
- g.desc "After your Slack app is awarded an identity token through Sign in with Slack, use this method to retrieve a user's identity."
23
- g.long_desc %( After your Slack app is awarded an identity token through Sign in with Slack, use this method to retrieve a user's identity. )
37
+ g.desc 'This method returns the ID of a team user.'
38
+ g.long_desc %( This method returns the ID of a team user. )
39
+ g.command 'id' do |c|
40
+ c.flag 'user', desc: 'User to get ID for, prefixed with @.'
41
+ c.action do |_global_options, options, _args|
42
+ puts JSON.dump($client.users_id(options))
43
+ end
44
+ end
45
+
46
+ g.desc "Get a user's identity."
47
+ g.long_desc %( Get a user's identity. )
24
48
  g.command 'identity' do |c|
25
49
  c.action do |_global_options, options, _args|
26
50
  puts JSON.dump($client.users_identity(options))
27
51
  end
28
52
  end
29
53
 
30
- g.desc 'This method returns information about a team member.'
31
- g.long_desc %( This method returns information about a team member. )
54
+ g.desc 'Gets information about a user.'
55
+ g.long_desc %( Gets information about a user. )
32
56
  g.command 'info' do |c|
33
57
  c.flag 'user', desc: 'User to get info on.'
58
+ c.flag 'include_locale', desc: 'Set this to true to receive the locale for this user. Defaults to false.'
34
59
  c.action do |_global_options, options, _args|
35
60
  puts JSON.dump($client.users_info(options))
36
61
  end
37
62
  end
38
63
 
39
- g.desc 'This method returns a list of all users in the team. This includes deleted/deactivated users.'
40
- g.long_desc %( This method returns a list of all users in the team. This includes deleted/deactivated users. )
64
+ g.desc 'Lists all users in a Slack team.'
65
+ g.long_desc %( Lists all users in a Slack team. )
41
66
  g.command 'list' do |c|
42
- c.flag 'presence', desc: 'Whether to include presence data in the output.'
67
+ 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."
68
+ c.flag 'include_locale', desc: 'Set this to true to receive the locale for users. Defaults to false.'
69
+ 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. Providing no limit value will result in Slack attempting to deliver you the entire result set. If the collection is too large you may experience limit_required or HTTP 500 errors."
70
+ c.flag 'team_id', desc: 'encoded team id to list users in, required if org token is used.'
43
71
  c.action do |_global_options, options, _args|
44
72
  puts JSON.dump($client.users_list(options))
45
73
  end
46
74
  end
47
75
 
48
- g.desc 'This method lets the slack messaging server know that the authenticated user'
49
- g.long_desc %( This method lets the slack messaging server know that the authenticated user is currently active. Consult the presence documentation for more details. )
76
+ g.desc 'Find a user with an email address.'
77
+ g.long_desc %( Find a user with an email address. )
78
+ g.command 'lookupByEmail' do |c|
79
+ c.flag 'email', desc: 'An email address belonging to a user in the workspace.'
80
+ c.action do |_global_options, options, _args|
81
+ puts JSON.dump($client.users_lookupByEmail(options))
82
+ end
83
+ end
84
+
85
+ g.desc 'This method searches for users.'
86
+ g.long_desc %( This method searches for users. )
87
+ g.command 'search' do |c|
88
+ c.flag 'user', desc: 'User to search for.'
89
+ c.action do |_global_options, options, _args|
90
+ puts JSON.dump($client.users_search(options))
91
+ end
92
+ end
93
+
94
+ g.desc 'Marked a user as active. Deprecated and non-functional.'
95
+ g.long_desc %( Marked a user as active. Deprecated and non-functional. )
50
96
  g.command 'setActive' do |c|
51
97
  c.action do |_global_options, options, _args|
52
98
  puts JSON.dump($client.users_setActive(options))
53
99
  end
54
100
  end
55
101
 
56
- g.desc 'This method allows the user to set their profile image. The caller can pass image data via image.'
57
- g.long_desc %( This method allows the user to set their profile image. The caller can pass image data via image. )
102
+ g.desc 'Set the user profile photo'
103
+ g.long_desc %( Set the user profile photo )
58
104
  g.command 'setPhoto' do |c|
59
- c.flag 'image', desc: 'File contents via multipart/form-data.'
105
+ c.flag 'crop_w', desc: 'Width/height of crop box (always square).'
60
106
  c.flag 'crop_x', desc: 'X coordinate of top-left corner of crop box.'
61
107
  c.flag 'crop_y', desc: 'Y coordinate of top-left corner of crop box.'
62
- c.flag 'crop_w', desc: 'Width/height of crop box (always square).'
108
+ c.flag 'image', desc: 'File contents via multipart/form-data.'
63
109
  c.action do |_global_options, options, _args|
64
110
  puts JSON.dump($client.users_setPhoto(options))
65
111
  end
66
112
  end
67
113
 
68
- g.desc "This method lets you set the calling user's manual presence."
69
- g.long_desc %( This method lets you set the calling user's manual presence. Consult the presence documentation for more details. )
114
+ g.desc 'Manually sets user presence.'
115
+ g.long_desc %( Manually sets user presence. )
70
116
  g.command 'setPresence' do |c|
71
117
  c.flag 'presence', desc: 'Either auto or away.'
72
118
  c.action do |_global_options, options, _args|
73
119
  puts JSON.dump($client.users_setPresence(options))
74
120
  end
75
121
  end
76
-
77
- g.desc 'This method returns the ID of a team user.'
78
- g.long_desc %( This method returns the ID of a team user. )
79
- g.command 'id' do |c|
80
- c.flag 'user', desc: 'User to get ID for, prefixed with @.'
81
- c.action do |_global_options, options, _args|
82
- puts JSON.dump($client.users_id(options))
83
- end
84
- end
85
-
86
- g.desc 'This method searches for users.'
87
- g.long_desc %( This method searches for users. )
88
- g.command 'search' do |c|
89
- c.flag 'user', desc: 'User to search for.'
90
- c.action do |_global_options, options, _args|
91
- puts JSON.dump($client.users_search(options))
92
- end
93
- end
94
122
  end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'UsersAdmin methods.'
5
+ command 'users_admin' do |g|
6
+ g.desc 'Send an invitation to a new user by email (undocumented)'
7
+ g.long_desc %( Send an invitation to a new user by email )
8
+ g.command 'invite' do |c|
9
+ c.flag 'email', desc: 'Email address of the new user'
10
+ c.flag 'channels', desc: 'Comma-separated list of IDs (not names!) for channels, which the new user will auto-join. Both channel IDs for public channels and group IDs for private chanels work.'
11
+ c.flag 'first_name', desc: 'Prefilled input for the "First name" field on the "new user registration" page.'
12
+ c.flag 'last_name', desc: 'Prefilled input for the "Last name" field on the "new user registration" page.'
13
+ c.flag 'resend', desc: 'Resend the invitation email if the user has already been invited and the email was sent some time ago.'
14
+ c.flag 'restricted', desc: 'Invite a guest that can use multiple channels'
15
+ c.flag 'ultra_restricted', desc: 'Invite a guest that can use one channel only'
16
+ c.action do |_global_options, options, _args|
17
+ puts JSON.dump($client.users_admin_invite(options))
18
+ end
19
+ end
20
+
21
+ g.desc 'Disable a user (undocumented)'
22
+ g.long_desc %( Disable a user )
23
+ g.command 'setInactive' do |c|
24
+ c.flag 'user', desc: 'User to disable'
25
+ c.action do |_global_options, options, _args|
26
+ puts JSON.dump($client.users_admin_setInactive(options))
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'UsersPrefs methods.'
5
+ command 'users_prefs' do |g|
6
+ g.desc "Returns the user's preferences (undocumented)"
7
+ g.long_desc %( Returns the user's preferences )
8
+ g.command 'get' do |c|
9
+ c.action do |_global_options, options, _args|
10
+ puts JSON.dump($client.users_prefs_get(options))
11
+ end
12
+ end
13
+ end
@@ -1,23 +1,24 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'UsersProfile methods.'
4
5
  command 'users_profile' do |g|
5
- g.desc 'This method is used to get the profile information for a user.'
6
- g.long_desc %( This method is used to get the profile information for a user. )
6
+ g.desc "Retrieve a user's profile information, including their custom status."
7
+ g.long_desc %( Retrieve a user's profile information, including their custom status. )
7
8
  g.command 'get' do |c|
9
+ c.flag 'include_labels', desc: 'Include labels for each ID in custom profile fields. Using this parameter will heavily rate-limit your requests and is not recommended.'
8
10
  c.flag 'user', desc: 'User to retrieve profile info for.'
9
- c.flag 'include_labels', desc: 'Include labels for each ID in custom profile fields.'
10
11
  c.action do |_global_options, options, _args|
11
12
  puts JSON.dump($client.users_profile_get(options))
12
13
  end
13
14
  end
14
15
 
15
- g.desc 'This method is used to set the profile information for a user.'
16
- g.long_desc %( This method is used to set the profile information for a user. )
16
+ g.desc "Set a user's profile information, including custom status."
17
+ g.long_desc %( Set a user's profile information, including custom status. )
17
18
  g.command 'set' do |c|
18
- c.flag 'user', desc: 'ID of user to change. This argument may only be specified by team admins on paid teams.'
19
- c.flag 'profile', desc: 'Collection of key:value pairs presented as a URL-encoded JSON hash.'
20
19
  c.flag 'name', desc: 'Name of a single key to set. Usable only if profile is not passed.'
20
+ c.flag 'profile', desc: 'Collection of key:value pairs presented as a URL-encoded JSON hash. At most 50 fields may be set. Each field name is limited to 255 characters.'
21
+ c.flag 'user', desc: 'ID of user to change. This argument may only be specified by team admins on paid teams.'
21
22
  c.flag 'value', desc: 'Value to set a single key to. Usable only if profile is not passed.'
22
23
  c.action do |_global_options, options, _args|
23
24
  puts JSON.dump($client.users_profile_set(options))