Module: Slack::Peoplepuller
- Defined in:
- lib/slack/peoplepuller.rb,
lib/slack/peoplepuller/version.rb,
lib/slack/peoplepuller/configuration.rb
Defined Under Namespace
Classes: Configuration
Constant Summary collapse
- VERSION =
'0.4.0'
Class Attribute Summary collapse
-
.configuration ⇒ Object
Returns the value of attribute configuration.
Class Method Summary collapse
Class Attribute Details
.configuration ⇒ Object
Returns the value of attribute configuration.
5 6 7 |
# File 'lib/slack/peoplepuller/configuration.rb', line 5 def configuration @configuration end |
Class Method Details
.configure {|configuration| ... } ⇒ Object
8 9 10 11 |
# File 'lib/slack/peoplepuller/configuration.rb', line 8 def self.configure self.configuration ||= Configuration.new yield(configuration) end |
.pull(groups_to_load) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# 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 |