Class: MaxBotApi::Resources::Chats

Inherits:
Object
  • Object
show all
Defined in:
lib/max_bot_api/resources/chats.rb

Overview

Chats API methods.

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Chats

Returns a new instance of Chats.



7
8
9
# File 'lib/max_bot_api/resources/chats.rb', line 7

def initialize(client)
  @client = client
end

Instance Method Details

#add_member(chat_id:, users:) ⇒ Object

Add members to chat.

Parameters:

  • chat_id (Integer)
  • users (Hash)


72
73
74
# File 'lib/max_bot_api/resources/chats.rb', line 72

def add_member(chat_id:, users:)
  @client.request(:post, "chats/#{chat_id}/members", body: users)
end

#edit_chat(chat_id:, update:) ⇒ Object

Patch chat info.

Parameters:

  • chat_id (Integer)
  • update (Hash)


65
66
67
# File 'lib/max_bot_api/resources/chats.rb', line 65

def edit_chat(chat_id:, update:)
  @client.request(:patch, "chats/#{chat_id}", body: update)
end

#get_chat(chat_id:) ⇒ Object

Fetch a single chat.

Parameters:

  • chat_id (Integer)


23
24
25
# File 'lib/max_bot_api/resources/chats.rb', line 23

def get_chat(chat_id:)
  @client.request(:get, "chats/#{chat_id}")
end

#get_chat_admins(chat_id:) ⇒ Object

List chat admins.

Parameters:

  • chat_id (Integer)


52
53
54
# File 'lib/max_bot_api/resources/chats.rb', line 52

def get_chat_admins(chat_id:)
  @client.request(:get, "chats/#{chat_id}/members/admins")
end

#get_chat_members(chat_id:, count: nil, marker: nil) ⇒ Object

List chat members.

Parameters:

  • chat_id (Integer)


35
36
37
38
39
40
# File 'lib/max_bot_api/resources/chats.rb', line 35

def get_chat_members(chat_id:, count: nil, marker: nil)
  query = {}
  query['count'] = count if count && count.to_i > 0
  query['marker'] = marker unless marker.nil?
  @client.request(:get, "chats/#{chat_id}/members", query: query)
end

#get_chat_membership(chat_id:) ⇒ Object

Fetch current bot membership info.

Parameters:

  • chat_id (Integer)


29
30
31
# File 'lib/max_bot_api/resources/chats.rb', line 29

def get_chat_membership(chat_id:)
  @client.request(:get, "chats/#{chat_id}/members/me")
end

#get_chats(count: nil, marker: nil) ⇒ Object

List chats with pagination.

Parameters:

  • count (Integer, nil) (defaults to: nil)
  • marker (Integer, nil) (defaults to: nil)


14
15
16
17
18
19
# File 'lib/max_bot_api/resources/chats.rb', line 14

def get_chats(count: nil, marker: nil)
  query = {}
  query['count'] = count if count && count.to_i > 0
  query['marker'] = marker if marker && marker.to_i > 0
  @client.request(:get, 'chats', query: query)
end

#get_pinned_message(chat_id:) ⇒ Object

Fetch the currently pinned message.

Parameters:

  • chat_id (Integer)


99
100
101
# File 'lib/max_bot_api/resources/chats.rb', line 99

def get_pinned_message(chat_id:)
  @client.request(:get, "chats/#{chat_id}/pin")
end

#get_specific_chat_members(chat_id:, user_ids:) ⇒ Object

Fetch specific members by user IDs.

Parameters:

  • chat_id (Integer)
  • user_ids (Array<Integer>)


45
46
47
48
# File 'lib/max_bot_api/resources/chats.rb', line 45

def get_specific_chat_members(chat_id:, user_ids:)
  ids = Array(user_ids).map(&:to_s).join(',')
  @client.request(:get, "chats/#{chat_id}/members", query: { 'user_ids' => ids })
end

#leave_chat(chat_id:) ⇒ Object

Leave a chat.

Parameters:

  • chat_id (Integer)


58
59
60
# File 'lib/max_bot_api/resources/chats.rb', line 58

def leave_chat(chat_id:)
  @client.request(:delete, "chats/#{chat_id}/members/me")
end

#pin_message(chat_id:, message_id:) ⇒ Object

Pin a message in chat.

Parameters:

  • chat_id (Integer)
  • message_id (String)


93
94
95
# File 'lib/max_bot_api/resources/chats.rb', line 93

def pin_message(chat_id:, message_id:)
  @client.request(:put, "chats/#{chat_id}/pin", body: { message_id: message_id })
end

#remove_member(chat_id:, user_id:) ⇒ Object

Remove a member from chat.

Parameters:

  • chat_id (Integer)
  • user_id (Integer)


79
80
81
# File 'lib/max_bot_api/resources/chats.rb', line 79

def remove_member(chat_id:, user_id:)
  @client.request(:delete, "chats/#{chat_id}/members", query: { 'user_id' => user_id })
end

#send_action(chat_id:, action:) ⇒ Object

Send a chat action.

Parameters:

  • chat_id (Integer)
  • action (String)


86
87
88
# File 'lib/max_bot_api/resources/chats.rb', line 86

def send_action(chat_id:, action:)
  @client.request(:post, "chats/#{chat_id}/actions", body: { action: action })
end

#unpin_message(chat_id:) ⇒ Object

Remove the currently pinned message.

Parameters:

  • chat_id (Integer)


105
106
107
# File 'lib/max_bot_api/resources/chats.rb', line 105

def unpin_message(chat_id:)
  @client.request(:delete, "chats/#{chat_id}/pin")
end