luisquike
5/4/2018 - 2:31 PM

XML builder

Use xml_builder to make an example for generate a XML file

# Doc
# https://hexdocs.pm/xml_builder/XmlBuilder.html#content

# Deps
{:xml_builder, "~> 2.0.0"}

# Raw in HTML
<%= emitter(@conn, @params["emitter"]) %>

# Helper Method
defp emitter(conn, params) do
  # Example
  # {:cfdiEmisor, %{id: 12345}, [{:first, nil, "Josh"}, {:last, nil, "Nussbaum"}]} |> XmlBuilder.generate

  emmiter = params
  |> Map.put(:Rfc, escape_value(conn.assigns.current_client.rfc))
  |> Map.put(:Nombre, escape_value(conn.assigns.current_client.business_name))

  IO.inspect emmiter
  IO.inspect node_fields(Bemus.CFDI.Emitter.changeset(%Bemus.CFDI.Emitter{}), params)
  # <cfdi:Emisor Rfc="<%= escape_value(@conn.assigns.current_client.rfc) %>" Nombre="<%= escape_value(@conn.assigns.current_client.business_name) %>" <%= node_fields(Bemus.CFDI.Emitter.changeset(%Bemus.CFDI.Emitter{}), @params) %> />
  {:cfdiEmisor, emmiter, []} |> XmlBuilder.generate
end