Current section
Files
Jump to
Current section
Files
lib/line-message/message.ex
defmodule LineMessage.Message do
def text(txt), do: text([], txt)
def text(messages, txt) do
messages ++ [%{
type: "text",
text: txt
}]
end
def image(origin_url, preview_url), do: image([], origin_url, preview_url)
def image(messages, origin_url, preview_url) do
messages ++ [%{
type: "image",
originContentUrl: origin_url,
previewImageUrl: preview_url
}]
end
def video(origin_url, preview_url), do: video([], origin_url, preview_url)
def video(messages, origin_url, preview_url) do
messages ++ [%{
type: "video",
originContentUrl: origin_url,
previewImageUrl: preview_url
}]
end
def audio(origin_url, duration), do: image([], origin_url, duration)
def audio(messages, origin_url, duration) do
messages ++ [%{
type: "audio",
originContentUrl: origin_url,
duration: duration
}]
end
def location(title, address, latitude, longitude) do
location([], title, address, latitude, longitude)
end
def location(messages, title, address, latitude, longitude) do
messages ++ [%{
type: "location",
title: title,
address: address,
latitude: latitude,
longitude: longitude
}]
end
def sticker(package_id, sticker_id), do: sticker([], package_id, sticker_id)
def sticker(messages, package_id, sticker_id) do
messages ++ [%{
type: "sticker",
packageId: package_id,
stickerId: sticker_id
}]
end
def imagemap(alt_text, base_content = %{url: _, height: _, width: _}, actions) do
imagemap([], alt_text, base_content, actions)
end
def imagemap(messages, alt_text, %{url: url, height: base_height, width: base_width}, actions)
when is_list(actions) do
messages ++ [%{
type: "imagemap",
baseUrl: url,
altText: alt_text,
baseSize: %{
height: base_height,
width: base_width
},
actions: actions
}]
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