Packages

Elixir library for building Telegram bots with macro-based API

Current section

Files

Jump to
telegram_ex lib builders contact.ex
Raw

lib/builders/contact.ex

defmodule TelegramEx.Builder.Contact do
@moduledoc """
Builder for contact payloads.
Contact.contact(ctx, "John", "+123456789")
|> Contact.send(chat_id)
Contact.contact(ctx, "John", "Doe", "+123456789")
|> Contact.send(chat_id)
"""
alias TelegramEx.API
def contact(ctx, name, phone) do
Map.get(ctx, :payload, %{})
|> Map.put(:phone_number, phone)
|> Map.put(:first_name, name)
|> then(&Map.put(ctx, :payload, &1))
end
def contact(ctx, first_name, last_name, phone) do
Map.get(ctx, :payload, %{})
|> Map.put(:phone_number, phone)
|> Map.put(:first_name, first_name)
|> Map.put(:last_name, last_name)
|> then(&Map.put(ctx, :payload, &1))
end
def silent(ctx) do
Map.get(ctx, :payload, %{})
|> Map.put(:disable_notification, true)
|> then(&Map.put(ctx, :payload, &1))
end
def send(ctx, id) do
ctx
|> Map.put(:chat_id, id)
|> Map.put(:method, "sendContact")
|> Map.put(:format, :json)
|> API.request()
end
end