Diferente do mostrado na aula o meu retorno traz também os dados do usuário (inclusive a senha).
O que pode ser feito para não retornar
[{ "nomeProduto": "XXXXXXXXX", "valorNegociado": null, "dataEntrega": null, "urlProduto": "https://www.xxxxxxxx", "urlImagem": "https://xxxxxxxxxxxxx", "descricao": "xxxxxxxxxx", "status": "AGUARDANDO", "user": { "username": "Joao", "password": "$2a$10$zpxx/kR8Z4BeS0Oan5ZUkO7PbY/kVowKLByDe7uy40zvOFqTcdyOK", "enabled": true } }]
PedidosRest
package br.com.alura.mvc.mudi.api;
import br.com.alura.mvc.mudi.model.Pedido;
import br.com.alura.mvc.mudi.model.StatusPedido;
import br.com.alura.mvc.mudi.repository.PedidoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/api/pedidos")
public class PedidosRest {
@Autowired
private PedidoRepository pedidoRepository;
@GetMapping("aguardando")
public List<Pedido> getPedidosAguardandoOfertas(){
Sort sort = Sort.by("id").descending();
PageRequest paginacao = PageRequest.of(0, 10, sort);
return pedidoRepository.findByStatus(StatusPedido.AGUARDANDO, paginacao);
}
}
PedidoRepository
import br.com.alura.mvc.mudi.model.Pedido;
import br.com.alura.mvc.mudi.model.StatusPedido;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface PedidoRepository extends JpaRepository<Pedido, Long> {
@Cacheable("pedidos")
List<Pedido> findByStatus(StatusPedido statusPedido, Pageable sort);
@Query("select p from Pedido p join p.user u where u.username = :username")
List<Pedido> findAllByUsuario(@Param("username")String username);
@Query("select p from Pedido p join p.user u where p.status = :status and u.username = :username")
List<Pedido> findByStatusAndUser(StatusPedido status, @Param("username")String username);
}