findById
@Transactional(readOnly = true)
public OrderDTO findById(Long id) {
Order order = repository.findById(id).orElseThrow(
() -> new ResourceNotFoundException("Recurso não encontrado"));
authService.validateSelfOrAdmin(order.getClient().getId());
return new OrderDTO(order);
}
Temos duas situações. O pedido pode existir ou não.
Uma outra coisa: esse método usa o validateSelfOrAdmin para validar o acesso aos pedidos. Ou seja, se for admin, pode acessar todos os pedidos, se for client somente os próprios pedidos.
Precisamos criar um ID de order que existe e outro que não existe.
Criar também um Order e um OrderDTO, afinal é o que o metodo retorna (criar um OrderFactory).
Como precisamos validar o acesso aos pedidos, criaremos também os 03 (três) tipos de usuários.
Atualizado