Class: MTProto::RPC::SendMessage

Inherits:
Object
  • Object
show all
Defined in:
lib/mtproto/rpc/send_message.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ SendMessage

Returns a new instance of SendMessage.



9
10
11
# File 'lib/mtproto/rpc/send_message.rb', line 9

def initialize(client)
  @client = client
end

Instance Method Details

#call(user_id:, access_hash:, message:, random_id: nil) ⇒ Object

Raises:

  • (ArgumentError)


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/mtproto/rpc/send_message.rb', line 13

def call(user_id:, access_hash:, message:, random_id: nil)
  raise 'Auth key not generated' unless @client.auth_key
  raise ArgumentError, 'user_id is required' if user_id.nil?
  raise ArgumentError, 'access_hash is required' if access_hash.nil?
  raise ArgumentError, 'message is required and cannot be empty' if message.nil? || message.empty?

  query = Type::RPC::Messages::SendMessage.build(
    user_id: user_id,
    access_hash: access_hash,
    message: message,
    random_id: random_id
  )

  @client.rpc.call(query)
end

#call_sync(user_id:, access_hash:, message:, random_id: nil) ⇒ Object

Raises:

  • (ArgumentError)


29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/mtproto/rpc/send_message.rb', line 29

def call_sync(user_id:, access_hash:, message:, random_id: nil)
  raise 'Auth key not generated' unless @client.auth_key
  raise ArgumentError, 'user_id is required' if user_id.nil?
  raise ArgumentError, 'access_hash is required' if access_hash.nil?
  raise ArgumentError, 'message is required and cannot be empty' if message.nil? || message.empty?

  query = Type::RPC::Messages::SendMessage.build(
    user_id: user_id,
    access_hash: access_hash,
    message: message,
    random_id: random_id
  )

  response = @client.rpc.call_sync(query)
  Type::RPC::Messages::Updates.parse(response)
end