Sha256: f387173cd8e6fa2c0a99c69f803ddbc9c20b076ed25eb020adf977f4bad1f4fe
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
module Socrates module Adapters class SlackAdapter def initialize(slack_real_time_client) @slack_real_time_client = slack_real_time_client end def client_id_from_context(context) context&.user end def send_message(message, context:) @slack_real_time_client.message(text: message, channel: context.channel) end def send_direct_message(message, user, *) user = user.id if user.respond_to?(:id) im_channel = lookup_im_channel(user) @slack_real_time_client.message(text: message, channel: im_channel) end def users_list client = @slack_real_time_client.web_client client.users_list end def lookup_email(context:) client = @slack_real_time_client.web_client client.users_info(user: context.user) end private def lookup_im_channel(user) im = @slack_real_time_client.ims.values.find { |i| i.user == user } return im if im.present? # Start a new conversation with this user. response = @slack_real_time_client.web_client.im_open(user: user.id) response.channel.id end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
socrates-0.1.3 | lib/socrates/adapters/slack_adapter.rb |
socrates-0.1.2 | lib/socrates/adapters/slack_adapter.rb |