Files
leadchat/lib/integrations/slack/channel_builder.rb
2020-06-22 13:19:26 +05:30

35 lines
732 B
Ruby

class Integrations::Slack::ChannelBuilder
attr_reader :params, :channel
def initialize(params)
@params = params
end
def perform
find_or_create_channel
update_reference_id
end
private
def hook
@hook ||= params[:hook]
end
def slack_client
Slack.configure do |config|
config.token = hook.access_token
end
Slack::Web::Client.new
end
def find_or_create_channel
exisiting_channel = slack_client.conversations_list.channels.find { |channel| channel['name'] == params[:channel] }
@channel = exisiting_channel || slack_client.conversations_create(name: params[:channel])['channel']
end
def update_reference_id
@hook.update(reference_id: channel['id'])
end
end