module Slack::Peoplepuller

Constants

VERSION

Attributes

configuration[RW]

Public Class Methods

configure() { |configuration| ... } click to toggle source
# File lib/slack/peoplepuller/configuration.rb, line 8
def self.configure
  self.configuration ||= Configuration.new
  yield(configuration)
end
pull(groups_to_load) click to toggle source
# File lib/slack/peoplepuller.rb, line 7
def self.pull(groups_to_load)
  Slack.configure do |config|
    config.token = configuration.slack_api_token
  end

  client = Slack::Web::Client.new
  slack_groups = client.usergroups_list(include_users: true)
  people = []
  groups_to_load.each do |group|
    group = slack_groups.usergroups.find { |slack_group| slack_group.name == group }
    raise "Group #{search_group} not found" if group.nil?
    people += group.users
  end

  people.map do |person|
    profile = client.users_info(user: person).user.profile
    { name: profile.real_name_normalized,
      image: profile.image_original || profile.image_512 || profile.image_192,
      title: profile.title }
  end.find_all { |person| person.values.all? { |val| val != '' && val != nil } }
end