module Slack::Web::Api::Mixins::Users

def users_id(options = {})

Options Hash: (**options)
  • :user (user) --
def users_id(options = {})
  name = options[:user]
  throw ArgumentError.new('Required arguments :user missing') if name.nil?
  return { 'ok' => true, 'user' => { 'id' => name } } unless name[0] == '@'
  users_list.tap do |list|
    list.members.each do |user|
      return Slack::Messages::Message.new('ok' => true, 'user' => { 'id' => user.id }) if user.name == name[1..-1]
    end
  end
  fail Slack::Web::Api::Error, 'user_not_found'
end

def users_search(options = {})

Options Hash: (**options)
  • :user (user) --
def users_search(options = {})
  query = options[:user]
  throw ArgumentError.new('Required arguments :user missing') if query.nil?
  index = Picky::Index.new(:users) do
    category :name
    category :first_name
    category :last_name
    category :real_name
    category :email
  end
  members = users_list.members
  members.each_with_index do |member, id|
    user = Member.new(
      id,
      member.name,
      member.profile.first_name,
      member.profile.last_name,
      member.profile.real_name,
      member.profile.email
    )
    index.add(user)
  end
  ids = Picky::Search.new(index).search(query, 5, 0, unique: true).ids
  results = ids.map { |id| members[id] }
  Slack::Messages::Message.new('ok' => true, 'members' => results)
end