class Slack::Service

Attributes

token[R]

Public Class Methods

new(token) click to toggle source
# File lib/embulk/input/slack/service.rb, line 6
def initialize(token)
    @token = token
    @client = Client.new(@token)
end

Public Instance Methods

check_channels(channel_ids) click to toggle source
# File lib/embulk/input/slack/service.rb, line 52
def check_channels(channel_ids)
    channel_ids.each do |ch_id|
        @client.channel_by_id!(ch_id)
    end
end
check_token() click to toggle source
# File lib/embulk/input/slack/service.rb, line 48
def check_token
    raise 'Error token is invalid' unless @client.auth_check
end
compose_record(channel_id, &block) click to toggle source
# File lib/embulk/input/slack/service.rb, line 11
def compose_record(channel_id, &block)
    """
    Compose embulk insert record.
    
    params:
        slack public channel id (string)
        embulk insert method (block)
    """
    members = get_members
    channel = get_channel(channel_id)
    messages = get_messages(channel_id)

    messages.each do |message|
        record = {
            'id' => "#{channel_id}-#{message['timestamp'].to_i}-#{message['user_id']}",
            'post_at' => Time.at(message['timestamp'].to_i),
            'slack_user_id' => message['user_id'],
            'slack_username' => members[message['user_id']],
            'slack_channel_name' => channel['name'],
            'message_text' => message['text']
        }
        block.call(record)
    end
end
get_channel(channel_id) click to toggle source
# File lib/embulk/input/slack/service.rb, line 40
def get_channel(channel_id)
    @client.channel_by_id!(channel_id)
end
get_members() click to toggle source
# File lib/embulk/input/slack/service.rb, line 36
def get_members
    @client.members
end
get_messages(channel_id) click to toggle source
# File lib/embulk/input/slack/service.rb, line 44
def get_messages(channel_id)
    @client.ch_messages(channel_id)
end