Bacen.STA.ProtocolSerializer (Bacen STA v0.1.1)
The Protocol message serializer.
Link to this section Summary
Functions
Serliazes a Protocol message schema into tuple-formatted XML.
Link to this section Functions
Link to this function
serialize(arg1)
Specs
serialize(Bacen.STA.Protocol.t()) :: {:ok, String.t()} | {:error, any()}
Serliazes a Protocol message schema into tuple-formatted XML.
Examples
iex> protocol = %Bacen.STA.Protocol{
iex> parameters: %Bacen.STA.Protocol.Parameters{
iex> file_name: "202111172051.xml",
iex> file_size: 908,
iex> file_type: "ACCS001",
iex> hash: "053c29ae8b823df65f5bff084f410ca70530c30112bc7590518fe421f4421443",
iex> observation: "test",
iex> senders: %Bacen.STA.Protocol.Parameters.Senders{
iex> sender: [
iex> %Bacen.STA.Protocol.Parameters.Senders.Sender{
iex> dependency: "Dependency001",
iex> operator: "Operator001",
iex> unity: "Unity001"
iex> }
iex> ]
iex> }
iex> }
iex> }
iex> Bacen.STA.ProtocolSerializer.serialize(protocol)
{:ok, ~s(<?xml version="1.0"?><Parametros><IdentificadorDocumento>ACCS001</IdentificadorDocumento><Hash>053c29ae8b823df65f5bff084f410ca70530c30112bc7590518fe421f4421443</Hash><Tamanho>908</Tamanho><NomeArquivo>202111172051.xml</NomeArquivo><Observacao>test</Observacao><Destinatarios><Destinatario><Unidade>Unity001</Unidade><Dependencia>Dependency001</Dependencia><Operador>Operator001</Operador></Destinatario></Destinatarios></Parametros>)}
iex> protocol = %Bacen.STA.Protocol{
iex> parameters: %Bacen.STA.Protocol.Parameters{
iex> file_name: "202111172051.xml",
iex> file_size: 908,
iex> file_type: "ACCS001",
iex> hash: "053c29ae8b823df65f5bff084f410ca70530c30112bc7590518fe421f4421443",
iex> observation: nil,
iex> senders: %Bacen.STA.Protocol.Parameters.Senders{
iex> sender: [
iex> %Bacen.STA.Protocol.Parameters.Senders.Sender{
iex> dependency: "Dependency001",
iex> operator: "Operator001",
iex> unity: "Unity001"
iex> }
iex> ]
iex> }
iex> }
iex> }
iex> Bacen.STA.ProtocolSerializer.serialize(protocol)
{:ok, ~s(<?xml version="1.0"?><Parametros><IdentificadorDocumento>ACCS001</IdentificadorDocumento><Hash>053c29ae8b823df65f5bff084f410ca70530c30112bc7590518fe421f4421443</Hash><Tamanho>908</Tamanho><NomeArquivo>202111172051.xml</NomeArquivo><Observacao/><Destinatarios><Destinatario><Unidade>Unity001</Unidade><Dependencia>Dependency001</Dependencia><Operador>Operator001</Operador></Destinatario></Destinatarios></Parametros>)}
iex> protocol = %Bacen.STA.Protocol{
iex> parameters: %Bacen.STA.Protocol.Parameters{
iex> file_name: "202111172051.xml",
iex> file_size: 908,
iex> file_type: "ACCS001",
iex> hash: "053c29ae8b823df65f5bff084f410ca70530c30112bc7590518fe421f4421443",
iex> observation: nil,
iex> senders: %Bacen.STA.Protocol.Parameters.Senders{sender: []}
iex> }
iex> }
iex> Bacen.STA.ProtocolSerializer.serialize(protocol)
{:ok, ~s(<?xml version="1.0"?><Parametros><IdentificadorDocumento>ACCS001</IdentificadorDocumento><Hash>053c29ae8b823df65f5bff084f410ca70530c30112bc7590518fe421f4421443</Hash><Tamanho>908</Tamanho><NomeArquivo>202111172051.xml</NomeArquivo><Observacao/><Destinatarios/></Parametros>)}
iex> protocol = %Bacen.STA.Protocol{parameters: %Bacen.STA.Protocol.Parameters{}}
iex> Bacen.STA.ProtocolSerializer.serialize(protocol)
{:error, :invalid_parameters}
iex> protocol = %Bacen.STA.Protocol{}
iex> Bacen.STA.ProtocolSerializer.serialize(protocol)
{:error, :invalid_protocol}