Skip to content

Instantly share code, notes, and snippets.

@asouza
Last active December 10, 2019 00:37
Show Gist options
  • Save asouza/f3467a5b51e29fdba5baf84214c2bd6a to your computer and use it in GitHub Desktop.
Save asouza/f3467a5b51e29fdba5baf84214c2bd6a to your computer and use it in GitHub Desktop.
@RestController
public class TeamController {
@Autowired
private FormFlow formFlow;
@PostMapping(...)
public void save(@Valid NewTeamForm newTeamForm){
formFlow.transform(newTeamForm).save().andThen(savedObject -> {
System.out.println("executando codigo sincrono"+domainObject);
});
}
}
@asouza
Copy link
Author

asouza commented Dec 10, 2019

Para vários endpoints que crio, tenho um fluxo de trabalho muito parecido.

  • Recebo os dados da requisição
  • Faço a validação
  • Crio um objeto de domínio em função dados
  • Uso o repository do Spring Data JPA para salvar o objeto
  • Posso ou não executar uma lógica em função disso
  • Posso ou não retornar um json para o cliente

A classe FormFlow abstrai esse trabalho aí que se repete demais na minha vida. Ela também pode abstrair remoções, atualizações etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment