Current section
Files
Jump to
Current section
Files
lib/line-message/message.ex
defmodule LineMessage.Message do
def text(messages \\ [], txt) do
messages ++ [%{
type: "text",
text: txt
}]
end
def image(messages \\ [],
%{original_content_url: original_url, preview_image_url: preview_url}) do
messages ++ [%{
type: "image",
originalContentUrl: original_url,
previewImageUrl: preview_url
}]
end
def video(messages \\ [],
%{original_content_url: original_url, preview_image_url: preview_url}) do
messages ++ [%{
type: "video",
originalContentUrl: original_url,
previewImageUrl: preview_url
}]
end
def audio(messages \\ [],
%{original_content_url: original_url, duration: duration}) do
messages ++ [%{
type: "audio",
originalContentUrl: original_url,
duration: duration
}]
end
def location(messages \\ [],
%{title: title, address: address,
latitude: latitude, longitude: longitude}) do
messages ++ [%{
type: "location",
title: title,
address: address,
latitude: latitude,
longitude: longitude
}]
end
def sticker(messages \\ [],
%{package_id: package_id, sticker_id: sticker_id}) do
messages ++ [%{
type: "sticker",
packageId: package_id,
stickerId: sticker_id
}]
end
def imagemap(messages \\ [],
%{base_url: base_url, alt_text: alt_text,
base_size: %{height: base_height, width: base_width},
actions: actions})
when is_list(actions) do
messages ++ [%{
type: "imagemap",
baseUrl: base_url,
altText: alt_text,
baseSize: %{
height: base_height,
width: base_width
},
actions: parse_imagemap_actions(actions)
}]
end
defp parse_imagemap_actions(actions) do
actions
|> Enum.map(fn %{type: type, link_url: link_url,
area: %{x: x, y: y, width: width, height: height}} ->
%{type: type, linkUrl: link_url,
area: %{x: x, y: y, width: width, height: height}}
end)
end
defmodule Template do
def button(alt_text, content = %{image: _, title: _, text: _, actions: _}) do
button([], alt_text, content)
end
def button(messages, alt_text, %{image: image, title: title, text: text, actions: actions}) do
template(messages, alt_text, %{
type: "buttons",
thumbnailImageUrl: image,
title: title,
text: text,
actions: actions
})
end
def confirm(alt_text, content = %{text: _, actions: _}) do
confirm([], alt_text, content)
end
def confirm(messages, alt_text, %{text: text, actions: actions}) do
template(messages, alt_text, %{
type: "confirm",
text: text,
actions: actions
})
end
defp template(messages, alt_text, temp) do
messages ++ [%{
type: "template",
altText: alt_text,
template: temp
}]
end
end
end