Packages
messenger_bot
1.0.0-beta5
1.3.0
1.2.0
retired
1.1.0
retired
1.0.0
retired
1.0.0-rc.8
retired
1.0.0-rc.7
retired
1.0.0-rc.6
retired
1.0.0-rc.5
retired
1.0.0-rc.4
retired
1.0.0-rc.3
retired
1.0.0-rc.2
retired
1.0.0-rc.1
retired
1.0.0-beta9
retired
1.0.0-beta8
retired
1.0.0-beta7
retired
1.0.0-beta6
retired
1.0.0-beta5
retired
1.0.0-beta4
retired
1.0.0-beta3
retired
1.0.0-beta2
retired
1.0.0-beta10
retired
1.0.0-beta1
retired
0.9.2
retired
0.9.1
retired
0.9.0
retired
0.8.2
retired
0.8.1
retired
0.8.0
retired
0.7.3
retired
0.7.2
retired
0.7.1
retired
0.7.0
retired
0.6.0
retired
0.5.2
retired
0.5.1
retired
0.5.0
retired
0.4.0
retired
0.3.0
retired
0.2.1
retired
0.2.0
retired
0.1.0
retired
Unofficial Facebook Messenger Platform chatbot client and webhook handler
Retired package: Deprecated
Current section
Files
Jump to
Current section
Files
lib/messenger_bot/components/message/attachment.ex
defmodule MessengerBot.Component.Message.Attachment do
@moduledoc """
Structure and type for attachment
"""
alias MessengerBot.Component.Message.{
ButtonTemplatePayload,
GenericTemplatePayload,
ListTemplatePayload,
OpenGraphTemplatePayload
}
defstruct [:type, :payload]
@type t :: %__MODULE__{
type: String.t(),
payload:
ButtonTemplatePayload.t()
| GenericTemplatePayload.t()
| ListTemplatePayload.t()
| Map.t()
}
@spec button_template(ButtonTemplatePayload.t()) :: __MODULE__.t()
def button_template(%ButtonTemplatePayload{} = button_template_payload) do
%__MODULE__{type: "template", payload: button_template_payload}
end
@spec generic_template(GenericTemplatePayload.t()) :: __MODULE__.t()
def generic_template(%GenericTemplatePayload{} = generic_template_payload) do
%__MODULE__{type: "template", payload: generic_template_payload}
end
@spec open_graph_template(OpenGraphTemplatePayload.t()) :: __MODULE__.t()
def open_graph_template(
%OpenGraphTemplatePayload{} = open_graph_template_payload
) do
%__MODULE__{type: "template", payload: open_graph_template_payload}
end
@spec list_template(ListTemplatePayload.t()) :: __MODULE__.t()
def list_template(%ListTemplatePayload{} = list_template_payload) do
%__MODULE__{type: "template", payload: list_template_payload}
end
@spec audio_attachment(String.t()) :: __MODULE__.t()
def audio_attachment(url) do
%__MODULE__{type: "audio", payload: %{url: url}}
end
@spec file_attachment(String.t()) :: __MODULE__.t()
def file_attachment(url) do
%__MODULE__{type: "file", payload: %{url: url}}
end
@spec image_attachment(String.t()) :: __MODULE__.t()
def image_attachment(url) do
%__MODULE__{type: "image", payload: %{url: url}}
end
@spec video_attachment(String.t()) :: __MODULE__.t()
def video_attachment(url) do
%__MODULE__{type: "video", payload: %{url: url}}
end
end