asouza / pilares-design-codigo

425 stars 64 forks source link

Exemplo demonstrado não compilaria. #2

Open masyaf opened 4 years ago

masyaf commented 4 years ago

Fala alberto, beleza?!

Espero que tenha entendido a ideia do artigo, porém o que me deixou confuso é nesta parte que você retira as dependências do controller, porém mantem esse trecho de código` dataBinder.addValidators(new VerificaSeCompraJaEstaConcluidaValidator(compraRepository)); Nesse cenário, o compraRepository foi extraído do Controller para utilização do EntityManager. Fazendo com que o exemplo proposto não compilasse.

@RestController public class RetornoPagamentoPagSeguroController {

@PersistenceContext
private EntityManager manager;

@Autowired
private ApplicationEventPublisher applicationEventPublisher;

@InitBinder
public void initBinder(WebDataBinder dataBinder) {
    dataBinder.addValidators(new VerificaSeCompraJaEstaConcluidaValidator(compraRepository));
}

@PostMapping(value = {"/api/retorno-pagamento/{compraId}/pagseguro"})
@Transactional
public void processaRetorno(@PathVariable("compraId") Long compraId, @Valid RetornoPagamentoPagSeguroRequest retornoPagamentoPagSeguroRequest, UriComponentsBuilder uriComponentsBuilder) {

    Compra compra = manager.find(compraId,Compra.class);

    Pagamento pagamento = retornoPagamentoPagSeguroRequest.criaPagamento(compra);
    manager.persist(pagamento);

    applicationEventPublisher.publishEvent(new NovoPagamentoEvent(this, pagamento, uriComponentsBuilder));
}

}`

masyaf commented 4 years ago

@asouza

asouza commented 4 years ago

Opa, obrigado pela colaboração!!! Acho que me perdi aqui no github, porque não estou achando a referência ao arquivo em si. Pode me apontar?

masyaf commented 4 years ago

Opa, Claro! https://github.com/asouza/pilares-design-codigo/blob/master/ddd-da-massa.md Na parte de controllers 100% coeso.