Current section
Files
Jump to
Current section
Files
lib/builders/message.ex
defmodule TelegramEx.Builder.Message do
@moduledoc """
Builder for text message payloads.
Message.text("Hello", "Markdown")
|> Message.inline_keyboard([[%{text: "OK", callback_data: "ok"}]])
|> Message.send(chat_id)
"""
alias TelegramEx.API
def text(text) do
%{text: text}
end
def text(text, parse_mode) do
%{text: text, parse_mode: parse_mode}
end
def inline_keyboard(message, keyboard) do
Map.put(message, :reply_markup, %{inline_keyboard: keyboard})
end
def reply_keyboard(message, keyboard, opts) do
message
|> Map.put(:reply_markup, Map.merge(%{keyboard: keyboard}, Map.new(opts)))
end
def remove_keyboard(message) do
Map.put(message, :reply_markup, %{remove_keyboard: true})
end
def silent(message) do
Map.put(message, :disable_notification, true)
end
def answer_callback_query(message, callback) do
API.answer_callback_query(Process.get(:token), callback)
message
end
def send(message, id) do
message
|> Map.put(:chat_id, id)
|> then(&API.send_message(Process.get(:token), &1))
end
end