Current section

Files

Jump to
telega src telega@models@reply.erl
Raw

src/telega@models@reply.erl

-module(telega@models@reply).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([encode_reply_parameters/1]).
-export_type([reply_parameters/0, reply_markup/0]).
-type reply_parameters() :: {reply_parameters,
integer(),
gleam@option:option(telega@models@common:int_or_string()),
gleam@option:option(boolean()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(list(telega@models@message_entity:message_entity())),
gleam@option:option(integer())}.
-type reply_markup() :: {inline_keyboard_markup,
list(list(telega@models@keyboard:inline_keyboard_button()))} |
{reply_keyboard_markup,
list(list(telega@models@keyboard:keyboard())),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(binary()),
gleam@option:option(boolean())} |
{reply_keyboard_remove, boolean(), gleam@option:option(boolean())}.
-spec encode_reply_parameters(reply_parameters()) -> gleam@json:json().
encode_reply_parameters(Reply_parameters) ->
Message_id = [{<<"message_id"/utf8>>,
gleam@json:int(erlang:element(2, Reply_parameters))}],
Chat_id = telega@models@common:option_to_json_object_list(
erlang:element(3, Reply_parameters),
<<"chat_id"/utf8>>,
fun telega@models@common:string_or_int_to_json/1
),
Allow_sending_without_reply = telega@models@common:option_to_json_object_list(
erlang:element(4, Reply_parameters),
<<"allow_sending_without_reply"/utf8>>,
fun gleam@json:bool/1
),
Quote = telega@models@common:option_to_json_object_list(
erlang:element(5, Reply_parameters),
<<"quote"/utf8>>,
fun gleam@json:string/1
),
Quote_parse_mode = telega@models@common:option_to_json_object_list(
erlang:element(6, Reply_parameters),
<<"quote_parse_mode"/utf8>>,
fun gleam@json:string/1
),
Quote_entities = telega@models@common:option_to_json_object_list(
erlang:element(7, Reply_parameters),
<<"quote_entities"/utf8>>,
fun(_capture) ->
gleam@json:array(
_capture,
fun telega@models@message_entity:encode/1
)
end
),
Quote_position = telega@models@common:option_to_json_object_list(
erlang:element(8, Reply_parameters),
<<"quote_position"/utf8>>,
fun gleam@json:int/1
),
_pipe = [Message_id,
Chat_id,
Allow_sending_without_reply,
Quote,
Quote_parse_mode,
Quote_entities,
Quote_position],
_pipe@1 = gleam@list:concat(_pipe),
gleam@json:object(_pipe@1).