Skip to content

Commit 532ae7e

Browse files
feat: add check sns point (#134)
* feat: add check sns point * feat: check sns * fix: linting
1 parent 2bcb985 commit 532ae7e

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

lib/stream-chat/client.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ def self.from_env(**options)
7575
Client.new(ENV.fetch('STREAM_KEY'),
7676
ENV.fetch('STREAM_SECRET'),
7777
ENV.fetch('STREAM_CHAT_TIMEOUT', DEFAULT_TIMEOUT),
78-
**{ base_url: ENV.fetch('STREAM_CHAT_URL', DEFAULT_BASE_URL) }.merge(options))
78+
base_url: ENV.fetch('STREAM_CHAT_URL', DEFAULT_BASE_URL),
79+
**options)
7980
end
8081

8182
# Sets the underlying Faraday http client.
@@ -741,6 +742,14 @@ def check_sqs(sqs_key = nil, sqs_secret = nil, sqs_url = nil)
741742
post('check_sqs', data: { sqs_key: sqs_key, sqs_secret: sqs_secret, sqs_url: sqs_url })
742743
end
743744

745+
# Check SNS Push settings
746+
#
747+
# When no parameters are given, the current SNS app settings are used.
748+
sig { params(sns_key: T.nilable(String), sns_secret: T.nilable(String), sns_topic_arn: T.nilable(String)).returns(StreamChat::StreamResponse) }
749+
def check_sns(sns_key = nil, sns_secret = nil, sns_topic_arn = nil)
750+
post('check_sns', data: { sns_key: sns_key, sns_secret: sns_secret, sns_topic_arn: sns_topic_arn })
751+
end
752+
744753
# Creates a new command.
745754
sig { params(command: StringKeyHash).returns(StreamChat::StreamResponse) }
746755
def create_command(command)

spec/client_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,12 @@ def loop_times(times)
659659
expect(resp['error']).to include 'invalid SQS url'
660660
end
661661

662+
it 'check_sns with an invalid topic arn should fail' do
663+
resp = @client.check_sns('key', 'secret', 'arn:aws:sns:us-east-1:123456789012:sns-topic')
664+
expect(resp['status']).to eq 'error'
665+
expect(resp['error']).to include 'publishing the message failed.'
666+
end
667+
662668
it 'can create a guest if it"s allowed' do
663669
guest_user = @client.create_guest({ user: { id: SecureRandom.uuid } })
664670
expect(guest_user['access_token']).not_to be_empty

0 commit comments

Comments
 (0)