EntregarDeclaracaoComDasResponse.fromResponses constructor

EntregarDeclaracaoComDasResponse.fromResponses({
  1. required EntregarDeclaracaoResponse declaracaoResponse,
  2. required GerarDasResponse dasResponse,
})

Cria resposta quando ambas operações foram bem-sucedidas

declaracaoResponse Resposta de entregarDeclaracao dasResponse Resposta de gerarDas

Implementation

factory EntregarDeclaracaoComDasResponse.fromResponses({
  required EntregarDeclaracaoResponse declaracaoResponse,
  required GerarDasResponse dasResponse,
}) {
  // Combinar mensagens de ambas as respostas
  final mensagensCombinadas = <Mensagem>[
    ...declaracaoResponse.mensagens,
    // Converter mensagens de GerarDasResponse para o tipo Mensagem de EntregarDeclaracaoResponse
    ...dasResponse.mensagens.map(
      (m) => Mensagem(codigo: m.codigo, texto: m.texto),
    ),
  ];

  // Status é 200 apenas se ambos foram 200
  final statusCombinado =
      declaracaoResponse.status == 200 && dasResponse.status == 200
      ? 200
      : 500;

  return EntregarDeclaracaoComDasResponse(
    status: statusCombinado,
    mensagens: mensagensCombinadas,
    dadosDeclaracao: declaracaoResponse.dados,
    dadosDas: dasResponse.dados,
  );
}