class Slack::API::Conversations

Public Instance Methods

all(exclude_archived=false, types='public_channel', page: nil) click to toggle source
# File lib/laziness/api/conversations.rb, line 4
def all(exclude_archived=false, types='public_channel', page: nil)
  responses = with_paging(page) do |pager|
    request :get,
      'conversations.list',
      exclude_archived: exclude_archived ? 1 : 0,
      types: types,
      **pager.to_h
  end

  Slack::Conversation.parse_all responses, 'channels'
end
archive(id) click to toggle source
# File lib/laziness/api/conversations.rb, line 16
def archive(id)
  with_nil_response { request :post, 'conversations.archive', channel: id }
end
close(id) click to toggle source
# File lib/laziness/api/conversations.rb, line 20
def close(id)
  with_nil_response { request :post, 'conversations.close', channel: id }
end
create(name, is_private=false, user_ids=[]) click to toggle source
# File lib/laziness/api/conversations.rb, line 24
def create(name, is_private=false, user_ids=[])
  response = request :post,
    'conversations.create',
    name: name,
    is_private: is_private,
    user_ids: user_ids

  Slack::Conversation.parse response, 'channel'
end
find(id) click to toggle source
# File lib/laziness/api/conversations.rb, line 34
def find(id)
  response = request :get, 'conversations.info', channel: id
  Slack::Conversation.parse response, 'channel'
end
invite(id, users) click to toggle source
# File lib/laziness/api/conversations.rb, line 39
def invite(id, users)
  response = request :post,
    'conversations.invite',
    channel: id,
    users: users.join(",")

  Slack::Conversation.parse response, 'channel'
end
join(id) click to toggle source
# File lib/laziness/api/conversations.rb, line 48
def join(id)
  response = request :post,
    'conversations.join',
    channel: id

  Slack::Conversation.parse response, 'channel'
end
kick(id, user) click to toggle source
# File lib/laziness/api/conversations.rb, line 56
def kick(id, user)
  with_nil_response { request :post, 'conversations.kick', channel: id, user: user }
end
leave(id) click to toggle source
# File lib/laziness/api/conversations.rb, line 60
def leave(id)
  with_nil_response { request :post, 'conversations.leave', channel: id }
end
members(id, page: nil) click to toggle source
# File lib/laziness/api/conversations.rb, line 64
def members(id, page: nil)
  responses = with_paging(page) do |pager|
    request :get,
            'conversations.members',
            channel: id,
            **pager.to_h
  end

  responses.map do |response|
    JSON.parse(response.body)["members"]
  end.flatten
end
open(users=[], id=nil, return_im: false) click to toggle source
# File lib/laziness/api/conversations.rb, line 77
def open(users=[], id=nil, return_im: false)
  response = request :post,
    'conversations.open',
    channel: id,
    users: (users || []).join(","),
    return_im: return_im

  Slack::Conversation.parse response, 'channel'
end
rename(id, name) click to toggle source
# File lib/laziness/api/conversations.rb, line 87
def rename(id, name)
  response = request :post,
    'conversations.rename',
    channel: id,
    name: name

  Slack::Conversation.parse response, 'channel'
end
set_purpose(id, purpose) click to toggle source
# File lib/laziness/api/conversations.rb, line 96
def set_purpose(id, purpose)
  with_nil_response do
    request :post,
    'conversations.setPurpose',
    channel: id,
    purpose: purpose
  end
end
set_topic(id, topic) click to toggle source
# File lib/laziness/api/conversations.rb, line 105
def set_topic(id, topic)
  with_nil_response do
    request :post,
    'conversations.setTopic',
    channel: id,
    topic: topic
  end
end
unarchive(id) click to toggle source
# File lib/laziness/api/conversations.rb, line 114
def unarchive(id)
  with_nil_response { request :post, 'conversations.unarchive', channel: id }
end