Bacen.STA.ProtocolSerializer (Bacen STA v0.1.0)

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(protocol)

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)
{:Parametros,
  [
    {:IdentificadorDocumento, ['ACCS001']},
    {:Hash, ['053c29ae8b823df65f5bff084f410ca70530c30112bc7590518fe421f4421443']},
    {:Tamanho, ['908']},
    {:NomeArquivo, ['202111172051.xml']},
    {:Observacao, ['test']},
    {:Destinatarios,
     [
       Destinatario: [
         Unidade: ['Unity001'],
         Dependencia: ['Dependency001'],
         Operador: ['Operator001']
       ]
     ]}
  ]}

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)
{:Parametros,
  [
    {:IdentificadorDocumento, ['ACCS001']},
    {:Hash, ['053c29ae8b823df65f5bff084f410ca70530c30112bc7590518fe421f4421443']},
    {:Tamanho, ['908']},
    {:NomeArquivo, ['202111172051.xml']},
    {:Observacao, []},
    {:Destinatarios,
     [
       Destinatario: [
         Unidade: ['Unity001'],
         Dependencia: ['Dependency001'],
         Operador: ['Operator001']
       ]
     ]}
  ]}

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)
{:Parametros,
  [
    {:IdentificadorDocumento, ['ACCS001']},
    {:Hash, ['053c29ae8b823df65f5bff084f410ca70530c30112bc7590518fe421f4421443']},
    {:Tamanho, ['908']},
    {:NomeArquivo, ['202111172051.xml']},
    {:Observacao, []},
    {:Destinatarios, []}
  ]}