Skip to content

Commit 9c11bec

Browse files
committed
Extend id_for page size settings to users_id
1 parent 82518d9 commit 9c11bec

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
* [#549](https://github.com/slack-ruby/slack-ruby-client/pull/549): Add group ID formatting support for message mentions - [@n0h0](https://github.com/n0h0).
44
* [#553](https://github.com/slack-ruby/slack-ruby-client/pull/553): Use `secure_compare` during signature verification - [@hieuk09](https://github.com/hieuk09).
5-
* [#555](https://github.com/slack-ruby/slack-ruby-client/pull/555): Make page size in resolving conversation IDs configurable - [@eizengan](https://github.com/eizengan).
5+
* [#555](https://github.com/slack-ruby/slack-ruby-client/pull/555): Make page size in resolving IDs configurable - [@eizengan](https://github.com/eizengan).
66
* Your contribution here.
77

88
### 2.5.2 (2025/02/19)

lib/slack/web/api/mixins/users.id.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,23 @@ module Users
1212
#
1313
# @option options [user] :user
1414
# User to get ID for, prefixed with '@'.
15+
# @option options [integer] :limit
16+
# The page size used for users_list calls required to find the user's ID
1517
def users_id(options = {})
1618
name = options[:user]
19+
limit = options.fetch(:limit, users_id_page_size)
20+
1721
raise ArgumentError, 'Required arguments :user missing' if name.nil?
1822

19-
id_for :user, name, '@', :users_list, :members, 'user_not_found'
23+
id_for(
24+
:user,
25+
name,
26+
'@',
27+
:users_list,
28+
:members,
29+
'user_not_found',
30+
enum_method_options: { limit: limit }
31+
)
2032
end
2133
end
2234
end

lib/slack/web/config.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def reset
3434
self.open_timeout = nil
3535
self.default_page_size = 100
3636
self.conversations_id_page_size = default_page_size
37+
self.users_id_page_size = default_page_size
3738
self.default_max_retries = 100
3839
self.adapter = ::Faraday.default_adapter
3940
end

spec/slack/web/api/mixins/users_spec.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
end
1414

1515
before do
16+
allow(users).to receive(:users_id_page_size).and_return(100)
1617
allow(users).to receive(:users_list).and_yield(
1718
Slack::Messages::Message.new(
1819
'members' => [{
@@ -33,6 +34,12 @@
3334
expect(users.users_id(user: '@aws')).to eq('ok' => true, 'user' => { 'id' => 'UDEADBEEF' })
3435
end
3536

37+
it 'forwards a provided limit to the underlying users_list calls' do
38+
users.users_id(user: '@aws', limit: 1234)
39+
40+
expect(users).to have_received(:users_list).with(limit: 1234)
41+
end
42+
3643
it 'fails with an exception' do
3744
expect { users.users_id(user: '@foo') }.to(
3845
raise_error(Slack::Web::Api::Errors::SlackError, 'user_not_found')

0 commit comments

Comments
 (0)