defmodule LineMessage.Message do def text(messages \\ [], content) do messages ++ [Map.put(content, :type, "text")] end def image(messages \\ [], content) do messages ++ [Map.put(content, :type, "image")] end def video(messages \\ [], content) do messages ++ [Map.put(content, :type, "video")] end def audio(messages \\ [], content) do messages ++ [Map.put(content, :type, "audio")] end def location(messages \\ [], content) do messages ++ [Map.put(content, :type, "location")] end def sticker(messages \\ [], content) do messages ++ [Map.put(content, :type, "sticker")] end def imagemap(messages \\ [], content) do messages ++ [Map.put(content, :type, "imagemap")] end def buttons(messages \\ [], alt_text, content) do messages ++ [%{type: "template", altText: alt_text, template: Map.put(content, :type, "buttons")}] end def confirm(messages \\ [], alt_text, content) do messages ++ [%{type: "template", altText: alt_text, template: Map.put(content, :type, "confirm")}] end def carousel(messages \\ [], alt_text, content) do messages ++ [%{type: "template", altText: alt_text, template: Map.put(content, :type, "carousel")}] end end