Skip to content

Commit

Permalink
Merge pull request #23 from Joaquimborges/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
lexscruz committed Oct 31, 2021
2 parents db0246f + 23bba97 commit 997022b
Show file tree
Hide file tree
Showing 15 changed files with 72 additions and 116 deletions.
75 changes: 18 additions & 57 deletions src/main/java/com/bootcamp_w3_g3/controller/ProdutoController.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,102 +19,63 @@
*/

@RestController
@RequestMapping(value="/produtos")
@RequestMapping(value="produtos/")
@Getter
public class ProdutoController {


private ProdutoService produtoService;
private ProdutoForm produtoForm;
private ProdutoDTO produtoDTO;


@Autowired
private ProdutoController(){}

private ProdutoController(ProdutoService produtoService, ProdutoForm produtoForm, ProdutoDTO produtoDTO){
this.produtoService = produtoService;
this.produtoForm = produtoForm;
this.produtoDTO = produtoDTO;
}
private ProdutoService produtoService;

/**
* Create do CRUD
* @param produtoForm
* @return ProdutoDTO
*/
@PostMapping(value = "/cadastra")
public ResponseEntity<ProdutoDTO> cadastrar(@RequestBody ProdutoForm produtoForm)
{
return new ResponseEntity<>
(
produtoDTO.convertEmProdutoDTO
(
produtoService.salvar
(
produtoForm.convert()
)
), HttpStatus.CREATED
);
public ResponseEntity<ProdutoDTO> cadastrar(@RequestBody ProdutoForm produtoForm) {
Produto produto = produtoService.salvar(produtoForm.convert());
return new ResponseEntity<>(ProdutoDTO.convertEmProdutoDTO(produto), HttpStatus.CREATED);
}

/**
* Read do CRUD
* @param cod_prod
* @return produtoDTO
*/
@GetMapping("/obter")
public ResponseEntity<ProdutoDTO> obter(@RequestParam Integer cod_prod)
@GetMapping("/obter/{cod}")
public ResponseEntity<ProdutoDTO> obter(@PathVariable Integer cod)
{
return new ResponseEntity<>
(
produtoDTO.convertEmProdutoDTO
(
produtoService.obter(cod_prod)
), HttpStatus.OK
);
Produto produto = produtoService.obter(cod);
return new ResponseEntity<>(ProdutoDTO.convertEmProdutoDTO(produto), HttpStatus.OK);
}

/**
* Put do CRUD
* @param cod_prod
* @param produto
* @return Produtodto
*/
@PutMapping("/alterar")
public ResponseEntity<ProdutoDTO> alterar(@RequestParam Integer cod_prod, ProdutoDTO produto)
public ResponseEntity<ProdutoDTO> alterar(@RequestBody ProdutoForm produtoForm)
{
Produto editedProduto = (produtoService.obter(cod_prod));

editedProduto.setPreco(produto.getPreco());
editedProduto.setNome(produto.getNome());
editedProduto.setTemperaturaIndicada(produto.getTemperaturaIndicada());
editedProduto.setCodigoDoProduto(produto.getCodigoDoProduto());

return new ResponseEntity<>
(
produtoDTO.convertEmProdutoDTO(editedProduto), HttpStatus.OK
);
Produto produto = produtoService.atualizar(produtoForm.convert());
return new ResponseEntity<>(ProdutoDTO.convertEmProdutoDTO(produto), HttpStatus.OK);
}

/**
* Delete do CRUD
* @param cod_prod
* @return produtoDTO
*/
@DeleteMapping(value="/deletar")
public void cadastro(@RequestParam Integer cod_prod)
@DeleteMapping(value="/deletar/{cod}")
public Produto apagar(@PathVariable Long cod)
{
produtoService.apagar(cod_prod);
return produtoService.apagar(cod);
}

/**
* GET de todos os Produtos
* @return List<ProdutoDTO>
*/
@GetMapping("/listar")
public List<ProdutoDTO> listar()
public ResponseEntity<List<ProdutoDTO>> listar()
{
return produtoDTO.convert(produtoService.listar());
List<Produto> produtos = produtoService.listar();
return new ResponseEntity<>(ProdutoDTO.convert(produtos), HttpStatus.OK);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.NoSuchElementException;

@RestController
@RequestMapping("representante")
Expand Down Expand Up @@ -42,9 +43,13 @@ public ResponseEntity<RepresentanteDTO> alterar(@RequestBody RepresentanteForm r
return new ResponseEntity<>(RepresentanteDTO.converteEmRepresentanteDTO(representante), HttpStatus.OK);
}

@DeleteMapping("/apagar/{codigo}")
public ResponseEntity<RepresentanteDTO> apagar(@PathVariable String codigo){
Representante representante = representanteService.apagar(codigo);
return new ResponseEntity<>(RepresentanteDTO.converteEmRepresentanteDTO(representante), HttpStatus.ACCEPTED);
@DeleteMapping(value = "/delete/{id}")
public ResponseEntity<String> apagar(@PathVariable Long id) {
try{
representanteService.apagar(id);
} catch (NoSuchElementException e) {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
return new ResponseEntity<>("Representante deletado com sucesso", HttpStatus.OK);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.bootcamp_w3_g3.model.dtos.request;

import com.bootcamp_w3_g3.model.entity.Produto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDate;
Expand All @@ -16,25 +18,15 @@
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ProdutoForm {

private Integer codigoDoProduto;
private String nome;
private BigDecimal preco;
private LocalDate dataDeValidade;
private Double temperaturaIndicada;

public ProdutoForm() {
}

public ProdutoForm(Integer codigoDoProduto, String nome, BigDecimal preco, LocalDate dataDeValidadae, Double temperaturaIndicada) {
this.codigoDoProduto = codigoDoProduto;
this.nome = nome;
this.preco = preco;
this.dataDeValidade = dataDeValidadae;
this.temperaturaIndicada = temperaturaIndicada;
}

/**
*
* Método que auxlia a injeção de um produto diretamente.
Expand All @@ -46,7 +38,6 @@ public Produto convert(){
.codigoDoProduto(codigoDoProduto)
.nome(nome)
.preco(preco)
.dataDeValidadae(dataDeValidade)
.temperaturaIndicada(temperaturaIndicada).build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,14 @@ public class RepresentanteForm {
public RepresentanteForm() {
}

public RepresentanteForm(String nome, String sobrenome, String cpf, String telefone, String endereco) {
this.nome = nome;
this.sobrenome = sobrenome;
this.cpf = cpf;
this.telefone = telefone;
this.endereco = endereco;
}

/**
* Método criado sem reccebimento sem parametro, e retornando apenas um nono Representante.
*
* @return representante
*/
public Representante converte(){
return Representante.builder()
.codigo(this.codigo)
.nome(this.nome)
.sobrenome(this.sobrenome)
.cpf(this.cpf)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,15 @@ public class ProdutoDTO {
private Integer codigoDoProduto;
private String nome;
private BigDecimal preco;
private LocalDate dataDeValidadae;
private Double temperaturaIndicada;

public ProdutoDTO() {
}

public ProdutoDTO(Integer codigoDoProduto, String nome, BigDecimal preco, LocalDate dataDeValidadae, Double temperaturaIndicada) {
public ProdutoDTO(Integer codigoDoProduto, String nome, BigDecimal preco, Double temperaturaIndicada) {
this.codigoDoProduto = codigoDoProduto;
this.nome = nome;
this.preco = preco;
this.dataDeValidadae = dataDeValidadae;
this.temperaturaIndicada = temperaturaIndicada;

}
Expand All @@ -41,12 +39,11 @@ public ProdutoDTO(Integer codigoDoProduto, String nome, BigDecimal preco, LocalD
* @param produto
* @return produtoDTO9
*/
public ProdutoDTO convertEmProdutoDTO(Produto produto){
public static ProdutoDTO convertEmProdutoDTO(Produto produto){

return new ProdutoDTO(produto.getCodigoDoProduto(),
produto.getNome(),
produto.getPreco(),
produto.getDataDeValidadae(),
produto.getTemperaturaIndicada());
}

Expand All @@ -57,15 +54,14 @@ public ProdutoDTO convertEmProdutoDTO(Produto produto){
* @param produtoList
* @return produtoDTOList
*/
public List<ProdutoDTO> convert(List<Produto> produtoList){
public static List<ProdutoDTO> convert(List<Produto> produtoList){
List<ProdutoDTO> produtoDTOList = new ArrayList<>();

for (Produto produto : produtoList){
produtoDTOList.add(
new ProdutoDTO(produto.getCodigoDoProduto(),
produto.getNome(),
produto.getPreco(),
produto.getDataDeValidadae(),
produto.getTemperaturaIndicada()));
}
return produtoDTOList;
Expand Down
1 change: 0 additions & 1 deletion src/main/java/com/bootcamp_w3_g3/model/entity/Produto.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ public class Produto {
private Integer codigoDoProduto;
private String nome;
private BigDecimal preco;
private LocalDate dataDeValidadae;
private Double temperaturaIndicada;


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,16 @@
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class Representante extends Pessoa{
public class Representante {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String codigo;

private String nome;
private String sobrenome;
private String cpf;
private String telefone;
private String endereco;

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import javax.persistence.criteria.CriteriaBuilder;

/**
*
* @author Alex Cruz
Expand All @@ -14,9 +16,8 @@ public interface ProdutoRepository extends JpaRepository<Produto, Long>{

Produto findByCodigoDoProduto(Integer codigo);

Produto deleteByCodigoDoProduto(Integer codigo);
Produto deleteProdutosByCodigoDoProduto(Integer codigo);

Produto getByCodigoDoProduto(Integer codigo);
}


11 changes: 9 additions & 2 deletions src/main/java/com/bootcamp_w3_g3/service/ProdutoService.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.bootcamp_w3_g3.service;

import com.bootcamp_w3_g3.advisor.EntityNotFoundException;
import com.bootcamp_w3_g3.model.entity.Produto;
import com.bootcamp_w3_g3.repository.ProdutoRepository;
import org.springframework.beans.factory.annotation.Autowired;
Expand Down Expand Up @@ -36,12 +37,18 @@ public List<Produto> listar() {
}

public Produto atualizar(Produto produto) {
Produto produtoEdited = produtoRepository.getByCodigoDoProduto(produto.getCodigoDoProduto());
Produto produtoEdited = produtoRepository.findByCodigoDoProduto(produto.getCodigoDoProduto());
produtoEdited.setPreco(produto.getPreco());
produtoEdited.setNome(produto.getNome());
produtoEdited.setTemperaturaIndicada(produto.getTemperaturaIndicada());

return produtoRepository.save(produtoEdited);
}

public Produto apagar(Integer codigo) {return produtoRepository.deleteByCodigoDoProduto(codigo);}
public Produto apagar(Long id) {
produtoRepository.deleteById(id);
return null;

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ public Representante atualizar(Representante representante) {
return representanteRepository.save(representanteEdited);
}

public Representante apagar(String codigo) {
return representanteRepository.deleteByCodigo(codigo);
public Representante apagar(Long id){
representanteRepository.deleteById(id);
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ private Lote alterarDadosDoPayloadValido(){
.codigoDoProduto(123)
.nome("carne")
.preco(new BigDecimal(60))
.dataDeValidadae(LocalDate.now()).build();
.build();

return Lote.builder()
.id(1L)
Expand All @@ -75,7 +75,7 @@ private Lote criarPayloadValido(){
.codigoDoProduto(123)
.nome("carne")
.preco(new BigDecimal(60))
.dataDeValidadae(LocalDate.now()).build();
.build();

return Lote.builder()
.id(1L)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,10 @@ private ProdutoForm payloadProduto(ProdutoForm produtoForm) {
Produto novoProduto = Produto.builder()
.codigoDoProduto(produtoForm.getCodigoDoProduto())
.nome(produtoForm.getNome())
.dataDeValidadae(produtoForm.getDataDeValidade()).build();
.build();
this.produtoService.salvar(novoProduto);
return ProdutoForm.builder()
.codigoDoProduto(novoProduto.getCodigoDoProduto())
.dataDeValidade(LocalDate.of(2021, 9, 2))
.temperaturaIndicada(null)
.preco(new BigDecimal(60)).build();
}
Expand Down Expand Up @@ -239,7 +238,6 @@ public void deveAlterarUmaOrdemDeEntrada() throws Exception {
Produto produto = this.produtoService.salvar(
Produto.builder()
.codigoDoProduto(222)
.dataDeValidadae(LocalDate.now())
.preco(new BigDecimal(60))
.nome("picanha")
.temperaturaIndicada(12.1)
Expand Down
Loading

0 comments on commit 997022b

Please sign in to comment.