defprotocol Mobilizon.Service.Metadata do
  @doc """
  Build tags
  """
  def build_tags(entity)
end

defmodule Mobilizon.Service.MetadataUtils do
  @moduledoc """
  Tools to convert tags to string
  """
  alias Phoenix.HTML

  def stringify_tags(tags) do
    Enum.reduce(tags, "", &stringify_tag/2)
  end

  defp stringify_tag(tag, acc) when is_tuple(tag), do: acc <> HTML.safe_to_string(tag)
  defp stringify_tag(tag, acc) when is_binary(tag), do: acc <> tag
end