Packages

An Elixir Slack client and bot.

Current section

Files

Jump to
slacks lib slack blocks section.ex
Raw

lib/slack/blocks/section.ex

defmodule Slack.SectionBlock do
defstruct [
:id,
:text,
:accessory,
fields: [],
elements: []
]
defimpl Jason.Encoder, for: __MODULE__ do
def encode(value, opts) do
%{
type: "section",
block_id: value.id,
text: %{
type: "mrkdwn",
text: value.text
},
accessory: value.accessory,
fields: value.fields,
elements: value.elements
}
|> Enum.reject(fn {_, v} -> is_nil(v) or v == [] end)
|> Map.new()
|> Jason.Encode.map(opts)
end
end
end