Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
### 3.1.1 (Next)
### 3.2.0 (Next)

* [#581](https://github.com/slack-ruby/slack-ruby-client/pull/581): Migrate Danger to use danger-pr-comment workflow - [@dblock](https://github.com/dblock).
* [#583](https://github.com/slack-ruby/slack-ruby-client/pull/583): Not found errors raised by id_for use more specific error classes when they exist - [@eizengan](https://github.com/eizengan).
* Your contribution here.

### 3.1.0 (2025/11/15)
Expand Down
4 changes: 4 additions & 0 deletions UPGRADING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
Upgrading Slack-Ruby-Client
===========================

### Upgrading to >= 3.2.0

[#583](https://github.com/slack-ruby/slack-ruby-client/pull/583) modifies the error types raised when a nonexistent #channel-name or @user-handle is looked up. These will now raise `ChannelNotFound` and `UserNotFound` respectively, whereas they previously raised a `SlackError`. If your code relies on these types without accounting for inheritance, it will need to be migrated. Notably, `rescue SlackError` will continue to work as normal, since both error classes inherit from it.

### Upgrading to >= 3.0.0

Support for the [RTM API](https://docs.slack.dev/tools/java-slack-sdk/guides/rtm/) has been removed in [#573](https://github.com/slack-ruby/slack-ruby-client/pull/573). By now you should have [migrated your app to granular permissions](https://code.dblock.org/2020/11/30/migrating-classic-slack-ruby-bots-to-granular-permissions.html), and you should lock your slack-ruby-client to 2.x for those bots. Next, to remove RTM components we found it more effective to just [write a new version of a bot](https://code.dblock.org/2024/06/30/writing-a-channel-slack-bot.html) and avoid a complex migration.
Expand Down
2 changes: 1 addition & 1 deletion lib/slack/version.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# frozen_string_literal: true
module Slack
VERSION = '3.1.1'
VERSION = '3.2.0'
end
4 changes: 3 additions & 1 deletion lib/slack/web/api/mixins/ids.id.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ def id_for(key:, name:, prefix:, enum_method:, list_method:, options: {})
end
end

raise Slack::Web::Api::Errors::SlackError, "#{key}_not_found"
error_message = "#{key}_not_found"
error_class = Slack::Web::Api::Errors::ERROR_CLASSES[error_message] || Slack::Web::Api::Errors::SlackError
raise error_class, error_message
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion spec/slack/web/api/mixins/conversations_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@

it 'fails with an exception' do
expect { conversations.conversations_id(channel: '#invalid') }.to(
raise_error(Slack::Web::Api::Errors::SlackError, 'channel_not_found')
raise_error(Slack::Web::Api::Errors::ChannelNotFound, 'channel_not_found')
)
end

Expand Down
2 changes: 1 addition & 1 deletion spec/slack/web/api/mixins/users_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@

it 'fails with an exception' do
expect { users.users_id(user: '@foo') }.to(
raise_error(Slack::Web::Api::Errors::SlackError, 'user_not_found')
raise_error(Slack::Web::Api::Errors::UserNotFound, 'user_not_found')
)
end

Expand Down
Loading