From d8f22612b2daa789b262f1d2b3d4ebfcff68e813 Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 09:31:55 -0300 Subject: [PATCH 01/78] add estacionamento and carro model --- pom.xml | 7 ++ .../br/com/hackathonfc/park/model/Carro.java | 87 +++++++++++++++++++ .../park/model/Estacionamento.java | 82 +++++++++++++++++ .../hackathonfc/park/model/TipoVeiculo.java | 8 ++ 4 files changed, 184 insertions(+) create mode 100644 src/main/java/br/com/hackathonfc/park/model/Carro.java create mode 100644 src/main/java/br/com/hackathonfc/park/model/Estacionamento.java create mode 100644 src/main/java/br/com/hackathonfc/park/model/TipoVeiculo.java diff --git a/pom.xml b/pom.xml index 3bf5eaf..0a03cb1 100644 --- a/pom.xml +++ b/pom.xml @@ -38,6 +38,13 @@ h2 runtime + + + org.springframework.boot + spring-boot-devtools + runtime + + org.springframework.boot spring-boot-starter-test diff --git a/src/main/java/br/com/hackathonfc/park/model/Carro.java b/src/main/java/br/com/hackathonfc/park/model/Carro.java new file mode 100644 index 0000000..7c39fab --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/model/Carro.java @@ -0,0 +1,87 @@ +package br.com.hackathonfc.park.model; + +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +public class Carro { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String marca; + private String cor; + private String placa; + @Enumerated(EnumType.STRING) + private TipoVeiculo veiculo; + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Carro other = (Carro) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + return true; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getMarca() { + return marca; + } + + public void setMarca(String marca) { + this.marca = marca; + } + + public String getCor() { + return cor; + } + + public void setCor(String cor) { + this.cor = cor; + } + + public String getPlaca() { + return placa; + } + + public void setPlaca(String placa) { + this.placa = placa; + } + + public TipoVeiculo getVeiculo() { + return veiculo; + } + + public void setVeiculo(TipoVeiculo veiculo) { + this.veiculo = veiculo; + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java new file mode 100644 index 0000000..007b7e8 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -0,0 +1,82 @@ +package br.com.hackathonfc.park.model; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +public class Estacionamento { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String nome; + private int cnpj; + private int telefone; + private int vagasMotos; + private int vagasCarros; + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Estacionamento other = (Estacionamento) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + return true; + } + + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public String getNome() { + return nome; + } + public void setNome(String nome) { + this.nome = nome; + } + public int getCnpj() { + return cnpj; + } + public void setCnpj(int cnpj) { + this.cnpj = cnpj; + } + public int getTelefone() { + return telefone; + } + public void setTelefone(int telefone) { + this.telefone = telefone; + } + public int getVagasMotos() { + return vagasMotos; + } + public void setVagasMotos(int vagasMotos) { + this.vagasMotos = vagasMotos; + } + public int getVagasCarros() { + return vagasCarros; + } + public void setVagasCarros(int vagasCarros) { + this.vagasCarros = vagasCarros; + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/model/TipoVeiculo.java b/src/main/java/br/com/hackathonfc/park/model/TipoVeiculo.java new file mode 100644 index 0000000..0e32258 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/model/TipoVeiculo.java @@ -0,0 +1,8 @@ +package br.com.hackathonfc.park.model; + +public enum TipoVeiculo { + + MOTO, + CARRO; + +} From c353a4666944ec7180f019fea60c9cc7814419cd Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 09:37:35 -0300 Subject: [PATCH 02/78] fix estacionamento and carro model --- .../park/controller/EstacionamentoController.java | 8 ++++++++ .../java/br/com/hackathonfc/park/model/Carro.java | 13 +++++++++++++ .../com/hackathonfc/park/model/Estacionamento.java | 14 ++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java new file mode 100644 index 0000000..201f1e3 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -0,0 +1,8 @@ +package br.com.hackathonfc.park.controller; + +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class EstacionamentoController { + +} diff --git a/src/main/java/br/com/hackathonfc/park/model/Carro.java b/src/main/java/br/com/hackathonfc/park/model/Carro.java index 7c39fab..bb12b77 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Carro.java +++ b/src/main/java/br/com/hackathonfc/park/model/Carro.java @@ -19,6 +19,19 @@ public class Carro { @Enumerated(EnumType.STRING) private TipoVeiculo veiculo; + public Carro() { + super(); + } + + public Carro(Long id, String marca, String cor, String placa, TipoVeiculo veiculo) { + super(); + this.id = id; + this.marca = marca; + this.cor = cor; + this.placa = placa; + this.veiculo = veiculo; + } + @Override public int hashCode() { final int prime = 31; diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java index 007b7e8..79b27e5 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -17,6 +17,20 @@ public class Estacionamento { private int vagasMotos; private int vagasCarros; + public Estacionamento() { + super(); + } + + public Estacionamento(Long id, String nome, int cnpj, int telefone, int vagasMotos, int vagasCarros) { + super(); + this.id = id; + this.nome = nome; + this.cnpj = cnpj; + this.telefone = telefone; + this.vagasMotos = vagasMotos; + this.vagasCarros = vagasCarros; + } + @Override public int hashCode() { final int prime = 31; From 47784442d1500b57f8d05ea6737bac3bc64c02b1 Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 09:42:50 -0300 Subject: [PATCH 03/78] add vagaModel --- .../br/com/hackathonfc/park/model/Vaga.java | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/main/java/br/com/hackathonfc/park/model/Vaga.java diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java new file mode 100644 index 0000000..67a446c --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -0,0 +1,73 @@ +package br.com.hackathonfc.park.model; + +import java.time.LocalDateTime; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.OneToOne; + +@Entity +public class Vaga { + + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + private Estacionamento estacionamento; + + @OneToOne + private Carro carro; + + private LocalDateTime dataInicio; + + private LocalDateTime dataSaida; + + private boolean livre; + + public Vaga() { + + } + + public Vaga(Long id, Estacionamento estacionamento, Carro carro, LocalDateTime dataInicio, + LocalDateTime dataSaida, boolean livre) { + this.id = id; + this.estacionamento = estacionamento; + this.carro = carro; + this.dataInicio = dataInicio; + this.dataSaida = dataSaida; + this.livre = livre; + } + + public Long getId() { + return id; + } + + public Estacionamento getEstacionamento() { + return estacionamento; + } + + public Carro getCarro() { + return carro; + } + + public LocalDateTime getDataInicio() { + return dataInicio; + } + + public LocalDateTime getDataSaida() { + return dataSaida; + } + + public boolean isLivre() { + return livre; + } + + + + + + +} From ff26dbbf43462da3e164a23e402680189c30e40f Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 10:02:41 -0300 Subject: [PATCH 04/78] add repository --- .../controller/EstacionamentoController.java | 28 ++++++++++++++++++- .../repository/EstacionamentoRepository.java | 7 +++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 201f1e3..ca940b2 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -1,8 +1,34 @@ package br.com.hackathonfc.park.controller; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort.Direction; +import org.springframework.data.web.PageableDefault; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import br.com.hackathonfc.park.repository.*; +import br.com.alura.forum.controllers.dto.TopicoDto; +import br.com.alura.forum.model.Topico; +import br.com.hackathonfc.park.model.Estacionamento; @RestController public class EstacionamentoController { - + + @Autowired + private EstacionamentoRepository estacionamentoRepository; + + @GetMapping("/") + public Page listar(@RequestParam(required = false) String nomeCurso, + @PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ + + Page estacionamentos; + + estacionamentos = estacionamentoRepository.findAll(paginacao); + + return ; + } } diff --git a/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java b/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java new file mode 100644 index 0000000..29d35d8 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java @@ -0,0 +1,7 @@ +package br.com.hackathonfc.park.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface EstacionamentoRepository extends JpaRepository{ + +} From 97fd0fd5c4fd0d5ea1c22ae7d8c9300b03225f83 Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 10:20:05 -0300 Subject: [PATCH 05/78] add repository --- .../park/controller/EstacionamentoController.java | 10 ++-------- .../park/repository/EstacionamentoRepository.java | 4 +++- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index ca940b2..413ca75 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -1,18 +1,13 @@ package br.com.hackathonfc.park.controller; -import java.util.List; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.web.PageableDefault; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import br.com.hackathonfc.park.repository.*; -import br.com.alura.forum.controllers.dto.TopicoDto; -import br.com.alura.forum.model.Topico; import br.com.hackathonfc.park.model.Estacionamento; @RestController @@ -22,13 +17,12 @@ public class EstacionamentoController { private EstacionamentoRepository estacionamentoRepository; @GetMapping("/") - public Page listar(@RequestParam(required = false) String nomeCurso, - @PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ + public Page listar(@PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ Page estacionamentos; estacionamentos = estacionamentoRepository.findAll(paginacao); - return ; + return estacionamentos; } } diff --git a/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java b/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java index 29d35d8..97eb0dd 100644 --- a/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java +++ b/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java @@ -2,6 +2,8 @@ import org.springframework.data.jpa.repository.JpaRepository; -public interface EstacionamentoRepository extends JpaRepository{ +import br.com.hackathonfc.park.model.Estacionamento; + +public interface EstacionamentoRepository extends JpaRepository{ } From 57f4b348f6dbb8d5c7ce698f14fe8cc958cf250b Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 10:31:22 -0300 Subject: [PATCH 06/78] fix carro name and add vagas controller --- .../park/controller/VagasController.java | 25 ++++++++++ .../park/controller/dto/VagaDto.java | 47 +++++++++++++++++++ .../park/model/Estacionamento.java | 6 +++ .../br/com/hackathonfc/park/model/Vaga.java | 6 +-- .../park/model/{Carro.java => Veiculo.java} | 8 ++-- .../park/repository/VagaRepository.java | 9 ++++ 6 files changed, 94 insertions(+), 7 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/VagasController.java create mode 100644 src/main/java/br/com/hackathonfc/park/controller/dto/VagaDto.java rename src/main/java/br/com/hackathonfc/park/model/{Carro.java => Veiculo.java} (90%) create mode 100644 src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagasController.java b/src/main/java/br/com/hackathonfc/park/controller/VagasController.java new file mode 100644 index 0000000..3fada8a --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/VagasController.java @@ -0,0 +1,25 @@ +package br.com.hackathonfc.park.controller; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import br.com.hackathonfc.park.controller.dto.VagaDto; +import br.com.hackathonfc.park.model.Vaga; +import br.com.hackathonfc.park.repository.VagaRepository; + +@RestController +@RequestMapping("/vagas") +public class VagasController { + + @Autowired + private VagaRepository vagaRepository; + + public List lista() { + List vagas = vagaRepository.findAll(); + return VagaDto.converter(vagas;) + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/controller/dto/VagaDto.java b/src/main/java/br/com/hackathonfc/park/controller/dto/VagaDto.java new file mode 100644 index 0000000..0ea3063 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/dto/VagaDto.java @@ -0,0 +1,47 @@ +package br.com.hackathonfc.park.controller.dto; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.stream.Collectors; + +import br.com.hackathonfc.park.model.Vaga; + +public class VagaDto { + + private Long id; + + private LocalDateTime entrada; + + private LocalDateTime saida; + + private boolean livre; + + public VagaDto(Vaga vaga) { + super(); + this.id = vaga.getId(); + this.entrada = vaga.getDataInicio(); + this.saida = vaga.getDataSaida(); + this.livre = vaga.isLivre(); + } + + public static List converter(List vagas) { + return vagas.stream().map(VagaDto::new).collect(Collectors.toList()); + } + + public Long getId() { + return id; + } + + public LocalDateTime getEntrada() { + return entrada; + } + + public LocalDateTime getSaida() { + return saida; + } + + public boolean isLivre() { + return livre; + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java index 79b27e5..08bead4 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -1,9 +1,13 @@ package br.com.hackathonfc.park.model; +import java.util.ArrayList; +import java.util.List; + import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.persistence.OneToMany; @Entity public class Estacionamento { @@ -16,6 +20,8 @@ public class Estacionamento { private int telefone; private int vagasMotos; private int vagasCarros; + @OneToMany(mappedBy = "estacionamento") + private List vagas = new ArrayList<>(); public Estacionamento() { super(); diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index 67a446c..d8668df 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -19,7 +19,7 @@ public class Vaga { private Estacionamento estacionamento; @OneToOne - private Carro carro; + private Veiculo carro; private LocalDateTime dataInicio; @@ -31,7 +31,7 @@ public Vaga() { } - public Vaga(Long id, Estacionamento estacionamento, Carro carro, LocalDateTime dataInicio, + public Vaga(Long id, Estacionamento estacionamento, Veiculo carro, LocalDateTime dataInicio, LocalDateTime dataSaida, boolean livre) { this.id = id; this.estacionamento = estacionamento; @@ -49,7 +49,7 @@ public Estacionamento getEstacionamento() { return estacionamento; } - public Carro getCarro() { + public Veiculo getCarro() { return carro; } diff --git a/src/main/java/br/com/hackathonfc/park/model/Carro.java b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java similarity index 90% rename from src/main/java/br/com/hackathonfc/park/model/Carro.java rename to src/main/java/br/com/hackathonfc/park/model/Veiculo.java index bb12b77..5250a10 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Carro.java +++ b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java @@ -8,7 +8,7 @@ import javax.persistence.Id; @Entity -public class Carro { +public class Veiculo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -19,11 +19,11 @@ public class Carro { @Enumerated(EnumType.STRING) private TipoVeiculo veiculo; - public Carro() { + public Veiculo() { super(); } - public Carro(Long id, String marca, String cor, String placa, TipoVeiculo veiculo) { + public Veiculo(Long id, String marca, String cor, String placa, TipoVeiculo veiculo) { super(); this.id = id; this.marca = marca; @@ -48,7 +48,7 @@ public boolean equals(Object obj) { return false; if (getClass() != obj.getClass()) return false; - Carro other = (Carro) obj; + Veiculo other = (Veiculo) obj; if (id == null) { if (other.id != null) return false; diff --git a/src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java b/src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java new file mode 100644 index 0000000..c4aa047 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java @@ -0,0 +1,9 @@ +package br.com.hackathonfc.park.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import br.com.hackathonfc.park.model.Vaga; + +public interface VagaRepository extends JpaRepository { + +} From 28aea47ddc7f3fb543bed0a852d5c1c9826fecff Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 10:33:16 -0300 Subject: [PATCH 07/78] add properties --- .../park/controller/EstacionamentoController.java | 12 +++++++++++- src/main/resources/application.properties | 12 ++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 413ca75..cd97511 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -5,7 +5,9 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.web.PageableDefault; +import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import br.com.hackathonfc.park.repository.*; import br.com.hackathonfc.park.model.Estacionamento; @@ -16,7 +18,8 @@ public class EstacionamentoController { @Autowired private EstacionamentoRepository estacionamentoRepository; - @GetMapping("/") + @CrossOrigin + @GetMapping("/estacionamentos") public Page listar(@PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ Page estacionamentos; @@ -25,4 +28,11 @@ public Page listar(@PageableDefault(sort = "id", direction = Dir return estacionamentos; } + + @CrossOrigin + @PostMapping("/estacionamento") + public ResponseEntity cadastrar() { + + } + } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8b13789..fc720ac 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,13 @@ +# data source +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.url=jdbc:h2:mem:alura-forum +spring.datasource.username=sa +spring.datasource.password= +# jpa +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.hibernate.ddl-auto=update + +# h2 +spring.h2.console.enabled=true +spring.h2.console.path=/h2-console From f45e52dafa507bb8db9219020599c22aaeb33239 Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 10:54:08 -0300 Subject: [PATCH 08/78] fix estacionamento model --- .../park/controller/VagasController.java | 12 +++++- .../park/controller/VeiculoController.java | 14 +++++++ .../park/controller/dto/VeiculoDto.java | 37 ++++++++++++++++++ .../park/model/Estacionamento.java | 39 ++++++++++++++++++- 4 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java create mode 100644 src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagasController.java b/src/main/java/br/com/hackathonfc/park/controller/VagasController.java index 3fada8a..eba4a8f 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagasController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagasController.java @@ -3,10 +3,13 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import br.com.hackathonfc.park.controller.dto.VagaDto; +import br.com.hackathonfc.park.controller.dto.VeiculoDto; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.repository.VagaRepository; @@ -17,9 +20,16 @@ public class VagasController { @Autowired private VagaRepository vagaRepository; + @CrossOrigin + @GetMapping public List lista() { List vagas = vagaRepository.findAll(); - return VagaDto.converter(vagas;) + return VagaDto.converter(vagas); } + @CrossOrigin + @GetMapping("/{id}") + public VeiculoDto lista() { + + } } diff --git a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java new file mode 100644 index 0000000..a51f288 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java @@ -0,0 +1,14 @@ +package br.com.hackathonfc.park.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/vagas/veiculo") +public class VeiculoController { + + public List lista() { + + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java b/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java new file mode 100644 index 0000000..4b19ca6 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java @@ -0,0 +1,37 @@ +package br.com.hackathonfc.park.controller.dto; + +public class VeiculoDto { + + private Long id; + + private String marca; + + private String cor; + + private String placa; + + public VeiculoDto(Long id, String marca, String cor, String placa) { + super(); + this.id = id; + this.marca = marca; + this.cor = cor; + this.placa = placa; + } + + public Long getId() { + return id; + } + + public String getMarca() { + return marca; + } + + public String getCor() { + return cor; + } + + public String getPlaca() { + return placa; + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java index 08bead4..b8c184a 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -15,23 +15,44 @@ public class Estacionamento { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private String nome; + private int cnpj; + + private String endereco; + private int telefone; + private int vagasMotos; + private int vagasCarros; + + private Double precoHora; + @OneToMany(mappedBy = "estacionamento") private List vagas = new ArrayList<>(); public Estacionamento() { super(); } + + public Estacionamento(String nome, int cnpj, int telefone, int vagasMotos, int vagasCarros, String endereco) { + super(); + this.nome = nome; + this.cnpj = cnpj; + this.endereco = endereco; + this.telefone = telefone; + this.vagasMotos = vagasMotos; + this.vagasCarros = vagasCarros; + } - public Estacionamento(Long id, String nome, int cnpj, int telefone, int vagasMotos, int vagasCarros) { + public Estacionamento(Long id, String nome, int cnpj, int telefone, int vagasMotos, int vagasCarros, String endereco) { super(); this.id = id; this.nome = nome; this.cnpj = cnpj; + this.endereco = endereco; this.telefone = telefone; this.vagasMotos = vagasMotos; this.vagasCarros = vagasCarros; @@ -99,4 +120,20 @@ public void setVagasCarros(int vagasCarros) { this.vagasCarros = vagasCarros; } + public String getEndereco() { + return endereco; + } + + public void setEndereco(String endereco) { + this.endereco = endereco; + } + + public Double getPrecoHora() { + return precoHora; + } + + public void setPrecoHora(Double precoHora) { + this.precoHora = precoHora; + } + } From e21894967697285a02516e722f97c501a44974ee Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 10:59:23 -0300 Subject: [PATCH 09/78] fix estacionamento constructor --- .../com/hackathonfc/park/controller/VagasController.java | 8 ++++++-- .../br/com/hackathonfc/park/model/Estacionamento.java | 6 ++++-- .../hackathonfc/park/repository/VeiculoRepository.java | 5 +++++ 3 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagasController.java b/src/main/java/br/com/hackathonfc/park/controller/VagasController.java index eba4a8f..e52ed7d 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagasController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagasController.java @@ -11,6 +11,7 @@ import br.com.hackathonfc.park.controller.dto.VagaDto; import br.com.hackathonfc.park.controller.dto.VeiculoDto; import br.com.hackathonfc.park.model.Vaga; +import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.repository.VagaRepository; @RestController @@ -20,6 +21,9 @@ public class VagasController { @Autowired private VagaRepository vagaRepository; + @Autowired + private VeiculoRepository veiculoRepository; + @CrossOrigin @GetMapping public List lista() { @@ -29,7 +33,7 @@ public List lista() { @CrossOrigin @GetMapping("/{id}") - public VeiculoDto lista() { - + public VeiculoDto listaVeiculo() { + Veiculo veiculo = veiculoRepository.findById(); } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java index b8c184a..ad5286f 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -37,7 +37,7 @@ public Estacionamento() { super(); } - public Estacionamento(String nome, int cnpj, int telefone, int vagasMotos, int vagasCarros, String endereco) { + public Estacionamento(String nome, int cnpj, int telefone, int vagasMotos, int vagasCarros, String endereco, Double precoHora) { super(); this.nome = nome; this.cnpj = cnpj; @@ -45,9 +45,10 @@ public Estacionamento(String nome, int cnpj, int telefone, int vagasMotos, int v this.telefone = telefone; this.vagasMotos = vagasMotos; this.vagasCarros = vagasCarros; + this.precoHora = precoHora; } - public Estacionamento(Long id, String nome, int cnpj, int telefone, int vagasMotos, int vagasCarros, String endereco) { + public Estacionamento(Long id, String nome, int cnpj, int telefone, int vagasMotos, int vagasCarros, String endereco, Double precoHora) { super(); this.id = id; this.nome = nome; @@ -56,6 +57,7 @@ public Estacionamento(Long id, String nome, int cnpj, int telefone, int vagasMot this.telefone = telefone; this.vagasMotos = vagasMotos; this.vagasCarros = vagasCarros; + this.precoHora = precoHora; } @Override diff --git a/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java b/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java new file mode 100644 index 0000000..b5d4232 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java @@ -0,0 +1,5 @@ +package br.com.hackathonfc.park.repository; + +public interface VeiculoRepository { + +} From 8f7332170a1f493ca72342471609d50cdb88a629 Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 11:13:55 -0300 Subject: [PATCH 10/78] add data sql --- .../controller/EstacionamentoController.java | 25 +++++++- .../controller/form/EstacionamentoForm.java | 63 +++++++++++++++++++ src/main/resources/data.sql | 12 ++++ 3 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java create mode 100644 src/main/resources/data.sql diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index cd97511..bf2cd1c 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -1,15 +1,24 @@ package br.com.hackathonfc.park.controller; +import java.net.URI; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.web.PageableDefault; +import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.util.UriComponentsBuilder; + import br.com.hackathonfc.park.repository.*; +import br.com.hackathonfc.park.controller.form.EstacionamentoForm; import br.com.hackathonfc.park.model.Estacionamento; @RestController @@ -30,9 +39,21 @@ public Page listar(@PageableDefault(sort = "id", direction = Dir } @CrossOrigin - @PostMapping("/estacionamento") - public ResponseEntity cadastrar() { + @PostMapping("/estacionamentos") + @Transactional + public ResponseEntity cadastrar(@RequestBody EstacionamentoForm form, UriComponentsBuilder uriBuilder) { + Estacionamento estacionamento = form.converter(); + + URI uri = uriBuilder.path("/topicos/{id}").buildAndExpand(estacionamento.getId()).toUri(); + return ResponseEntity.created(uri).body(new Estacionamento()); + } + + @CrossOrigin + @PutMapping("/estacionamentos/{id}") + @Transactional + public ResponseEntity atualizar(){ + return null; } } diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java new file mode 100644 index 0000000..56177c3 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java @@ -0,0 +1,63 @@ +package br.com.hackathonfc.park.controller.form; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +import br.com.hackathonfc.park.model.Estacionamento; + +public class EstacionamentoForm { + + @NotNull @NotEmpty + private String nome; + + @NotNull @NotEmpty + private int cnpj; + + @NotNull @NotEmpty + private String endereco; + + @NotNull @NotEmpty + private int telefone; + + @NotNull @NotEmpty + private int vagasCarro; + + @NotNull @NotEmpty + private int vagasMoto; + + @NotNull @NotEmpty + private Double precoHora; + + public String getNome() { + return nome; + } + + public int getCnpj() { + return cnpj; + } + + public String getEndereco() { + return endereco; + } + + public int getTelefone() { + return telefone; + } + + public int getVagasCarro() { + return vagasCarro; + } + + public int getVagasMoto() { + return vagasMoto; + } + + public Double getPrecoHora() { + return precoHora; + } + + public Estacionamento converter() { + return new Estacionamento(nome, cnpj, endereco, telefone, vagasMoto, vagasCarro, precoHora); + } + +} diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql new file mode 100644 index 0000000..196fc63 --- /dev/null +++ b/src/main/resources/data.sql @@ -0,0 +1,12 @@ +INSERT INTO ESTACIONAMENTO(nome, cnpj, telefone, vagasMotos, vagasCarros) VALUES("Estacionamento 1", 1234556, 123456, 10, 20) +INSERT INTO ESTACIONAMENTO(nome, cnpj, telefone, vagasMotos, vagasCarros) VALUES("Estacionamento 1", 1234556, 123456, 10, 20) +INSERT INTO ESTACIONAMENTO(nome, cnpj, telefone, vagasMotos, vagasCarros) VALUES("Estacionamento 1", 1234556, 123456, 10, 20) + +INSERT INTO VEICULO(marca, cor, placa) VALUES("Marca 1", "Preto", "FFFF-4444") +INSERT INTO VEICULO(marca, cor, placa) VALUES("Marca 1", "Preto", "FFFF-4444") +INSERT INTO VEICULO(marca, cor, placa) VALUES("Marca 1", "Preto", "FFFF-4444") + +INSERT INTO VAGA (estacionamento.id, carro.id, dataInicio, dataSaida, livre) VALUES(1, 1, "2019-11-24 12:00:00", "2019-11-24 13:00:00", false) +INSERT INTO VAGA (estacionamento.id, carro.id, dataInicio, dataSaida, livre) VALUES(1, null, "", "", true) +INSERT INTO VAGA (estacionamento.id, carro.id, dataInicio, dataSaida, livre) VALUES(1, 1, "2019-11-24 12:00:00", "2019-11-24 13:00:00", false) + From 22c355594d6fb8c7977a4e5a0b5225f2974c5f2a Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 11:33:43 -0300 Subject: [PATCH 11/78] add form --- .../controller/EstacionamentoController.java | 27 +++++++++++++++---- .../controller/form/EstacionamentoForm.java | 14 +++++----- .../park/model/Estacionamento.java | 17 ++---------- src/main/resources/data.sql | 6 ++--- 4 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index bf2cd1c..c6bfa20 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -1,6 +1,9 @@ package br.com.hackathonfc.park.controller; import java.net.URI; +import java.util.Optional; + +import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; @@ -11,24 +14,31 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; import br.com.hackathonfc.park.repository.*; +import br.com.alura.forum.controllers.dto.TopicoDto; +import br.com.alura.forum.controllers.form.AtualizacaoTopicoForm; +import br.com.alura.forum.model.Topico; import br.com.hackathonfc.park.controller.form.EstacionamentoForm; import br.com.hackathonfc.park.model.Estacionamento; @RestController +@RequestMapping("/estacionamentos") public class EstacionamentoController { @Autowired private EstacionamentoRepository estacionamentoRepository; @CrossOrigin - @GetMapping("/estacionamentos") + @GetMapping public Page listar(@PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ Page estacionamentos; @@ -39,7 +49,7 @@ public Page listar(@PageableDefault(sort = "id", direction = Dir } @CrossOrigin - @PostMapping("/estacionamentos") + @PostMapping @Transactional public ResponseEntity cadastrar(@RequestBody EstacionamentoForm form, UriComponentsBuilder uriBuilder) { Estacionamento estacionamento = form.converter(); @@ -50,10 +60,17 @@ public ResponseEntity cadastrar(@RequestBody EstacionamentoForm } @CrossOrigin - @PutMapping("/estacionamentos/{id}") + @PutMapping("/{id}") @Transactional - public ResponseEntity atualizar(){ - return null; + public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid AtualizacaoTopicoForm form){ + Optional optional = topicoRepository.findById(id); + + if(optional.isPresent()) { + Topico topico = form.atualizar(id, topicoRepository); + return ResponseEntity.ok(new TopicoDto(topico)); + } + + return ResponseEntity.notFound().build(); } } diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java index 56177c3..338b358 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java +++ b/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java @@ -20,10 +20,10 @@ public class EstacionamentoForm { private int telefone; @NotNull @NotEmpty - private int vagasCarro; + private int vagasCarros; @NotNull @NotEmpty - private int vagasMoto; + private int vagasMotos; @NotNull @NotEmpty private Double precoHora; @@ -44,12 +44,12 @@ public int getTelefone() { return telefone; } - public int getVagasCarro() { - return vagasCarro; + public int getVagasCarros() { + return vagasCarros; } - public int getVagasMoto() { - return vagasMoto; + public int getVagasMotos() { + return vagasMotos; } public Double getPrecoHora() { @@ -57,7 +57,7 @@ public Double getPrecoHora() { } public Estacionamento converter() { - return new Estacionamento(nome, cnpj, endereco, telefone, vagasMoto, vagasCarro, precoHora); + return new Estacionamento(nome, cnpj, endereco, telefone, vagasMotos, vagasCarros, precoHora); } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java index ad5286f..28a6f63 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -34,23 +34,10 @@ public class Estacionamento { private List vagas = new ArrayList<>(); public Estacionamento() { - super(); + } - public Estacionamento(String nome, int cnpj, int telefone, int vagasMotos, int vagasCarros, String endereco, Double precoHora) { - super(); - this.nome = nome; - this.cnpj = cnpj; - this.endereco = endereco; - this.telefone = telefone; - this.vagasMotos = vagasMotos; - this.vagasCarros = vagasCarros; - this.precoHora = precoHora; - } - - public Estacionamento(Long id, String nome, int cnpj, int telefone, int vagasMotos, int vagasCarros, String endereco, Double precoHora) { - super(); - this.id = id; + public Estacionamento(String nome, int cnpj, String endereco, int telefone, int vagasMotos, int vagasCarros, Double precoHora) { this.nome = nome; this.cnpj = cnpj; this.endereco = endereco; diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 196fc63..eb08435 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -1,6 +1,6 @@ -INSERT INTO ESTACIONAMENTO(nome, cnpj, telefone, vagasMotos, vagasCarros) VALUES("Estacionamento 1", 1234556, 123456, 10, 20) -INSERT INTO ESTACIONAMENTO(nome, cnpj, telefone, vagasMotos, vagasCarros) VALUES("Estacionamento 1", 1234556, 123456, 10, 20) -INSERT INTO ESTACIONAMENTO(nome, cnpj, telefone, vagasMotos, vagasCarros) VALUES("Estacionamento 1", 1234556, 123456, 10, 20) +INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco, telefone, vagasMotos, vagasCarros, precoHora) VALUES("Estacionamento 1", 1234556, "Rua Doutor Fulano, 505 - Aparecida, Santos/SP", 123456, 10, 20, 8.50) +INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco ,telefone, vagasMotos, vagasCarros, precoHora) VALUES("Estacionamento 1", 1234556, "Rua Doutor Fulano 2, 403 - Embaré, Santos/SP", 123456, 10, 20, 7.80) +INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco ,telefone, vagasMotos, vagasCarros, precoHora) VALUES("Estacionamento 1", 1234556, "Rua Doutor Fulano 3, 306 - Mocca, São Paulo/SP", 123456, 10, 20, 9.50) INSERT INTO VEICULO(marca, cor, placa) VALUES("Marca 1", "Preto", "FFFF-4444") INSERT INTO VEICULO(marca, cor, placa) VALUES("Marca 1", "Preto", "FFFF-4444") From 5f27633361af1bd367253d3e740c5fdc445bb95a Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 11:45:03 -0300 Subject: [PATCH 12/78] att data sql --- .../park/controller/form/AtualizacaoEstacionamentoForm.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java new file mode 100644 index 0000000..df2662e --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java @@ -0,0 +1,5 @@ +package br.com.hackathonfc.park.controller.form; + +public class AtualizacaoEstacionamentoForm { + +} From ca48a990f2a03d9423651c22206818b456dc6bb7 Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 11:54:54 -0300 Subject: [PATCH 13/78] final EstacionamentoController --- .../controller/EstacionamentoController.java | 26 +++-- .../form/AtualizacaoEstacionamentoForm.java | 98 +++++++++++++++++++ 2 files changed, 116 insertions(+), 8 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index c6bfa20..8b35481 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -13,20 +13,18 @@ import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; import br.com.hackathonfc.park.repository.*; -import br.com.alura.forum.controllers.dto.TopicoDto; -import br.com.alura.forum.controllers.form.AtualizacaoTopicoForm; -import br.com.alura.forum.model.Topico; +import br.com.hackathonfc.park.controller.form.AtualizacaoEstacionamentoForm; import br.com.hackathonfc.park.controller.form.EstacionamentoForm; import br.com.hackathonfc.park.model.Estacionamento; @@ -62,15 +60,27 @@ public ResponseEntity cadastrar(@RequestBody EstacionamentoForm @CrossOrigin @PutMapping("/{id}") @Transactional - public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid AtualizacaoTopicoForm form){ - Optional optional = topicoRepository.findById(id); + public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid AtualizacaoEstacionamentoForm form){ + Optional optional = estacionamentoRepository.findById(id); if(optional.isPresent()) { - Topico topico = form.atualizar(id, topicoRepository); - return ResponseEntity.ok(new TopicoDto(topico)); + Estacionamento estacionamento = form.atualizar(id, estacionamentoRepository); + return ResponseEntity.ok(estacionamento); } return ResponseEntity.notFound().build(); } + @DeleteMapping("/{id}") + @Transactional + public ResponseEntity remover(@PathVariable Long id){ + Optional optional = estacionamentoRepository.findById(id); + + if (optional.isPresent()) { + estacionamentoRepository.deleteById(id); + return ResponseEntity.ok().build(); + } + return ResponseEntity.notFound().build(); + } + } diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java index df2662e..c676d2d 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java +++ b/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java @@ -1,5 +1,103 @@ package br.com.hackathonfc.park.controller.form; +import javax.validation.constraints.NotEmpty; + +import org.hibernate.validator.constraints.Length; + +import com.sun.istack.NotNull; + +import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.repository.EstacionamentoRepository; + public class AtualizacaoEstacionamentoForm { + + @NotNull @NotEmpty + private String nome; + + @NotNull @NotEmpty + private int cnpj; + + @NotNull @NotEmpty + private String endereco; + + @NotNull @NotEmpty + private int telefone; + + @NotNull @NotEmpty + private int vagasCarros; + + @NotNull @NotEmpty + private int vagasMotos; + + @NotNull @NotEmpty + private Double precoHora; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public int getCnpj() { + return cnpj; + } + + public void setCnpj(int cnpj) { + this.cnpj = cnpj; + } + + public String getEndereco() { + return endereco; + } + + public void setEndereco(String endereco) { + this.endereco = endereco; + } + + public int getTelefone() { + return telefone; + } + + public void setTelefone(int telefone) { + this.telefone = telefone; + } + + public int getVagasCarros() { + return vagasCarros; + } + + public void setVagasCarros(int vagasCarros) { + this.vagasCarros = vagasCarros; + } + + public int getVagasMotos() { + return vagasMotos; + } + + public void setVagasMotos(int vagasMotos) { + this.vagasMotos = vagasMotos; + } + + public Double getPrecoHora() { + return precoHora; + } + + public void setPrecoHora(Double precoHora) { + this.precoHora = precoHora; + } + public Estacionamento atualizar(Long id, EstacionamentoRepository estacionamentoRepository) { + Estacionamento estacionamento = estacionamentoRepository.getOne(id); + estacionamento.setNome(nome); + estacionamento.setCnpj(cnpj); + estacionamento.setEndereco(endereco); + estacionamento.setTelefone(telefone); + estacionamento.setVagasCarros(vagasCarros); + estacionamento.setVagasMotos(vagasMotos); + estacionamento.setPrecoHora(precoHora); + return estacionamento; + } + } From 8f241a5054d03ae8c73db86506a062bd04bba843 Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 12:02:17 -0300 Subject: [PATCH 14/78] add vagas controller --- .../park/controller/VagaController.java | 96 +++++++++++++++++++ .../park/controller/VagasController.java | 39 -------- .../park/controller/VeiculoController.java | 14 --- .../park/controller/dto/VeiculoDto.java | 19 +++- .../park/controller/form/VeiculoForm.java | 38 ++++++++ .../br/com/hackathonfc/park/model/Vaga.java | 8 +- .../com/hackathonfc/park/model/Veiculo.java | 21 ++-- .../park/repository/VeiculoRepository.java | 6 +- 8 files changed, 171 insertions(+), 70 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/VagaController.java delete mode 100644 src/main/java/br/com/hackathonfc/park/controller/VagasController.java delete mode 100644 src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java create mode 100644 src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java new file mode 100644 index 0000000..9a7478a --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -0,0 +1,96 @@ +package br.com.hackathonfc.park.controller; + +import java.net.URI; +import java.util.List; +import java.util.Optional; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.util.UriComponentsBuilder; + +import br.com.alura.forum.modelo.Topico; +import br.com.hackathonfc.park.controller.dto.VagaDto; +import br.com.hackathonfc.park.controller.dto.VeiculoDto; +import br.com.hackathonfc.park.controller.form.VeiculoForm; +import br.com.hackathonfc.park.model.Vaga; +import br.com.hackathonfc.park.model.Veiculo; +import br.com.hackathonfc.park.repository.VagaRepository; +import br.com.hackathonfc.park.repository.VeiculoRepository; + +@RestController +@RequestMapping("/vagas") +public class VagaController { + + @Autowired + private VagaRepository vagaRepository; + + @Autowired + private VeiculoRepository veiculoRepository; + + @CrossOrigin + @GetMapping + public List lista() { + List vagas = vagaRepository.findAll(); + return VagaDto.converter(vagas); + } + + @CrossOrigin + @GetMapping("/{id}") + public ResponseEntity listaVeiculo(@PathVariable Long id) { + Optional veiculo = veiculoRepository.findById(id); + if(veiculo.isPresent()) { + return ResponseEntity.ok(new VeiculoDto(veiculo.get())); + } + + return ResponseEntity.ok().build(); + } + + @CrossOrigin + @PostMapping + @Transactional + public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoForm form, UriComponentsBuilder uriBuilder) { + Veiculo veiculo = form.converter(veiculoRepository); + veiculoRepository.save(veiculo); + + URI uri = uriBuilder.path("/vagas/{id}").buildAndExpand(veiculo.getId()).toUri(); + return ResponseEntity.created(uri).body(new VeiculoDto(veiculo)); + } + + @CrossOrigin + @PutMapping("/{id}") + @Transactional + public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoForm form) { + Optional optional = veiculoRepository.findById(id); + if(optional.isPresent()) { + Veiculo veiculo = form.atualizar(id, veiculoRepository); + return ResponseEntity.ok(new VeiculoDto(veiculo)); + } + + return ResponseEntity.notFound().build(); + } + + @CrossOrigin + @DeleteMapping("/{id}") + @Transactional + public ResponseEntity removerVeiculo(@PathVariable Long id) { + Optional optional = veiculoRepository.findById(id); + if(optional.isPresent()) { + veiculoRepository.deleteById(id); + return ResponseEntity.ok().build(); + } + + return ResponseEntity.notFound().build(); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagasController.java b/src/main/java/br/com/hackathonfc/park/controller/VagasController.java deleted file mode 100644 index e52ed7d..0000000 --- a/src/main/java/br/com/hackathonfc/park/controller/VagasController.java +++ /dev/null @@ -1,39 +0,0 @@ -package br.com.hackathonfc.park.controller; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import br.com.hackathonfc.park.controller.dto.VagaDto; -import br.com.hackathonfc.park.controller.dto.VeiculoDto; -import br.com.hackathonfc.park.model.Vaga; -import br.com.hackathonfc.park.model.Veiculo; -import br.com.hackathonfc.park.repository.VagaRepository; - -@RestController -@RequestMapping("/vagas") -public class VagasController { - - @Autowired - private VagaRepository vagaRepository; - - @Autowired - private VeiculoRepository veiculoRepository; - - @CrossOrigin - @GetMapping - public List lista() { - List vagas = vagaRepository.findAll(); - return VagaDto.converter(vagas); - } - - @CrossOrigin - @GetMapping("/{id}") - public VeiculoDto listaVeiculo() { - Veiculo veiculo = veiculoRepository.findById(); - } -} diff --git a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java deleted file mode 100644 index a51f288..0000000 --- a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java +++ /dev/null @@ -1,14 +0,0 @@ -package br.com.hackathonfc.park.controller; - -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/vagas/veiculo") -public class VeiculoController { - - public List lista() { - - } - -} diff --git a/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java b/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java index 4b19ca6..975a04e 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java +++ b/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java @@ -1,5 +1,10 @@ package br.com.hackathonfc.park.controller.dto; +import java.util.List; +import java.util.stream.Collectors; + +import br.com.hackathonfc.park.model.Veiculo; + public class VeiculoDto { private Long id; @@ -10,12 +15,16 @@ public class VeiculoDto { private String placa; - public VeiculoDto(Long id, String marca, String cor, String placa) { + public VeiculoDto(Veiculo veiculo) { super(); - this.id = id; - this.marca = marca; - this.cor = cor; - this.placa = placa; + this.id = veiculo.getId(); + this.marca = veiculo.getMarca(); + this.cor = veiculo.getCor(); + this.placa = veiculo.getPlaca(); + } + + public static List converter(List veiculos) { + return veiculos.stream().map(VeiculoDto::new).collect(Collectors.toList()); } public Long getId() { diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java new file mode 100644 index 0000000..e4f0d70 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java @@ -0,0 +1,38 @@ +package br.com.hackathonfc.park.controller.form; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +import br.com.hackathonfc.park.model.Veiculo; +import br.com.hackathonfc.park.repository.VeiculoRepository; + +public class VeiculoForm { + + @NotNull @NotEmpty + private String marca; + + @NotNull @NotEmpty + private String modelo; + + @NotNull @NotEmpty + private String cor; + + @NotNull @NotEmpty + private String placa; + + public Veiculo converter(VeiculoRepository veiculoRepository) { + return new Veiculo(marca, modelo, cor, placa); + } + + public Veiculo atualizar(Long id, VeiculoRepository veiculoRepository) { + Veiculo veiculo = veiculoRepository.getOne(id); + + veiculo.setMarca(this.marca); + veiculo.setModelo(this.modelo); + veiculo.setCor(this.cor); + veiculo.setPlaca(this.placa); + + return veiculo; + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index d8668df..e15d2df 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -19,7 +19,7 @@ public class Vaga { private Estacionamento estacionamento; @OneToOne - private Veiculo carro; + private Veiculo veiculo; private LocalDateTime dataInicio; @@ -31,11 +31,11 @@ public Vaga() { } - public Vaga(Long id, Estacionamento estacionamento, Veiculo carro, LocalDateTime dataInicio, + public Vaga(Long id, Estacionamento estacionamento, Veiculo veiculo, LocalDateTime dataInicio, LocalDateTime dataSaida, boolean livre) { this.id = id; this.estacionamento = estacionamento; - this.carro = carro; + this.veiculo = veiculo; this.dataInicio = dataInicio; this.dataSaida = dataSaida; this.livre = livre; @@ -50,7 +50,7 @@ public Estacionamento getEstacionamento() { } public Veiculo getCarro() { - return carro; + return veiculo; } public LocalDateTime getDataInicio() { diff --git a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java index 5250a10..9e87c7d 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java +++ b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java @@ -14,22 +14,21 @@ public class Veiculo { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String marca; + private String modelo; private String cor; private String placa; @Enumerated(EnumType.STRING) - private TipoVeiculo veiculo; + private TipoVeiculo tipoVeiculo; public Veiculo() { super(); } - public Veiculo(Long id, String marca, String cor, String placa, TipoVeiculo veiculo) { - super(); - this.id = id; + public Veiculo(String marca, String modelo, String cor, String placa) { this.marca = marca; + this.setModelo(modelo); this.cor = cor; this.placa = placa; - this.veiculo = veiculo; } @Override @@ -90,11 +89,19 @@ public void setPlaca(String placa) { } public TipoVeiculo getVeiculo() { - return veiculo; + return tipoVeiculo; } public void setVeiculo(TipoVeiculo veiculo) { - this.veiculo = veiculo; + this.tipoVeiculo = veiculo; + } + + public String getModelo() { + return modelo; + } + + public void setModelo(String modelo) { + this.modelo = modelo; } } diff --git a/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java b/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java index b5d4232..0cc2f10 100644 --- a/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java +++ b/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java @@ -1,5 +1,9 @@ package br.com.hackathonfc.park.repository; -public interface VeiculoRepository { +import org.springframework.data.jpa.repository.JpaRepository; + +import br.com.hackathonfc.park.model.Veiculo; + +public interface VeiculoRepository extends JpaRepository { } From efe0bdbac070827750e896420c5fddcbfc1446e2 Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 12:06:21 -0300 Subject: [PATCH 15/78] fix estacionamento controller --- .../controller/EstacionamentoController.java | 4 +- .../park/controller/VagaController.java | 1 - .../form/AtualizacaoEstacionamentoForm.java | 103 ------------------ .../controller/form/EstacionamentoForm.java | 13 +++ 4 files changed, 15 insertions(+), 106 deletions(-) delete mode 100644 src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 8b35481..29330c9 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -23,10 +23,10 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; -import br.com.hackathonfc.park.repository.*; import br.com.hackathonfc.park.controller.form.AtualizacaoEstacionamentoForm; import br.com.hackathonfc.park.controller.form.EstacionamentoForm; import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.repository.EstacionamentoRepository; @RestController @RequestMapping("/estacionamentos") @@ -60,7 +60,7 @@ public ResponseEntity cadastrar(@RequestBody EstacionamentoForm @CrossOrigin @PutMapping("/{id}") @Transactional - public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid AtualizacaoEstacionamentoForm form){ + public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid EstacionamentoForm form){ Optional optional = estacionamentoRepository.findById(id); if(optional.isPresent()) { diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index 9a7478a..ed41f8e 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -20,7 +20,6 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; -import br.com.alura.forum.modelo.Topico; import br.com.hackathonfc.park.controller.dto.VagaDto; import br.com.hackathonfc.park.controller.dto.VeiculoDto; import br.com.hackathonfc.park.controller.form.VeiculoForm; diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java deleted file mode 100644 index c676d2d..0000000 --- a/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java +++ /dev/null @@ -1,103 +0,0 @@ -package br.com.hackathonfc.park.controller.form; - -import javax.validation.constraints.NotEmpty; - -import org.hibernate.validator.constraints.Length; - -import com.sun.istack.NotNull; - -import br.com.hackathonfc.park.model.Estacionamento; -import br.com.hackathonfc.park.repository.EstacionamentoRepository; - -public class AtualizacaoEstacionamentoForm { - - @NotNull @NotEmpty - private String nome; - - @NotNull @NotEmpty - private int cnpj; - - @NotNull @NotEmpty - private String endereco; - - @NotNull @NotEmpty - private int telefone; - - @NotNull @NotEmpty - private int vagasCarros; - - @NotNull @NotEmpty - private int vagasMotos; - - @NotNull @NotEmpty - private Double precoHora; - - public String getNome() { - return nome; - } - - public void setNome(String nome) { - this.nome = nome; - } - - public int getCnpj() { - return cnpj; - } - - public void setCnpj(int cnpj) { - this.cnpj = cnpj; - } - - public String getEndereco() { - return endereco; - } - - public void setEndereco(String endereco) { - this.endereco = endereco; - } - - public int getTelefone() { - return telefone; - } - - public void setTelefone(int telefone) { - this.telefone = telefone; - } - - public int getVagasCarros() { - return vagasCarros; - } - - public void setVagasCarros(int vagasCarros) { - this.vagasCarros = vagasCarros; - } - - public int getVagasMotos() { - return vagasMotos; - } - - public void setVagasMotos(int vagasMotos) { - this.vagasMotos = vagasMotos; - } - - public Double getPrecoHora() { - return precoHora; - } - - public void setPrecoHora(Double precoHora) { - this.precoHora = precoHora; - } - - public Estacionamento atualizar(Long id, EstacionamentoRepository estacionamentoRepository) { - Estacionamento estacionamento = estacionamentoRepository.getOne(id); - estacionamento.setNome(nome); - estacionamento.setCnpj(cnpj); - estacionamento.setEndereco(endereco); - estacionamento.setTelefone(telefone); - estacionamento.setVagasCarros(vagasCarros); - estacionamento.setVagasMotos(vagasMotos); - estacionamento.setPrecoHora(precoHora); - return estacionamento; - } - -} diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java index 338b358..cdf89b8 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java +++ b/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java @@ -4,6 +4,7 @@ import javax.validation.constraints.NotNull; import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.repository.EstacionamentoRepository; public class EstacionamentoForm { @@ -60,4 +61,16 @@ public Estacionamento converter() { return new Estacionamento(nome, cnpj, endereco, telefone, vagasMotos, vagasCarros, precoHora); } + public Estacionamento atualizar(Long id, EstacionamentoRepository estacionamentoRepository) { + Estacionamento estacionamento = estacionamentoRepository.getOne(id); + estacionamento.setNome(nome); + estacionamento.setCnpj(cnpj); + estacionamento.setEndereco(endereco); + estacionamento.setTelefone(telefone); + estacionamento.setVagasCarros(vagasCarros); + estacionamento.setVagasMotos(vagasMotos); + estacionamento.setPrecoHora(precoHora); + return estacionamento; + } + } From 6aa45d239e7bfc5f7f36e1975f75b468468ad387 Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 12:07:02 -0300 Subject: [PATCH 16/78] fix estacionamento controller --- .../hackathonfc/park/controller/EstacionamentoController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 29330c9..d485ba8 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -23,7 +23,6 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; -import br.com.hackathonfc.park.controller.form.AtualizacaoEstacionamentoForm; import br.com.hackathonfc.park.controller.form.EstacionamentoForm; import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.repository.EstacionamentoRepository; From b9ec32a72201a2a290779b4e59b307bfc1011ea9 Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 12:34:07 -0300 Subject: [PATCH 17/78] fix vagas route --- .../park/controller/VagaController.java | 2 +- src/main/resources/data.sql | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index ed41f8e..b262085 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -29,7 +29,7 @@ import br.com.hackathonfc.park.repository.VeiculoRepository; @RestController -@RequestMapping("/vagas") +@RequestMapping("/estacionamentos/vagas") public class VagaController { @Autowired diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index eb08435..1de135a 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -1,12 +1,11 @@ -INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco, telefone, vagasMotos, vagasCarros, precoHora) VALUES("Estacionamento 1", 1234556, "Rua Doutor Fulano, 505 - Aparecida, Santos/SP", 123456, 10, 20, 8.50) -INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco ,telefone, vagasMotos, vagasCarros, precoHora) VALUES("Estacionamento 1", 1234556, "Rua Doutor Fulano 2, 403 - Embaré, Santos/SP", 123456, 10, 20, 7.80) -INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco ,telefone, vagasMotos, vagasCarros, precoHora) VALUES("Estacionamento 1", 1234556, "Rua Doutor Fulano 3, 306 - Mocca, São Paulo/SP", 123456, 10, 20, 9.50) +INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco, telefone, vagas_motos, vagas_carros, preco_hora) VALUES('Estacionamento 1', '1234556', 'Rua Doutor Fulano, 505 - Aparecida, Santos/SP', '123456', '10', '20', '8.50') +INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES('Estacionamento 1', '1234556', 'Rua Doutor Fulano 2, 403 - Embaré, Santos/SP', '123456', '10', '20', '7.80') +INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES('Estacionamento 1', '1234556', 'Rua Doutor Fulano 3, 306 - Mocca, São Paulo/SP', '123456', '10', '20', '9.50') -INSERT INTO VEICULO(marca, cor, placa) VALUES("Marca 1", "Preto", "FFFF-4444") -INSERT INTO VEICULO(marca, cor, placa) VALUES("Marca 1", "Preto", "FFFF-4444") -INSERT INTO VEICULO(marca, cor, placa) VALUES("Marca 1", "Preto", "FFFF-4444") - -INSERT INTO VAGA (estacionamento.id, carro.id, dataInicio, dataSaida, livre) VALUES(1, 1, "2019-11-24 12:00:00", "2019-11-24 13:00:00", false) -INSERT INTO VAGA (estacionamento.id, carro.id, dataInicio, dataSaida, livre) VALUES(1, null, "", "", true) -INSERT INTO VAGA (estacionamento.id, carro.id, dataInicio, dataSaida, livre) VALUES(1, 1, "2019-11-24 12:00:00", "2019-11-24 13:00:00", false) +INSERT INTO VEICULO(marca, cor, placa) VALUES('Marca 1', 'Preto', 'FFFF-4444') +INSERT INTO VEICULO(marca, cor, placa) VALUES('Marca 1', 'Preto', 'FFFF-4444') +INSERT INTO VEICULO(marca, cor, placa) VALUES('Marca 1', 'Preto', 'FFFF-4444') +INSERT INTO VAGA(estacionamento_id, veiculo_id, data_inicio, data_saida, livre) VALUES('1', '1', '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) +INSERT INTO VAGA(estacionamento_id, veiculo_id, data_inicio, data_saida, livre) VALUES('1', null, null, null, true) +INSERT INTO VAGA(estacionamento_id, veiculo_id, data_inicio, data_saida, livre) VALUES('1', '1', '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) From 764b855c8b46981bce8475ea83ce65804f2933aa Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 12:44:26 -0300 Subject: [PATCH 18/78] solve post --- .../hackathonfc/park/controller/EstacionamentoController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index d485ba8..cea8ab2 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -50,8 +50,9 @@ public Page listar(@PageableDefault(sort = "id", direction = Dir @Transactional public ResponseEntity cadastrar(@RequestBody EstacionamentoForm form, UriComponentsBuilder uriBuilder) { Estacionamento estacionamento = form.converter(); + estacionamentoRepository.save(estacionamento); - URI uri = uriBuilder.path("/topicos/{id}").buildAndExpand(estacionamento.getId()).toUri(); + URI uri = uriBuilder.path("/estacionamentos/{id}").buildAndExpand(estacionamento.getId()).toUri(); return ResponseEntity.created(uri).body(new Estacionamento()); } From f4cd3345df48d259bb841105fe22277086a4b1d8 Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 12:47:03 -0300 Subject: [PATCH 19/78] solve post final --- .../hackathonfc/park/controller/EstacionamentoController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index cea8ab2..4760886 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -54,7 +54,7 @@ public ResponseEntity cadastrar(@RequestBody EstacionamentoForm URI uri = uriBuilder.path("/estacionamentos/{id}").buildAndExpand(estacionamento.getId()).toUri(); - return ResponseEntity.created(uri).body(new Estacionamento()); + return ResponseEntity.created(uri).body(estacionamento); } @CrossOrigin From f69e7c47cf052b94190187ac6ad5ab88d01b1c74 Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 12:56:25 -0300 Subject: [PATCH 20/78] correct put and delete EstacionamentoController --- .../park/controller/form/EstacionamentoForm.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java index cdf89b8..e52de5f 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java +++ b/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java @@ -11,22 +11,22 @@ public class EstacionamentoForm { @NotNull @NotEmpty private String nome; - @NotNull @NotEmpty + @NotNull private int cnpj; @NotNull @NotEmpty private String endereco; - @NotNull @NotEmpty + @NotNull private int telefone; - @NotNull @NotEmpty + @NotNull private int vagasCarros; - @NotNull @NotEmpty + @NotNull private int vagasMotos; - @NotNull @NotEmpty + @NotNull private Double precoHora; public String getNome() { From 1a55b2f488419b8fa02f8ed9cedb66f48da78ff8 Mon Sep 17 00:00:00 2001 From: Thaue L <50925608+Thauezetes@users.noreply.github.com> Date: Sun, 24 Nov 2019 14:05:58 -0300 Subject: [PATCH 21/78] Add files via upload passar p spring --- cadastro.html | 169 +++++++++++++++++++++++++++++++++++++++++++ cadastroVeiculo.html | 131 +++++++++++++++++++++++++++++++++ 2 files changed, 300 insertions(+) create mode 100644 cadastro.html create mode 100644 cadastroVeiculo.html diff --git a/cadastro.html b/cadastro.html new file mode 100644 index 0000000..2f3c277 --- /dev/null +++ b/cadastro.html @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+ +
+
+ Nome +
+ +
+
+
+
+
+
+
+
+ CNPJ +
+ +
+
+
+ +
+
+ +
+
+ + +
+ +
+
+
+ +
+
+ +
+
+ + +
+ +
+
+
+ +
+
+ +
+
+ + +
+ +
+
+
+ +
+
+ +
+
+ + +
+ +
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/cadastroVeiculo.html b/cadastroVeiculo.html new file mode 100644 index 0000000..979387a --- /dev/null +++ b/cadastroVeiculo.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+ +
+
+ Marca +
+ +
+
+ +
+
+
+
+
+
+ Modelo +
+ +
+
+
+ +
+
+
+
+ Cor +
+ +
+
+
+ +
+
+
+
+ Placa +
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+ + + + + + \ No newline at end of file From 1fdae8737ce2ab267e724adaddb34f30b57b6f96 Mon Sep 17 00:00:00 2001 From: Thaue L <50925608+Thauezetes@users.noreply.github.com> Date: Sun, 24 Nov 2019 14:07:03 -0300 Subject: [PATCH 22/78] Add files via upload --- src/main/resources/cadastro.html | 169 ++++++++++++++++++++++++ src/main/resources/cadastroVeiculo.html | 131 ++++++++++++++++++ 2 files changed, 300 insertions(+) create mode 100644 src/main/resources/cadastro.html create mode 100644 src/main/resources/cadastroVeiculo.html diff --git a/src/main/resources/cadastro.html b/src/main/resources/cadastro.html new file mode 100644 index 0000000..2f3c277 --- /dev/null +++ b/src/main/resources/cadastro.html @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+ +
+
+ Nome +
+ +
+
+
+
+
+
+
+
+ CNPJ +
+ +
+
+
+ +
+
+ +
+
+ + +
+ +
+
+
+ +
+
+ +
+
+ + +
+ +
+
+
+ +
+
+ +
+
+ + +
+ +
+
+
+ +
+
+ +
+
+ + +
+ +
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/src/main/resources/cadastroVeiculo.html b/src/main/resources/cadastroVeiculo.html new file mode 100644 index 0000000..979387a --- /dev/null +++ b/src/main/resources/cadastroVeiculo.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+ +
+
+ Marca +
+ +
+
+ +
+
+
+
+
+
+ Modelo +
+ +
+
+
+ +
+
+
+
+ Cor +
+ +
+
+
+ +
+
+
+
+ Placa +
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+ + + + + + \ No newline at end of file From 63d1006c76d3d03b4070d060d712970c56113b27 Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 14:09:14 -0300 Subject: [PATCH 23/78] fix get methods ando some models --- .../controller/EstacionamentoController.java | 14 +++++++ .../park/controller/VagaController.java | 29 ++++--------- .../park/controller/form/VeiculoForm.java | 10 ++++- .../br/com/hackathonfc/park/model/Vaga.java | 41 ++++++++++++------- .../com/hackathonfc/park/model/Veiculo.java | 28 ++++++++++++- .../park/repository/VagaRepository.java | 8 ++++ .../park/repository/VeiculoRepository.java | 7 ++++ src/main/resources/data.sql | 14 ++++--- 8 files changed, 107 insertions(+), 44 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 4760886..80a3d16 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -1,6 +1,7 @@ package br.com.hackathonfc.park.controller; import java.net.URI; +import java.util.List; import java.util.Optional; import javax.validation.Valid; @@ -23,9 +24,12 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; +import br.com.hackathonfc.park.controller.dto.VagaDto; import br.com.hackathonfc.park.controller.form.EstacionamentoForm; import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.repository.EstacionamentoRepository; +import br.com.hackathonfc.park.repository.VagaRepository; @RestController @RequestMapping("/estacionamentos") @@ -34,6 +38,9 @@ public class EstacionamentoController { @Autowired private EstacionamentoRepository estacionamentoRepository; + @Autowired + private VagaRepository vagaRepository; + @CrossOrigin @GetMapping public Page listar(@PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ @@ -45,6 +52,13 @@ public Page listar(@PageableDefault(sort = "id", direction = Dir return estacionamentos; } + @CrossOrigin + @GetMapping("/{id}") + public List listarVagas(@PathVariable Long id) { + List vagas = vagaRepository.findAllFromEstacionamento(id); + return VagaDto.converter(vagas); + } + @CrossOrigin @PostMapping @Transactional diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index b262085..503f405 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -29,38 +29,27 @@ import br.com.hackathonfc.park.repository.VeiculoRepository; @RestController -@RequestMapping("/estacionamentos/vagas") +@RequestMapping("/estacionamentos/{id}/vagas") public class VagaController { - - @Autowired - private VagaRepository vagaRepository; - + @Autowired private VeiculoRepository veiculoRepository; - @CrossOrigin - @GetMapping - public List lista() { - List vagas = vagaRepository.findAll(); - return VagaDto.converter(vagas); - } - + @Autowired + private VagaRepository vagaRepository; + @CrossOrigin @GetMapping("/{id}") - public ResponseEntity listaVeiculo(@PathVariable Long id) { - Optional veiculo = veiculoRepository.findById(id); - if(veiculo.isPresent()) { - return ResponseEntity.ok(new VeiculoDto(veiculo.get())); - } - - return ResponseEntity.ok().build(); + public List listarVeiculo(@PathVariable Long id) { + List veiculos = veiculoRepository.findByVagaId(id); + return VeiculoDto.converter(veiculos); } @CrossOrigin @PostMapping @Transactional public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoForm form, UriComponentsBuilder uriBuilder) { - Veiculo veiculo = form.converter(veiculoRepository); + Veiculo veiculo = form.converter(vagaRepository); veiculoRepository.save(veiculo); URI uri = uriBuilder.path("/vagas/{id}").buildAndExpand(veiculo.getId()).toUri(); diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java index e4f0d70..39810cb 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java +++ b/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java @@ -3,7 +3,9 @@ import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; +import br.com.hackathonfc.park.repository.VagaRepository; import br.com.hackathonfc.park.repository.VeiculoRepository; public class VeiculoForm { @@ -20,8 +22,12 @@ public class VeiculoForm { @NotNull @NotEmpty private String placa; - public Veiculo converter(VeiculoRepository veiculoRepository) { - return new Veiculo(marca, modelo, cor, placa); + @NotNull + private Long vagaId; + + public Veiculo converter(VagaRepository vagaRepository) { + Vaga vaga = vagaRepository.getOne(vagaId); + return new Veiculo(marca, modelo, cor, placa, vaga); } public Veiculo atualizar(Long id, VeiculoRepository veiculoRepository) { diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index e15d2df..4a933c6 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -18,9 +18,6 @@ public class Vaga { @ManyToOne private Estacionamento estacionamento; - @OneToOne - private Veiculo veiculo; - private LocalDateTime dataInicio; private LocalDateTime dataSaida; @@ -31,15 +28,38 @@ public Vaga() { } - public Vaga(Long id, Estacionamento estacionamento, Veiculo veiculo, LocalDateTime dataInicio, + public Vaga(Long id, LocalDateTime dataInicio, LocalDateTime dataSaida, boolean livre) { this.id = id; - this.estacionamento = estacionamento; - this.veiculo = veiculo; this.dataInicio = dataInicio; this.dataSaida = dataSaida; this.livre = livre; } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Vaga other = (Vaga) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + return true; + } public Long getId() { return id; @@ -49,10 +69,6 @@ public Estacionamento getEstacionamento() { return estacionamento; } - public Veiculo getCarro() { - return veiculo; - } - public LocalDateTime getDataInicio() { return dataInicio; } @@ -65,9 +81,4 @@ public boolean isLivre() { return livre; } - - - - - } diff --git a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java index 9e87c7d..f496f7f 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java +++ b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java @@ -6,6 +6,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.persistence.OneToOne; @Entity public class Veiculo { @@ -13,22 +14,31 @@ public class Veiculo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private String marca; + private String modelo; + private String cor; + private String placa; + @Enumerated(EnumType.STRING) private TipoVeiculo tipoVeiculo; + @OneToOne + private Vaga vaga; + public Veiculo() { super(); } - public Veiculo(String marca, String modelo, String cor, String placa) { + public Veiculo(String marca, String modelo, String cor, String placa, Vaga vaga) { this.marca = marca; this.setModelo(modelo); this.cor = cor; this.placa = placa; + this.vaga = vaga; } @Override @@ -104,4 +114,20 @@ public void setModelo(String modelo) { this.modelo = modelo; } + public TipoVeiculo getTipoVeiculo() { + return tipoVeiculo; + } + + public void setTipoVeiculo(TipoVeiculo tipoVeiculo) { + this.tipoVeiculo = tipoVeiculo; + } + + public Vaga getVaga() { + return vaga; + } + + public void setVaga(Vaga vaga) { + this.vaga = vaga; + } + } diff --git a/src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java b/src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java index c4aa047..3a80e34 100644 --- a/src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java +++ b/src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java @@ -1,9 +1,17 @@ package br.com.hackathonfc.park.repository; +import java.util.List; + import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import br.com.hackathonfc.park.model.Vaga; +import br.com.hackathonfc.park.model.Veiculo; public interface VagaRepository extends JpaRepository { + + @Query("SELECT v FROM Vaga v WHERE v.estacionamento.id = :id") + List findAllFromEstacionamento(@Param("id") Long id); } diff --git a/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java b/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java index 0cc2f10..8b70453 100644 --- a/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java +++ b/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java @@ -1,9 +1,16 @@ package br.com.hackathonfc.park.repository; +import java.util.List; + import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import br.com.hackathonfc.park.model.Veiculo; public interface VeiculoRepository extends JpaRepository { + @Query("SELECT v FROM Veiculo v WHERE v.vaga.id = :id") + List findByVagaId(@Param("id") Long id); + } diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 1de135a..f9e788e 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -2,10 +2,12 @@ INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco, telefone, vagas_motos, vagas_ca INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES('Estacionamento 1', '1234556', 'Rua Doutor Fulano 2, 403 - Embaré, Santos/SP', '123456', '10', '20', '7.80') INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES('Estacionamento 1', '1234556', 'Rua Doutor Fulano 3, 306 - Mocca, São Paulo/SP', '123456', '10', '20', '9.50') -INSERT INTO VEICULO(marca, cor, placa) VALUES('Marca 1', 'Preto', 'FFFF-4444') -INSERT INTO VEICULO(marca, cor, placa) VALUES('Marca 1', 'Preto', 'FFFF-4444') -INSERT INTO VEICULO(marca, cor, placa) VALUES('Marca 1', 'Preto', 'FFFF-4444') +INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('1', '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) +INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('1', null, null, true) +INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('1', '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) +INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('2', null, null, true) +INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('3', null, null, true) -INSERT INTO VAGA(estacionamento_id, veiculo_id, data_inicio, data_saida, livre) VALUES('1', '1', '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) -INSERT INTO VAGA(estacionamento_id, veiculo_id, data_inicio, data_saida, livre) VALUES('1', null, null, null, true) -INSERT INTO VAGA(estacionamento_id, veiculo_id, data_inicio, data_saida, livre) VALUES('1', '1', '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) +INSERT INTO VEICULO(marca, modelo, cor, placa, vaga_id) VALUES('Marca 1', 'Modelo 1', 'Preto', 'FFFF-4444', '1') +INSERT INTO VEICULO(marca, modelo, cor, placa, vaga_id) VALUES('Marca 1', 'Modelo 2', 'Preto', 'FFFF-4444', '2') +INSERT INTO VEICULO(marca, modelo, cor, placa, vaga_id) VALUES('Marca 1', 'Modelo 3', 'Preto', 'FFFF-4444', '4') \ No newline at end of file From 9fa0bb9d53ceab6f392538f21018ab652ed0b85a Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 14:17:26 -0300 Subject: [PATCH 24/78] add initial security --- pom.xml | 5 ++ .../security/SecurityConfigurations.java | 31 ++++++++++ .../controller/EstacionamentoController.java | 12 +++- .../br/com/hackathonfc/park/model/Perfil.java | 45 ++++++++++++++ .../com/hackathonfc/park/model/Usuario.java | 60 +++++++++++++++++++ 5 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java create mode 100644 src/main/java/br/com/hackathonfc/park/model/Perfil.java create mode 100644 src/main/java/br/com/hackathonfc/park/model/Usuario.java diff --git a/pom.xml b/pom.xml index 0a03cb1..2bfa359 100644 --- a/pom.xml +++ b/pom.xml @@ -32,6 +32,11 @@ org.springframework.boot spring-boot-starter-web
+ + + org.springframework.boot + spring-boot-starter-security + com.h2database diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java new file mode 100644 index 0000000..b82d20f --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java @@ -0,0 +1,31 @@ +package br.com.hackathonfc.park.config.security; + +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpMethod; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.builders.WebSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; + +@EnableWebSecurity +@Configuration +public class SecurityConfigurations extends WebSecurityConfigurerAdapter{ + + @Override + protected void configure(AuthenticationManagerBuilder auth) throws Exception { + + } + + @Override + protected void configure(HttpSecurity http) throws Exception { + http.authorizeRequests() + .antMatchers(HttpMethod.GET, "/estacionamentos").permitAll() + .antMatchers(HttpMethod.GET, "/estacionamentos/*").permitAll(); + } + + @Override + public void configure(WebSecurity web) throws Exception { + + } +} diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 4760886..e9f204d 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -22,7 +22,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; - import br.com.hackathonfc.park.controller.form.EstacionamentoForm; import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.repository.EstacionamentoRepository; @@ -45,6 +44,17 @@ public Page listar(@PageableDefault(sort = "id", direction = Dir return estacionamentos; } + @CrossOrigin + @GetMapping("/{id}") + public ResponseEntity detalhar(@PathVariable Long id) { + Optional estacionamento = estacionamentoRepository.findById(id); + + if (estacionamento.isPresent()) + return ResponseEntity.ok(estacionamento.get()); + + return ResponseEntity.notFound().build(); + } + @CrossOrigin @PostMapping @Transactional diff --git a/src/main/java/br/com/hackathonfc/park/model/Perfil.java b/src/main/java/br/com/hackathonfc/park/model/Perfil.java new file mode 100644 index 0000000..c4c6eb5 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/model/Perfil.java @@ -0,0 +1,45 @@ +package br.com.hackathonfc.park.model; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +import org.springframework.security.core.GrantedAuthority; + +import javassist.SerialVersionUID; + +@Entity +public class Perfil implements GrantedAuthority{ + + private static final long SerialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String nome; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + @Override + public String getAuthority() { + return nome; + } + + +} diff --git a/src/main/java/br/com/hackathonfc/park/model/Usuario.java b/src/main/java/br/com/hackathonfc/park/model/Usuario.java new file mode 100644 index 0000000..1a96092 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/model/Usuario.java @@ -0,0 +1,60 @@ +package br.com.hackathonfc.park.model; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +@Entity +public class Usuario implements UserDetails{ + + private static final long SerialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String nome; + private String senha; + + @ManyToMany + private List perfis = new ArrayList<>(); + + @Override + public Collection getAuthorities() { + return this.perfis; + } + @Override + public String getPassword() { + return this.senha; + } + @Override + public String getUsername() { + return this.nome; + } + @Override + public boolean isAccountNonExpired() { + return true; + } + @Override + public boolean isAccountNonLocked() { + return true; + } + @Override + public boolean isCredentialsNonExpired() { + return true; + } + @Override + public boolean isEnabled() { + return true; + } + + +} From ba949b8b4b49db8c001cdbe530d9088f21b682c6 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 24 Nov 2019 14:22:13 -0300 Subject: [PATCH 25/78] =?UTF-8?q?cria=C3=A7=C3=A3o=20da=20pasta=20template?= =?UTF-8?q?=20e=20static?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/{ => templates}/cadastro.html | 0 src/main/resources/{ => templates}/cadastroVeiculo.html | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/main/resources/{ => templates}/cadastro.html (100%) rename src/main/resources/{ => templates}/cadastroVeiculo.html (100%) diff --git a/src/main/resources/cadastro.html b/src/main/resources/templates/cadastro.html similarity index 100% rename from src/main/resources/cadastro.html rename to src/main/resources/templates/cadastro.html diff --git a/src/main/resources/cadastroVeiculo.html b/src/main/resources/templates/cadastroVeiculo.html similarity index 100% rename from src/main/resources/cadastroVeiculo.html rename to src/main/resources/templates/cadastroVeiculo.html From 185d8f5c6c3de8d96081e2e3e962a861ac371f8b Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Sun, 24 Nov 2019 14:30:06 -0300 Subject: [PATCH 26/78] =?UTF-8?q?[ADD]=20Adicionada=20a=20p=C3=A1gina=20in?= =?UTF-8?q?icial.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/templates/gerenciar.html | 58 +++++++ .../resources/templates/images/banner.png | Bin 0 -> 282683 bytes .../templates/images/estacionamento-info.png | Bin 0 -> 306281 bytes .../templates/images/estacionamento.png | Bin 0 -> 126931 bytes src/main/resources/templates/images/logo.png | Bin 0 -> 8099 bytes .../resources/templates/images/register.svg | 40 +++++ src/main/resources/templates/index.html | 97 +++++++++++ .../resources/templates/styles/gerenciar.css | 107 +++++++++++++ src/main/resources/templates/styles/main.css | 150 ++++++++++++++++++ 9 files changed, 452 insertions(+) create mode 100644 src/main/resources/templates/gerenciar.html create mode 100644 src/main/resources/templates/images/banner.png create mode 100644 src/main/resources/templates/images/estacionamento-info.png create mode 100644 src/main/resources/templates/images/estacionamento.png create mode 100644 src/main/resources/templates/images/logo.png create mode 100644 src/main/resources/templates/images/register.svg create mode 100644 src/main/resources/templates/index.html create mode 100644 src/main/resources/templates/styles/gerenciar.css create mode 100644 src/main/resources/templates/styles/main.css diff --git a/src/main/resources/templates/gerenciar.html b/src/main/resources/templates/gerenciar.html new file mode 100644 index 0000000..2e2bc26 --- /dev/null +++ b/src/main/resources/templates/gerenciar.html @@ -0,0 +1,58 @@ + + + + + + Gerenciador de Estacionamento + + + + +
+
+ Banner +
+
+
+ +
+
+
+

Estacionamento Fulano

+
+
+
+

Informações do Estacionamento

+
+
    +
  • Nome:Estacionamento Fulano ME
  • +
  • CNPJ:11.251.251/0001-52
  • +
  • Endereço:Rua Doutor Fulano de Tal, 505 - Aparecida, Santos/SP
  • +
  • Valor da Hora:R$ 10,00
  • +
+
+
+
+ +
+
+
+
+
+ Logotipo + © Gerenciador de Estacionamento 2019 +
+
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/images/banner.png b/src/main/resources/templates/images/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..984e241375d4718af5b9b6ffedc178b93e630235 GIT binary patch literal 282683 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 z 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

P_jwRTb3)!(f~jjU*|PN$?rPM-ywB52FURT!I? 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 QJOBUy07*qoM6N<$f)IVWZvX%Q literal 0 HcmV?d00001 diff --git a/src/main/resources/templates/images/estacionamento.png b/src/main/resources/templates/images/estacionamento.png new file mode 100644 index 0000000000000000000000000000000000000000..5f6455e4094ccf831476f7329a6bfa6bb89fb258 GIT binary patch literal 126931 zcmaI6WmF|Wvn7hVyK@>ixVty*?(XjH?gxj)-CetJcXzi28mDo0c>Ud(JM(_L`|3wk zWUjq;L`Fodm6fYNN(z$52m}aVU|`77QerA#V36AX>;^c9e|MKYwqO4q_-^7_ZmNzJ zZl1<2=3v5Rjwa>+X?tT!a}{%AGjHc{bN+uUN^3POH!XQNUQ$a zlfjgQofW{v!^pzP%)`n~4`5|x;bLOuVq#%qU}oWE=HzAL0sQZa?4LImGYei7F^T`} z>)%L#%*xHpiI<7V)6Hk`Sz0?1Zb#VRPY5JEiCNEat}x~Mri+WmJH zm8=}y99^v(odBYu|H&FRfLhbq!OYRqmFB-V^76dW4z6y-4yNYPVgh9UR2Z$T&3Ktb zgxR=Qn7Nt7#h6)G#D%%VL^y?6c*NKwScJudxmf?3E9PkGZg1}3_TOBy|I6k1AG!Z& z2YaV~p2f^vtUb)lBwQTr0spmZUhDrk7S8`s?|*a6{^wY@{zop;zhIdDQ{4YovHyGO zUkCli{6DSxZ}5Mb-`wF}$GiM%?Tssq5isy`QE4$@HLr~(e~`z4RD21kS(uu7_uKZ= z`ON*-*Y-@dK!*ytaK{_35g3shYs$JnXO+IdDQvoSLs5=-fp4&pnyDbgtFr$W=! ze(K`)m#^uMyJvH&Kbqf*e0N^>G_T%%6cg7|<_Ydsd-=Hkz}>aHaRPib_io=PzSws$ zAAWw7L`L1}bQm_Lu9##vsv@OQ8r%_4Kf1x)PpaqneIm<~B)1th(-rU4JTcBO0S1Xy41Zf=Bk{(e8J zm*=1Iih?2tMz_>@8)xt2xm7zYPSK(LXnM@2f5&-p?+)C$Y~39FXxVlo{b11G4fxs% zIR4&x=&FDD^qG5T8fW|UV=(JPQGsDJ(X@C{`n}>5A$w*LXRCo|apb5cCtI#~<(vlU zomg^jmS*VWvXI{5m7$~DPxp|`VU!zGRgQ6Ln_d5&XiB&!56kF4N?bKDJZAeE=&qMa z3g2P_mG}G{YbyDUY1pPdse#G!Y#>USXI?*BD`@x@^O^D)*|Yt4?7B&^dDbpqxcRuz zTAOgVFzcFi9 zSgqYm5Q_wHN2Yh~gwB5C{?7W#4d5a@bs2l#18rZ#pn;lVCZ{~)uc}N2{ z@t3jA`fWl1Z0$er?p}@FCTRo9oJT!}1>y>_lYP^aIVl4=MknawnleXt z`BQdP43AXz#Iv+#7UpV_^|Hj;Q{7M!7c<->MXG{;PXaB_p`qMXhj)d*f=5`Kndkjm z@;HW>-|W9By@7NATF=BM$bN!=@+rEX3jOD}C^g*dxh~%~Oth|%J}IBEfBWq&*WQ>M zlcM-D0u>a$x;oZZNsf_g+y(;ETkp|&*mY0L$MfTj(yi;y9ajxwuhy0tFc$+!NR_6J zbq@dqUsGpHj3CV}Gh4DWK7s071uv%Bg(H10>$NMsEA681~=2IH=&qYwJ*Ouh_-y?$*1SV4^&gWf>|rhU`mId`gnRNK3E# zCt4*KdYf2qJ&*BU1_`+UghHY1d6`8x3IrVo=>{cpxQeKTum1kGe9P~Bu9_8WK}LZa zei6@uXQc)~D2;e9v<+HXR}oMu9=>n7kAV-)Yq(>A$gj^S$kd#jC*GtPfC6ZiXX}~u zaISqWjyd5ROsxL7Cp+9@Z0-(o=BM1Yz#~#)ncdOak)IfHy074_(#X496kw#_az4o! z9f*Y!;+Fm+suy=y07|>sIVPNaI=gulCF*@tx?gpzkTkc1*kHd!!F00uL=L0qZk|rZ z92$!tu@QBOgN69(XlG-Jax`u{v?#Osg^|cYKnzVcQI;DOFBe_#ip~~MMGgo^D#AaZ zgu`D0p@VR!?)-+B&RY(11ikRswq_&RU`uS(;p3_GN=dF9<) z8N=EWgUVyPJR?>mxt*LHs2qgCWOntH#co;Yhly^)&JFnIHsI4^*C=U`29aBg$DI;6 zzb2SDRvV~7lrP*i_Sb+LWu|ioiw(CJ1}<7Qc9k>+e|{WgMg>7CSI<+rZ*c8i#rCD>3{Gxr8b1eMdBb^`knV#VJGn9YdSr2o$@m1w z?ssk$|Gg}4gdTGVom?k8c%D+CG^g4CA(VMc3p_%9s=vBIh=dnz#A)g;ZC9}vaT5tKY zxe?a-BDyMCuh8_$6}-YC(THAycA;c=Y>#7ygz;!W%FwtA3TnVL4B9whOE7JKsO;Bo z7>)`^gYtTYKNtua{XVg-S$mB~@Ur`a(B~m@H4spe)Wr4?qihh5#i5?j0r1h_gp9*v zYh^--MxNdd?mLf?upwa(nOIxA2wVB6PGP!%@{++HFGjIcdh)}iEFb-7XhX14xdUHj zDed3$nFdl~!Dy!Y*xOBFhrC!HOdnFCZt;!4i}ffOT#&F|XKj|I#rlnF9ZXPL{%vF` zxWn>jKR5)vcBe2Anx3asV58>BRta&Ij1mIImIA@~qAJQlZWgVa5cpoQ5rSpvDp{of zi77wnyHeYMIhqiyQ@+Ca5psTIUImmU%}Pc2b3M*hi$bVpbk+MuLbt$(@|(6Ijlnjp z3w|>G0bwGxm(qnDYVz)L5L6~Eg8k`P6<7Z0oP{(7YG3b1uW8^02OgSCH)=!>ydLp! zkzE`GmXX=UA7iaNG_B5ukq&o~W8fE{n@`E6JT^2^Os){=7 zX^&z3er&lHBHGM%jB#+$G)v=mC zRX+Ej)fPQuca5|ZHaF5OyrIT#U=*C)E}XZh$=ZlgBBm4ZIve#AjdeubwZd{S*38HQ zI*?F4g^1HXW@TB8EXZ_+KL6d@^fd`E+HLpdvy-0iq2VA)Cwmbn==!zQ8}EKm(9kP7 z8WwzyT%^v->jc)VbUcRF5W4Ri3MFD-?W0A;jK6`+#jy65ltXZ^Ci%X}@0YemhN02= zF726yT2JGwaum5UR%Eb?ds=2C86GAGADp-!oEu^N~!~RdsF(Wd*w}ilbG8HxMD*8W&sSz zmL4$f+WkgV!JMobGF+ZuZ~jYPE1xc*Jk~i#j=X<%!U^!unc0B1SORXGkzuHp;fm_8 zvS46ry&gd5b3HuSHR%yzdrv2!lQzsar!Q-Qp@mZlB2eST^FMLO)QGMm`Y{1ITF5e` z8M&lSm^q==FTKeB)7Gia=zFo+Cv^QyeetV3Xns6~KHqMRS?4(xKXprF((v9q?rH#E zEtYW7lTDbh*!wF=%i9Ux3vJv3$qWWMiMG?Mh9?2;50~}%D5OeO5Z)d1%@p}H0V%VI ztTpbzOOC*qx=|IyNZY2}K59>L=c>>C&Lz zXe2?r5uUA+G?6eVhwZiPc%GeAi~`G&6M}|BsO=jspM(}BfU#^ZQ{D<2S>J zYX)V`2|y!qg15GDQROR&Tw!@-7bEz57b+dGYub#G^+a{gc&%>3q0rGeCTF~ATP2t9q;osmf6jVgyfQYynpLeq1c<>?s`K=TPZ3WK>-zDil!*(`8!M2 zSI|0m`|pgL*iLoSo<1}t>%yYFyh;^ff6tbdzElp9ze85GgSBy*4E2xP5|jzy%P{CC zd-K0m7ifu#L$YsrHsl&f1;+Ziks#Z@&Q@v0t4Qc00NN22M3|!rdA3*y#3}#?7F78l z=aBM4sj+4KzB?o&QNTY$e z?Ct#VPNwdiV~>V*@obDzO)Rk|3Y^xg@o$xGu(~ykhD7&N`>zQu+cAHL588T znFkQEsCEf0Lh0cq2b_X{h-loJl5WC(qmuT0ac_vFaBA2ncn+lfyQq}7ELLhMddHr{ z;o%)NsJR* zztaj54}P+(?u*-z7cCNFKKmBYPzVT3)F;*zFths+e?}gWu8bw)6I;FArckp{>h_1H z7eEm{D{HW|yL}<0=P$Teek^+O?FqwOqawogf`{*5Wpz#Bjy{uc{r$@()Fl;%_SBLI z(bSlSKy%g+ww z=ot|Tb7X}sun?IZGMt}IPaGcz_uE|^)S{K|psywqzy6-0>QbS1)w#vKDLVjmMqF~v zVulfP!p9$(6!#8%<(~1W)gXgeNUflKU zP((@vYS2=Vy|=mnbSkHefG1k38!I@k@lqk?hYLZmw#?!NaP!df@{TynM$2|CVKO2r zl~v(HAfrq`26+~_2fT?6cu`UaOlAX$tbw$Hy&82g1BV@~O^(#+Rl>Wb%CcG!M;4Y< z6?ju>mK%w&RF#PeRF+!A8n_s26uWlD&kX~lB`t!sBn4~j^1T;;+qfT|ocFd~;bpIQcM~CbAjQFyQQpLB zGx^7i@WE<0N!+bJ`XsPtl1vW{BrBnGVa_2+DH~mJK(=md*lel4Omt1mf3?k+vQ!1Bxf@*&I^T@yRDqmW7&NXHf&6!AC8W&2 ztS?q2?ugA%u*&!*l=RVjfqyFbmj}iQX*k4W>zZv}zvp=W(L>bNj`e`6xjgqW!R)aw zJXEbv8}w%NKKOkCQfs|U>=nSssVUFFHZ@ORn$$c)rHR2_3TOuM)5LMDl^v8wx4w2V z!pppg8y6Lic2?1EYYK%3)Xqw*7$I)Msgo~RD$%f`4)TyT8+6i)?z2v+Fxa}dV|$^IbMYlm`lM0t`AW*ubBwtqQng1--{0b#z0M%Bz(-WJ<9>NKh>| ziDUMcm}#N;OrM8{9GXR^4iRn~FK+Z#}mC=ydEi?wv>#dXq z)_surwZ7U)DgPELiYMlmTufdBOLNmTlxmHK&P#D%%&7)cIhotL{VPFfVJ1R)dG8~6 zYw1L$q3lIy7`Fau`gpgkL(q}?pxta^?3A94-a(C|W~cIaS!pRW8A;pSVT zZ1Qkks*)yrywj%lsq@P1LMQ!MyHrTeC#Ob6yCYnVpU0K>%z& z=3(ptZ?*yAXrU=C1`aW3XH4G2V8F7%?RRjz&`EKqVo}qjD%c3YRJS?y5j88^MnsQT zE%}1*+V}&iDdp#D-8mcQI>LX-4@x;#2m77Wt^7a`0?VG_jAM_}G17@TTw?)d zSW20F7{Ux5?Kh1-E^&w`F&tlB_^L4&Ld@jEpDiqoX5F~ z?(g!s)T72}ZoalhgHH5uK9a!OK^Zi&)m-Jk5U8@szpYh64Lb|$Kgo*3hl*pXmIgxW z#4==QK+zI597f)0<8eQUD27#SoDXD!JkmT**9v6+@ENbV!^qpx{5Q-2m#YuQYq>uY+)uF)=@HmQ6p4xFH^#HsjG6bjT!1Y=)^qvKQfc zhzY+#n;E>EWr~=7#!@x~ZuC7Gsu~;3EV2j)-RsVa0XN<{R*^c1x(yu9jAnVgF`+qQ z@G}80C>*y6gKyL-gX)^d!Cmwu4Fjbpoi-NnpiHukiwJI38w%HLhqG?-kj?$%0} z$u&}uveA(~j#l?Gx6 z>`7{g-au9)-##?mQX8l1ldM#IC<+$yzT|c1 zO46iFDDz-T|EqE-jPSECMe7w5)Q!J(j!&%6EOE_v(6MzCFZoYoI6rb>{CWBZNNCP- zkX-p8AcAALp#Gww(W{NM(dW2giV}-GFufy5TIF_HX8Wj?(cp7wGOWQ>x0D!V>|HPA z`4{xB+#B)Ak1p?KhkisFR7bi_Dp&Vq*d;AC`U^r+7crZRcX>4$E&0JG3&iT^4t$l*FAa?12`hBi2lQE;^eyFpVJo&SRfsQ+sN-cw0#Kblw zchoHWF>Ve(g?L7y1<)#4GX@B|SY|Ry+iE^`0;zr!;G?%e$)8EsH$sdKkub84WUl<(S(gWPT z$QbMU$);C$WfVahT0s)&|77J4CLORMe~IiR#}zMw-fN+z~A#=vx%qG*p!4N3?lN=~McbLKl0_NgV+Nk+Ygmsg#`E?2vE~HNTVF z-uos4kN<$~M~b#rFfj}&6FsB@^2#BZ{=4gqw%hq&&X^6uCxS}bly=KESWXGbmZ$M) zn>M&oN{%e=Etb#TE-ivCvgBw{^AqJ349%f+Z;qPWb}?N=-(H?1R=Yf~*I zBbm-(4CE}M3CylUbUwWL{iQ1xnzHI6Zy;w~(;ZxcHOabgk6N-%9Q)fv0bDMk96bsm zthfSrRK$AWaYTpIWK|9j2JB8gp2xo@t zbKqg#7zVvzcKKT^O|%C?wma-XVn=IU8`=eNYI2@R2;$4?KLPA=Rk5ZD~tDUb@@c%eMx=I;&tRq{44nuhGJK7RM+L&!Hs?}XjSCGb`n8#^coxq1%x_tJ9P61w%Dwk ztK*IfbxQde_+6 z5OLP7NM1)MJK4f@|Ie=2oiC@dvkLq#N&je*eFxqTWge=PY_jDAc!ZAkwpX4wTSUfN zMM@{YDVpUh!y2_pF0J%G%+_AggHb;`{zm0&IyU;EVwZeoech*l$JK#VsM>T5Do?wX zWT$xB_wD&a74-1xN}W61yTex^tcR~0yM;lo&sOjHWX_+kS2sqTO0mP*&Q@wl{5JwK z#cNxoduG!|yOpjii0B*#KP@F4jnB6SjDl)}XZ%$4xAx%(t80jw2Qa&%y>@lh9Xe3P z9RX^3Qs^n%y>0J4jU!0a=GjOg?>hWNg~9avC0E%-V(XGibK#KLB3X-2bQ#*qK5(k29@o73>VXvs z_EB(JUpgcEqK}fyngV)4xpw*ic@m8q+v8sEd#6K)+mkjoGcD%|i?0HcUf8rfEHRk| z8u4lT5pc7mJtRqBPc9Bm@jlFh7bi(CgKVXNwfd~m$rwp?$T z9wV%Z5PlYZww*|@-D=~M2)CR!OysEcmF1OH1(b3%|sZ!#zQ4Pw^%#`+vdE9Wb2ku#P7~I)$-EK#! zIPCDO$>4rAoSvSJ$O59a%7@(@;!(rv>Q|y&3q0I@){m!{tx%NlQjE=e#xTmuwN{$? zsRw0hlLR|%FYmkCY=!|Z7S5*KnaS$<$y2$oi7&KJSSv0+(X`N?XDS&p=ka{V;7)Z5 zKJB)BE`)5nnggtQK%h2Q-sThGZ;q_Jp@znt3do)6E2Y(_m+}UtID=5yI^1TRmae++ z?V>qRmaR|i-v)Uyl~NW@akKa4DOrj9A-mvd5Y{b>Ek?Sf>MmtzNoL7D5BTEu3GUPtH*W13h1J)Fl zr*YqRnv9<{2QC~#LIn@q%J3NOCAD@lMXo5lGVOT~H<3|zQ|+Cm+_E0O-Hek8Ibm#S zb#1uu-DLx+c5~;yGl^`Wz2~9 z8B{R!VBuQGT=I>auqd4?YgK)QKs_8D=G8*Phz-F=V<~F2Y@fqsNYro5RPq-{x-kKF ze;zRkcF;5=@vwgR)TecWL*VQ~)3h^EqwTB@DL`lmGvJqyvhAqRT#yZSrMD8n5r~>&G^}Ud*u@Q(rentMtABTGkWBrdD)o zq6fuit76wpAPhucz{KWL=tuuf>kSx1l@fI}7WMDO+|JRe3<%WhAWlejyR^;u>O+#K zU z;$>s9300@PnCAhF2?`DyIlw}H27H;sKj+gjYY{CfKp}u=uJPQT?K0*)J;k{k3Vb|V z!4`x%*87m2_)$RxmS;*%pDQ^%b8w+hVtWCSh7XFuYFXYH*`-_i5|IG)O`j_1#tIvm zmxq%KTqM@=Wr&W(tr9b15u{&z)>y7ukOF}bZg?_%_1!;rgpCK`@4LA#cWSt|i#Eym(W(uBa%t?CY|e~Duavp|<0iau zk6uFxlyKQXy6dK@h0%*{y5Bt7pzRv0#~R8feM#=7TfN*fzMPbu7!^Sl$;^wY>=08} zXUQcf-Eyx*ls|e_=o3Q0&|~$G{i_E3Ul)4hU5$miBNB^p2rz>ody7N-=E?&FyFt;RmI}$rlidjwbRo^MR)i_H8zCjc@Nk>p!W6Nd?SL= zMmSdHJP|7E>b~h^7{`sDfxJn1v%bBXTUmY#Oufn!7WUCAlK$L^)*UQwa&6tKkQ(yK zpriN&JNiO!_7onMmxP}>SDG;ebMD9jY_y$4POw^f2ZpA5ps_8>ON&LOpB=Ps{@6=C zpjRlOlrF&u#PG6K$^4uw_Lhj>uoO@^*M?#MUa~_%Ua`X@=JGccG-ow^==)r5$Xx0j zzc4~S#CgoY9-sPrB#aXgw5>W5O{Yx}_u5#cwkPn{*U}8KVQ2`?cU0bS23ZnlOXO4z zQiHmmNIK1Fb(p&Nfz_A@7jw4cCJhUf2XOwu_a7tej9(A=pOsRW;EgpcS&$q_aH(5I zo@b@|z#y^;X35yhd6pPa*j6O2u(bG(Efn32Avv45DroP3NR4~^BuSf{)k@OwVaSE3 z4ekt?oeCBDS2!aPk)0*Q3^gR^FKOb95e}BEgJ75LgmN$CNefl{F~cJXC*`Nz_bTh^ zjWNW0%;tV&w~MQO#p!f;;&94iIiKvbR8^P9scHRsu^pw*9ix6k;XUQe<6xtOgs18I zJs{9q0g#I?vy&~RmbXWbIdvuNNw5@!Ef0@PkDSMs=`nZ5=VPOdI3tg13_KAW?OTi- z+JQby2-odIS1M))63)>3&lfSZHSuKH%cnS)73EKAizh}K@|77Y>!_h-(T@wrXnW-R z!g-;hnGn>e{+6>bk-4A{g&`Pt^`=RNp70 zh;wgEhx&v^t9t!+gK}W2h&KN+>6uCbUoea(ZPBlxipj)RM(qNp#3~ia@ylRi!J3ZA zg{kIwToc=sdbu2l??$ZohJ#q;DpP!%E5HrkAfT9!CrhI-2nPJe%3_=iXc&~G#%+aiw&1{)|dpXN|r(3I?m z;5iMVY90^b*hmF%qW>w{7atATG*~e|=G1Ajd*CSeX&R`2Gjyl6WD&ol80Qbo7f(a1 z&1;MA%vop$`6^d*UN`QG$=FtS}~VM8!ayQD1xwk59xe{W*^c=bB?B0sR~jYRgapijxfP z38q)*lZcm{ehNjTHrij=WSCorT+>k05WgUkJtx&>N9K0~H{12QeW!i=^C}+pbMonC~Nny*M|I^+nvvc9p1#PmQ~0ZC}{toQa==M zo|gnc!-UcOvm3uss#^6APVtt~@Y}=<9fq7iMwj4lK20+6;H@_k0w`mk)f(@(RYi)vE?Xt^G;~?K2x)m;yOKmKAovt$^ zP@nJu8b#JwyD?joEG^0_ztgu~sK71;jN>#xMW zH|dVQq)@{4pVl&Ml0_C57jo6~{M!dVj1_!KLd?!8d(Oyc|9igKZKUrXX*HNS-QRe? z@Em_c$-Yn+E%*J-pCa2xGg+$J)}{J0jFsdp~P<6D<))L@-?F0V(5I3tWM&=`T`@7&x~k zkZe5OtubZevaJ+xo+TV{f?aLog`XEiv`qg+`N*jzIIm_9MUWKmf^=H|VWw~NB^u;t zi8Uq$09tZlMZsA)EE7aq@id{tP|QGJ!{<|)56DkONkyY%(1S>(L85d)%tGd?^Z5Hi zyNHC<8z!=!0S9HkGNY7U((qan*OOqxs?M21fNFLdO;Fbudw#~JBNU;;Q@_x?mPnGE zRg^Z*3s%QNiH?xYI3LO?ajw1luWA;qXHi(10k_!QLNY z{fI|EU=wH0#9rhNIX?vix+t-iYb2sb)hrz$yuljyz)Rcjz(F)6jg;GToT1HDB-8pDPtR?ii_zDN` zAyGg?e$>1snQrOXiHdx8s8(%Ok`@eeD>c-|b5lXAxK0*|YYEP!vPE@a>$PN=EePMg zP$x)y`Z5>$CLXE5sxGSb<_l5mFW_MOauxWoda+z+G#awxk&FPwQN;Ru`>BwZSSSsy$WS$-HN*3vhpy3~e zt9RBd%J>6EkacM9IEAuK)2G1=Pr3}6nDdA>#o&RVsd(}t$2~Nl76fZ=+o{IVa~xKt zVznkr%-hp8e8}7LB4`>z5q>q|Tr<@T7D!cT_$G~hpISOs+P>TVzDKz0uH8Xs5mSFf zc4P>f^n?FI^XG^L2L$&C+wigZSg?;7c19>)Aa3v;gf?key% z6HYC-fRb6qPxO?Fu0`TobF80u7`I#fb_|vJA<>r`BD%lVbU(;HN^Xb^MaMszp>z9Fo>K22Z35N{?E;rVQ72KBS$Zq z_A#$x0pdYe1CAG>(U?kgmx!4rg_ta*lWwi}8O<+@wElBD<>fiid?15X`ALIu22DX< zY(o2fOM)5Y5o~A44;NqpKh-6SwE2qqP4*JHIl8K^4f7_smZt6<8)W})Gzz7Skm07m zzVQ0|g(qSSahqe3jg3{k$C^hi^Y1C@H(NS5_h9-Zq8>>$MPm5pM zUs`)VQ@MNNuU^aJp~p+BfL@Ejngd+TUpW^e6)-%9l7_9X-yBIvd;J6a0s^)jpW#oc8+syd zRFNR3jHTos&iPXng2idl@s>bYP)xmY=t!vsE8TK1Wc1cK3#vyLxaeR|lH}$`-0n}* zmc0;cV}|go{d_05eM5QtP;+nw!7&*=s*XMQ`+N`+`90-Mnq2~CpXiu=ywcYax1=Pl zGV9-F9bZ_!DmZP2Ef&7}%CB_#1TT~g<7XpR&ARPu!_KelEXK*JR_q&98wt$J0h)1# zaN1nz%g9FQ*B3O+(&oOJ(P=V#*tI4u6x;!HAcV^1M)pBr7`Eb;^uj-Re>L`NA&Hw= zgP$<)D^tYuom(e9oY=xsKbAe+sFk^?SF*%2yG8_WjIktjnq#e5bok@1q=^ed`d8%A z`6&H=CGS9fXy%G_WagAibuEydQ-|;L&8aCzNo|E@btop>N`mp@(ystgl>O*3gky1QPzt;wCfr!mYq`Je#UVi-8Bg{qd?Agm2v`FI(6XR0YJ5WpCi(VLp z+Z~~ufbw<}=lYJ|j*ieb8NvqWblcxXbdEjG)|p==N1#F}W%utb*ip%an1+YUT}g7g z|BBgxB*ry-RaQS1bl1!nfB1uZeDYT<+}C2CY33x3`7oWgvmCX$A z^-x1AE6}FuW618Q0jpWkW25een?!z3QJ~;taYv) zP2)v(U>FVPwm6^uPMLH&MXSzmVi>5K1!@z9Rk7#22CUvoIO9%D9 z`HGoHY{AI3tS(evFIQ=E#EhhHO z{?S9fqe?b3$8@{wWI`LMTUxfuF4NY;rK}A%t1EmZ{(P$%^zc`yk{pMv9ceHuS(aa= z-(M)%X%hh@s;40OKw~6Cx<0;Vf67y+zQw%KA#3-I4f8zRK|7;>mtmu!nwF~|_cze7 zwpUUy{Krd4!?_jn%}}|Ac4|H?>!68?7#5wm`{M2F*E0QSdYlD(Pc)qfq+O#m!9ls4;UVP>wN+$6N zKf-nG9(L9T5RrEW2v^TS^)zYcadhF9lxRB}RmyP^e|(zq&krW6Q#HEcF^>MJh!pHP z7kg{Y=Y$TVlHdnf1%~taZSvkOyj+p?gm#Obi6wF%ij%^xj zEGzULlFspv5-Y_0qP$2_hs{6B(r=VnuA3_!%8}HUA9XlQ<7Y+Hs+WLx@cvCbj?f$N zp@mUwK@$QCB}+Y3yYVZI_*4pJzS!I$xn-vX8t80iGy6N9V6<6}HwFf%POBlM6j2qG z;D4Hb1-z@0%zsNB(fdCCk#lhZ?(kV5fPku2h#IZLlX{ZlzbrIjq{FWi$`(1_WJ|%+ zv;Qj}y5fg~wtmyf4FY;@`l54)bZI#6SHEyau|OHvpl!O_wZt|{l6vS6w9C&7pJ=7B zjF|A{Ro(#_@KJjC0=$-~JIx=4DQ-P(fjc!qsn&f$-y`XX-DuL5XIg8>%k$n=N; zOrHC05|}6%I$D%lzH-*@yX9O^VXN$@fw7DBnQa|YK*VY9MM_hs=|8Hltqr z(tIyi2_A$nL0cd6Kh&?KUtFz#NM0q_7%}U&e6%d<3s%WKt7$OtwHmfL5~dji_Ee>T zds6WYeyBiU>E8xLl%wO+!T3Ap>E9>Np)J z@dEGSI)1)WXn5QtgOYOsS!rdMU-kv!QCq)sNV9e`9mP#~#zdfxQx4YOssQ&)<@$7> z0IR>AN>4YVSKj1Rcg=Nt(&@6h7UF#&Vz@ndTj17Lp2`qoLhDZfFs*MFt+P8{&mRf# zaNj`$=T6rnsCKYueypmI_75$LY9A25Z|HEdZ)e;6+?&A0datT2rodf0z1EmA6mr9KkE;q^xyk{xujy!iw-#mAZhHnHY%V;$NQZ`8lr1Uj; z(vQ6mgag76(u0_c$Vb5j6ZXff9X%6ZSY>O)%Uk5rM2MMaBLm~dasH{+(rvY*Z!+G- z1Aa>@8fU0*`F-E6T7NeA2F^jjYO7#2b*oDDbb0|JeYUn2j2`s5MO=mE9z_WmFVW^b z@j>$)9}!M19qyD1Ds|&N{S)jY`x{XK&au$sze0o8g)N{A?R}SzH9UXDg5#V|3Ls3E zTqvrB$F>ZAHfuY2YsFzTPk|jU2~B}8o*6uXZoJ5R0QvrarzZM(9U3}R0d zjYM(+#+RcJ9LaGbE=71BvuclpLofM{_wbeduLk=VOO$pvUCXHmE56~9r~@k2GSH@y zpfcY*X|4E2>x|Q<^4yQMW+V^mA=RMd%W&5QfAYMb^2;2pI> zgo+d%ig8kMkizO^Fo?^3?R}MKh~{*!hXFIfBvM5>b-2{Z?n`pQ1KX~19TmKC6;P=M zz~}1+1;s*UQtxsWjyGk>o*m{aFeuc2vGJPhN-7l(Tviv{khvN+>?mteCmCv0GhHGB z<+0%vq+MAZLZ#|`l#6K`0_Jfw78qbKg(84=qGwm)K$h85m0`keAaL-jC1mf&PR9RBBqzPp=|#AIZ4Z)Jc1*z~2T;ya?FUi6#x_Ol?yx1X(8|n?JX{ ze-C_n?(*MiCn=qyTO~A4nDYJ!JLhb=rpEa=THY9-$+U(-YHn~ya!08UDN9=EPYt1b z8>e$=uB{BtZf!c91qPwq1#^wE%X7IDp34Ppo| zB`M@Lx}uu87FX`ts-jfy9F*PU^_jOid)h7df>wMi2hbGU8&Pq*hm_b*Y#ZG&J3;ZU zdJ=HKR}*qbn+es(jy}e2D`PS1_R+tD-Q2%rdur`VH_U$~$>?Aa{gJf4_`XqbfPCa^ z3Q3-Es*Y4F@z_wtRmmq!&c{EI*&Mr$TunQjPG%XV{bQBlsT-X*YRL&pyud6P5qIh!lQ<>*c7hIaU8+B4ay74acv_9e$c9 $$Yz|UsQuY%@ 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

I3oan>9;#^oo8+5J9b*a$q8Vt9H#>(x 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 P00000NkvXXu0mjfkfd9= literal 0 HcmV?d00001 diff --git a/src/main/resources/templates/images/logo.png b/src/main/resources/templates/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a47fe52e015b5206d5e466345b4e7af1bcf5827e GIT binary patch literal 8099 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/templates/images/register.svg b/src/main/resources/templates/images/register.svg new file mode 100644 index 0000000..459b3db --- /dev/null +++ b/src/main/resources/templates/images/register.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html new file mode 100644 index 0000000..cf10130 --- /dev/null +++ b/src/main/resources/templates/index.html @@ -0,0 +1,97 @@ + + + + + + Gerenciador de Estacionamento + + + + +

+
+ +
+ +
+
+

Estacionamento Fulano

+
+
+
    +
  • Vagas Carro: 20
  • +
  • Vagas Moto: 10
  • +
+
+
Endereço: Rua Doutor Fulano de Tal, 505 - Aparecida, Santos/SP
+
+
+ Gerenciar +
+
+
+

Estacionamento Fulano

+
+
+
    +
  • Vagas Carro: 20
  • +
  • Vagas Moto: 10
  • +
+
+
Endereço: Rua Doutor Fulano de Tal, 505 - Aparecida, Santos/SP
+
+
+ Gerenciar +
+
+
+

Estacionamento Fulano

+
+
+
    +
  • Vagas Carro: 20
  • +
  • Vagas Moto: 10
  • +
+
+
Endereço: Rua Doutor Fulano de Tal, 505 - Aparecida, Santos/SP
+
+
+ Gerenciar +
+
+
+
+
+ Logotipo + © Gerenciador de Estacionamento 2019 +
+
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/styles/gerenciar.css b/src/main/resources/templates/styles/gerenciar.css new file mode 100644 index 0000000..1b33a14 --- /dev/null +++ b/src/main/resources/templates/styles/gerenciar.css @@ -0,0 +1,107 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Helvetica Neue', 'Helvetica', Arial, sans-serif; + text-rendering: optimizeLegibility !important; + -webkit-font-smoothing: antialiased !important; + background: #000; +} + +.content { + max-width: 1170px; + margin: 0 auto; +} + +header#main-header { + height: 284px; +} + +div.wrapper-content { + display: flex; + background: #e6ecf0; + height: 100%; +} + +div.wrapper-content aside.menu{ + width: 260px; + background: #505050; +} + +div.wrapper-content aside.menu nav ul { + display: flex; + list-style: none; + min-height: 500px; + align-items: center; + flex-direction: column; +} + +div.wrapper-content aside.menu nav ul:first-child { + padding-top: 20px; +} + +div.wrapper-content aside.menu nav ul li{ + display: flex; + background: #ffa201; + align-items: center; + justify-content: center; + color: #fff; + height: 35px; + width: 220px; + border-radius: 5px; + font-size: 12px; + font-weight: bold; + margin-bottom: 15px; +} + +div.wrapper-content aside.menu nav ul li img { + height: 20px; + width: 20px; +} + +div.wrapper-content section.main { + color: #fff; + display: flex; + flex-direction: column; + align-items: center; + flex: 1 1 0%; + width: -webkit-fill-available; +} + +div.wrapper-content section.main .conteudo { + background: #fff; + margin: 10px; + width: inherit; +} + +div.wrapper-content section.main .conteudo .info { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + height: 140px; + padding: 40px 20px; + border-radius: 5px 5px 0 0; + background: url('/images/estacionamento-info.png') no-repeat center; +} + +div.wrapper-content section.main .conteudo h1 { + margin-bottom: 5px; +} + +footer#rodape { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 50px; + color: #fff; + height: 150px; + background: #333333; +} + +footer#rodape img { + height: 30%; +} diff --git a/src/main/resources/templates/styles/main.css b/src/main/resources/templates/styles/main.css new file mode 100644 index 0000000..6674100 --- /dev/null +++ b/src/main/resources/templates/styles/main.css @@ -0,0 +1,150 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Helvetica Neue', 'Helvetica', Arial, sans-serif; + text-rendering: optimizeLegibility !important; + -webkit-font-smoothing: antialiased !important; + background: #000; +} + +.content { + max-width: 1170px; + margin: 0 auto; +} + +header#main-header { + height: 284px; +} + +div.wrapper-content { + display: flex; + background: #e6ecf0; + height: 100%; +} + +div.wrapper-content aside.menu{ + width: 260px; + background: #505050; +} + +div.wrapper-content aside.menu nav ul { + display: flex; + list-style: none; + min-height: 500px; + align-items: center; + flex-direction: column; +} + +div.wrapper-content aside.menu nav ul:first-child { + padding-top: 20px; +} + +div.wrapper-content aside.menu nav ul li{ + display: flex; + background: #ffa201; + align-items: center; + justify-content: center; + color: #fff; + height: 35px; + width: 220px; + border-radius: 5px; + font-size: 12px; + font-weight: bold; + margin-bottom: 15px; +} + +div.wrapper-content aside.menu nav ul li img { + height: 20px; + width: 20px; +} + +div.wrapper-content section.main { + color: #fff; + display: flex; + flex-direction: column; + align-items: center; + flex: 1 1 0%; +} + +div.wrapper-content section.main .estacionamento { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + padding: 30px 20px; + width: 800px; + border-radius: 10px; + background: url('/images/estacionamento.png') no-repeat center; + margin-top: 10px; +} + +div.wrapper-content section.main .estacionamento:last-child{ + margin-bottom: 10px; +} +div.wrapper-content section.main .estacionamento h1 { + margin-bottom: 5px; +} + +div.wrapper-content section.main .estacionamento .info .tags .vagas ul { + list-style: none; + display: flex; + margin-bottom: 5px; +} + +div.wrapper-content section.main .estacionamento .info .tags .vagas li { + background: #ffa201; + display: flex; + justify-content: center; + border-radius: 10px; + font-size: 12px; + margin-right: 5px; + padding: 5px 17px; +} + +div.wrapper-content section.main .estacionamento .info .tags .vagas li strong { +margin-right: 4px; +} + +div.wrapper-content section.main .estacionamento .info .tags .endereco { + background: #ffa201; + display: flex; + justify-content: flex-start; + border-radius: 10px; + font-size: 12px; + margin-right: 5px; + padding: 5px 17px; +} + +div.wrapper-content section.main .estacionamento a { + background: #ffa201; + display: flex; + align-items: center; + align-content: center; + border-radius: 10px; + font-size: 12px; + font-weight: bold; + text-decoration: none; + color: #fff; + font-size: 15px; + margin-right: 5px; + padding: 0px 17px; + height: 40px; +} + +footer#rodape { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 50px; + color: #fff; + height: 150px; + background: #333333; +} + +footer#rodape img { + height: 30%; +} From c4a986efbadebcd7b206548ea79aa966f3077757 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 24 Nov 2019 14:30:50 -0300 Subject: [PATCH 27/78] =?UTF-8?q?cria=C3=A7=C3=A3o=20da=20pasta=20template?= =?UTF-8?q?=20e=20static?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cadastro.html | 169 ------------------------------------------- cadastroVeiculo.html | 131 --------------------------------- 2 files changed, 300 deletions(-) delete mode 100644 cadastro.html delete mode 100644 cadastroVeiculo.html diff --git a/cadastro.html b/cadastro.html deleted file mode 100644 index 2f3c277..0000000 --- a/cadastro.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - -
-
-
-
-
- -
-
- -
-
- Nome -
- -
-
-
-
-
-
-
-
- CNPJ -
- -
-
-
- -
-
- -
-
- - -
- -
-
-
- -
-
- -
-
- - -
- -
-
-
- -
-
- -
-
- - -
- -
-
-
- -
-
- -
-
- - -
- -
-
-
- - -
-
-
- -
-
- -
-
-
-
-
-
- - - - - - \ No newline at end of file diff --git a/cadastroVeiculo.html b/cadastroVeiculo.html deleted file mode 100644 index 979387a..0000000 --- a/cadastroVeiculo.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - -
-
-
-
-
- -
-
- -
-
- Marca -
- -
-
- -
-
-
-
-
-
- Modelo -
- -
-
-
- -
-
-
-
- Cor -
- -
-
-
- -
-
-
-
- Placa -
- -
-
-
- -
-
-
- -
-
- -
-
-
-
-
-
- - - - - - \ No newline at end of file From ff0aef9353ff4c391745da930726a727729745e6 Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 15:12:54 -0300 Subject: [PATCH 28/78] fix veiculo --- .../park/controller/VagaController.java | 4 +--- .../park/controller/dto/VeiculoDto.java | 23 +++++++++++++++++++ .../park/controller/form/VeiculoForm.java | 7 +++++- .../com/hackathonfc/park/model/Veiculo.java | 7 +++--- src/main/resources/data.sql | 6 ++--- 5 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index 503f405..b8592d7 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -20,10 +20,8 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; -import br.com.hackathonfc.park.controller.dto.VagaDto; import br.com.hackathonfc.park.controller.dto.VeiculoDto; import br.com.hackathonfc.park.controller.form.VeiculoForm; -import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.repository.VagaRepository; import br.com.hackathonfc.park.repository.VeiculoRepository; @@ -49,7 +47,7 @@ public List listarVeiculo(@PathVariable Long id) { @PostMapping @Transactional public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoForm form, UriComponentsBuilder uriBuilder) { - Veiculo veiculo = form.converter(vagaRepository); + Veiculo veiculo = form.converter(vagaRepository); veiculoRepository.save(veiculo); URI uri = uriBuilder.path("/vagas/{id}").buildAndExpand(veiculo.getId()).toUri(); diff --git a/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java b/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java index 975a04e..2a13cc2 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java +++ b/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java @@ -3,12 +3,17 @@ import java.util.List; import java.util.stream.Collectors; +import br.com.hackathonfc.park.model.TipoVeiculo; import br.com.hackathonfc.park.model.Veiculo; public class VeiculoDto { private Long id; + private TipoVeiculo tipoVeiculo; + + private String modelo; + private String marca; private String cor; @@ -18,6 +23,8 @@ public class VeiculoDto { public VeiculoDto(Veiculo veiculo) { super(); this.id = veiculo.getId(); + this.tipoVeiculo = veiculo.getTipoVeiculo(); + this.modelo = veiculo.getModelo(); this.marca = veiculo.getMarca(); this.cor = veiculo.getCor(); this.placa = veiculo.getPlaca(); @@ -43,4 +50,20 @@ public String getPlaca() { return placa; } + public String getModelo() { + return modelo; + } + + public void setModelo(String modelo) { + this.modelo = modelo; + } + + public TipoVeiculo getTipoVeiculo() { + return tipoVeiculo; + } + + public void setTipoVeiculo(TipoVeiculo tipoVeiculo) { + this.tipoVeiculo = tipoVeiculo; + } + } diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java index 39810cb..0c40b48 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java +++ b/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java @@ -3,6 +3,7 @@ import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import br.com.hackathonfc.park.model.TipoVeiculo; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.repository.VagaRepository; @@ -22,12 +23,15 @@ public class VeiculoForm { @NotNull @NotEmpty private String placa; + @NotNull + private TipoVeiculo tipoVeiculo; + @NotNull private Long vagaId; public Veiculo converter(VagaRepository vagaRepository) { Vaga vaga = vagaRepository.getOne(vagaId); - return new Veiculo(marca, modelo, cor, placa, vaga); + return new Veiculo(marca, modelo, cor, placa, tipoVeiculo, vaga); } public Veiculo atualizar(Long id, VeiculoRepository veiculoRepository) { @@ -37,6 +41,7 @@ public Veiculo atualizar(Long id, VeiculoRepository veiculoRepository) { veiculo.setModelo(this.modelo); veiculo.setCor(this.cor); veiculo.setPlaca(this.placa); + veiculo.setTipoVeiculo(this.tipoVeiculo); return veiculo; } diff --git a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java index f496f7f..341785b 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java +++ b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java @@ -24,7 +24,7 @@ public class Veiculo { private String placa; @Enumerated(EnumType.STRING) - private TipoVeiculo tipoVeiculo; + private TipoVeiculo tipoVeiculo = TipoVeiculo.MOTO; @OneToOne private Vaga vaga; @@ -33,11 +33,12 @@ public Veiculo() { super(); } - public Veiculo(String marca, String modelo, String cor, String placa, Vaga vaga) { + public Veiculo(String marca, String modelo, String cor, String placa, TipoVeiculo tipoVeiculo, Vaga vaga) { this.marca = marca; - this.setModelo(modelo); + this.modelo = modelo; this.cor = cor; this.placa = placa; + this.tipoVeiculo = tipoVeiculo; this.vaga = vaga; } diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index f9e788e..fd5e422 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -8,6 +8,6 @@ INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('1', INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('2', null, null, true) INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('3', null, null, true) -INSERT INTO VEICULO(marca, modelo, cor, placa, vaga_id) VALUES('Marca 1', 'Modelo 1', 'Preto', 'FFFF-4444', '1') -INSERT INTO VEICULO(marca, modelo, cor, placa, vaga_id) VALUES('Marca 1', 'Modelo 2', 'Preto', 'FFFF-4444', '2') -INSERT INTO VEICULO(marca, modelo, cor, placa, vaga_id) VALUES('Marca 1', 'Modelo 3', 'Preto', 'FFFF-4444', '4') \ No newline at end of file +INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 1', 'Preto', 'FFFF-4444', 'MOTO', '1') +INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 2', 'Preto', 'FFFF-4444', 'MOTO', '2') +INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 3', 'Preto', 'FFFF-4444', 'CARRO', '4') \ No newline at end of file From e39f2dda9c4308e0a6c21632094866bdd87cf8f7 Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 15:19:44 -0300 Subject: [PATCH 29/78] add permission post and put --- pom.xml | 6 ++++++ .../park/config/security/SecurityConfigurations.java | 2 ++ .../br/com/hackathonfc/park/controller/HomeController.java | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2bfa359..3b69fec 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,12 @@ runtime
+ + io.jsonwebtoken + jjwt + 0.9.1 + + org.springframework.boot spring-boot-devtools diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java index 6ad34e5..a7e52ee 100644 --- a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java +++ b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java @@ -27,6 +27,8 @@ protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers(HttpMethod.GET, "/estacionamentos").permitAll() .antMatchers(HttpMethod.GET, "/estacionamentos/*").permitAll() + .antMatchers(HttpMethod.POST, "/estacionamentos/*").permitAll() + .antMatchers(HttpMethod.PUT, "/estacionamentos/*").permitAll() .anyRequest().authenticated() .and().formLogin(); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/HomeController.java b/src/main/java/br/com/hackathonfc/park/controller/HomeController.java index 923cce1..6c009a3 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/HomeController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/HomeController.java @@ -6,8 +6,9 @@ @RestController public class HomeController { + //just for test security @GetMapping("/") public String home() { - return "home"; + return "Sucefully Log In"; } } From ec63db7a219a8ac6801e0bdb29f3e94823874795 Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 15:29:52 -0300 Subject: [PATCH 30/78] disable security --- .../config/security/AutenticacaoService.java | 30 --------- .../security/SecurityConfigurations.java | 40 ------------ .../com/hackathonfc/park/model/Usuario.java | 62 ------------------- .../park/repository/UsuarioRepository.java | 11 ---- src/main/resources/data.sql | 1 - 5 files changed, 144 deletions(-) delete mode 100644 src/main/java/br/com/hackathonfc/park/config/security/AutenticacaoService.java delete mode 100644 src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java delete mode 100644 src/main/java/br/com/hackathonfc/park/model/Usuario.java delete mode 100644 src/main/java/br/com/hackathonfc/park/repository/UsuarioRepository.java diff --git a/src/main/java/br/com/hackathonfc/park/config/security/AutenticacaoService.java b/src/main/java/br/com/hackathonfc/park/config/security/AutenticacaoService.java deleted file mode 100644 index d86fe5c..0000000 --- a/src/main/java/br/com/hackathonfc/park/config/security/AutenticacaoService.java +++ /dev/null @@ -1,30 +0,0 @@ -package br.com.hackathonfc.park.config.security; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.stereotype.Service; - -import br.com.hackathonfc.park.model.Usuario; -import br.com.hackathonfc.park.repository.UsuarioRepository; - -@Service -public class AutenticacaoService implements UserDetailsService{ - - @Autowired - private UsuarioRepository usuarioRepository; - - @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - Optional user = usuarioRepository.findByEmail(username); - - if(user.isPresent()) - return user.get(); - - throw new UsernameNotFoundException("Dados inválidos!"); - } - -} diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java deleted file mode 100644 index a7e52ee..0000000 --- a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfigurations.java +++ /dev/null @@ -1,40 +0,0 @@ -package br.com.hackathonfc.park.config.security; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.builders.WebSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; - -@EnableWebSecurity -@Configuration -public class SecurityConfigurations extends WebSecurityConfigurerAdapter{ - - @Autowired - private AutenticacaoService autenticacaoService; - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(autenticacaoService).passwordEncoder(new BCryptPasswordEncoder()); - } - - @Override - protected void configure(HttpSecurity http) throws Exception { - http.authorizeRequests() - .antMatchers(HttpMethod.GET, "/estacionamentos").permitAll() - .antMatchers(HttpMethod.GET, "/estacionamentos/*").permitAll() - .antMatchers(HttpMethod.POST, "/estacionamentos/*").permitAll() - .antMatchers(HttpMethod.PUT, "/estacionamentos/*").permitAll() - .anyRequest().authenticated() - .and().formLogin(); - } - - @Override - public void configure(WebSecurity web) throws Exception { - - } -} diff --git a/src/main/java/br/com/hackathonfc/park/model/Usuario.java b/src/main/java/br/com/hackathonfc/park/model/Usuario.java deleted file mode 100644 index 52627a7..0000000 --- a/src/main/java/br/com/hackathonfc/park/model/Usuario.java +++ /dev/null @@ -1,62 +0,0 @@ -package br.com.hackathonfc.park.model; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToMany; - -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -@Entity -public class Usuario implements UserDetails{ - - private static final long SerialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - private String email; - private String senha; - - @ManyToMany(fetch = FetchType.EAGER) - private List perfis = new ArrayList<>(); - - @Override - public Collection getAuthorities() { - return this.perfis; - } - @Override - public String getPassword() { - return this.senha; - } - @Override - public String getUsername() { - return this.email; - } - @Override - public boolean isAccountNonExpired() { - return true; - } - @Override - public boolean isAccountNonLocked() { - return true; - } - @Override - public boolean isCredentialsNonExpired() { - return true; - } - @Override - public boolean isEnabled() { - return true; - } - - -} diff --git a/src/main/java/br/com/hackathonfc/park/repository/UsuarioRepository.java b/src/main/java/br/com/hackathonfc/park/repository/UsuarioRepository.java deleted file mode 100644 index 313b648..0000000 --- a/src/main/java/br/com/hackathonfc/park/repository/UsuarioRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package br.com.hackathonfc.park.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import br.com.hackathonfc.park.model.Usuario; - -public interface UsuarioRepository extends JpaRepository{ - Optional findByEmail(String email); -} diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index a43a1e6..0518f62 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -12,4 +12,3 @@ INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Ma INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 2', 'Preto', 'FFFF-4444', 'MOTO', '2') INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 3', 'Preto', 'FFFF-4444', 'CARRO', '4') -INSERT INTO USUARIO(email, senha) VALUES('admin', '$2a$10$dgG1Pty3BWAqpxm9vbysjendacYXRj8o0EEF9nF.nwOYMChiJ2oXa') From 629e71196a610e20964e87f1b21e220bc30dec14 Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 15:34:41 -0300 Subject: [PATCH 31/78] disable security total --- pom.xml | 5 --- .../br/com/hackathonfc/park/model/Perfil.java | 45 ------------------- 2 files changed, 50 deletions(-) delete mode 100644 src/main/java/br/com/hackathonfc/park/model/Perfil.java diff --git a/pom.xml b/pom.xml index 3b69fec..55baf70 100644 --- a/pom.xml +++ b/pom.xml @@ -32,11 +32,6 @@ org.springframework.boot spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-security - com.h2database diff --git a/src/main/java/br/com/hackathonfc/park/model/Perfil.java b/src/main/java/br/com/hackathonfc/park/model/Perfil.java deleted file mode 100644 index c4c6eb5..0000000 --- a/src/main/java/br/com/hackathonfc/park/model/Perfil.java +++ /dev/null @@ -1,45 +0,0 @@ -package br.com.hackathonfc.park.model; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; - -import org.springframework.security.core.GrantedAuthority; - -import javassist.SerialVersionUID; - -@Entity -public class Perfil implements GrantedAuthority{ - - private static final long SerialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - private String nome; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getNome() { - return nome; - } - - public void setNome(String nome) { - this.nome = nome; - } - - @Override - public String getAuthority() { - return nome; - } - - -} From 26fa99085d22b56b720747746f3c8c0459888c89 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Sun, 24 Nov 2019 15:38:56 -0300 Subject: [PATCH 32/78] =?UTF-8?q?[ADD]=20Layout=20da=20p=C3=A1gina=20de=20?= =?UTF-8?q?Gerenciamento.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/templates/gerenciar.html | 78 +++++++++++++++---- .../resources/templates/styles/gerenciar.css | 76 +++++++++++++++++- 2 files changed, 139 insertions(+), 15 deletions(-) diff --git a/src/main/resources/templates/gerenciar.html b/src/main/resources/templates/gerenciar.html index 2e2bc26..61ddb75 100644 --- a/src/main/resources/templates/gerenciar.html +++ b/src/main/resources/templates/gerenciar.html @@ -30,20 +30,72 @@

Estacionamento Fulano

- -
-

Informações do Estacionamento

-
-
    -
  • Nome:Estacionamento Fulano ME
  • -
  • CNPJ:11.251.251/0001-52
  • -
  • Endereço:Rua Doutor Fulano de Tal, 505 - Aparecida, Santos/SP
  • -
  • Valor da Hora:R$ 10,00
  • -
+
+

Informações do Estacionamento

+
+
    +
  • Nome:Estacionamento Fulano ME
  • +
  • CNPJ:11.251.251/0001-52
  • +
  • Endereço:Rua Doutor Fulano de Tal, 505 - Aparecida, Santos/SP
  • +
  • Valor da Hora:R$ 10,00
  • +
+
+
+
+

Vagas

+
+
    +
  • Vagas de Carros:20 |
  • +
  • Disponíveis:18 |
  • +
  • Ocupadas:2
  • +
+
+
    +
  • 1
  • +
  • 2
  • +
  • 3
  • +
  • 4
  • +
  • 5
  • +
  • 6
  • +
  • 7
  • +
  • 8
  • +
  • 9
  • +
  • 10
  • +
  • 11
  • +
  • 12
  • +
  • 13
  • +
  • 14
  • +
  • 15
  • +
  • 16
  • +
  • 17
  • +
  • 18
  • +
  • 19
  • +
  • 20
  • +
+
+
+
+
    +
  • Vagas de Motocicletas:10 |
  • +
  • Disponíveis:7 |
  • +
  • Ocupadas:3
  • +
+
+
    +
  • 1
  • +
  • 2
  • +
  • 3
  • +
  • 4
  • +
  • 5
  • +
  • 6
  • +
  • 7
  • +
  • 8
  • +
  • 9
  • +
  • 10
  • +
+
+
-
-
-
diff --git a/src/main/resources/templates/styles/gerenciar.css b/src/main/resources/templates/styles/gerenciar.css index 1b33a14..64ee857 100644 --- a/src/main/resources/templates/styles/gerenciar.css +++ b/src/main/resources/templates/styles/gerenciar.css @@ -73,8 +73,17 @@ div.wrapper-content section.main { div.wrapper-content section.main .conteudo { background: #fff; - margin: 10px; + margin: 10px 20px 10px 20px; width: inherit; + border-radius: 5px 5px 0 0; +} + +div.wrapper-content section.main .conteudo h2 { + background: #505050; + color: #fff; + padding: 10px; + font-size: 17px; + border-radius: 7px 7px 0 0; } div.wrapper-content section.main .conteudo .info { @@ -88,7 +97,70 @@ div.wrapper-content section.main .conteudo .info { background: url('/images/estacionamento-info.png') no-repeat center; } -div.wrapper-content section.main .conteudo h1 { +div.wrapper-content section.main .conteudo .info h1 { + margin-bottom: 5px; +} + +div.wrapper-content section.main .conteudo .estacionamento { + margin: 10px; + background: #ebebeb; + border-radius: 7px 7px 0 0; +} + +div.wrapper-content section.main .conteudo .estacionamento .estacionamento-info ul{ + list-style: none; + color: #000; + padding: 10px; + font-size: 14px; +} + +div.wrapper-content section.main .conteudo .estacionamento .estacionamento-info ul li strong{ + margin-right: 4px; +} + +div.wrapper-content section.main .conteudo .vagas { + margin: 10px; + background: #ebebeb; + border-radius: 7px 7px 0 0; +} + +div.wrapper-content section.main .conteudo .vagas .info-vagas { + background: #b9b9b9; +} + +div.wrapper-content section.main .conteudo .vagas .info-vagas ul{ + list-style: none; + display: flex; + font-size: 13px; + padding: 5px 0 5px 10px; + color: #505050; +} + +div.wrapper-content section.main .conteudo .vagas .info-vagas ul li{ + margin-right: 5px; +} + +div.wrapper-content section.main .conteudo .vagas .info-vagas ul li strong{ + margin-right: 4px; +} + +div.wrapper-content section.main .conteudo .vagas .info-vagas .vagas-disponiveis ul{ + display: flex; + flex-wrap: wrap; + justify-content: center; + background: #ebebeb; + padding: 20px; +} + +div.wrapper-content section.main .conteudo .vagas .info-vagas .vagas-disponiveis ul li{ + display: flex; + justify-content: center; + font-size: 40px; + background: #18b134; + border-radius: 5px; + padding: 20px; + min-width: 90px; + color: #fff; margin-bottom: 5px; } From 26459d142b83522cbdcc9e7691bc99d8e6e57c12 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 24 Nov 2019 15:47:23 -0300 Subject: [PATCH 33/78] link do do index --- .../{templates => static}/images/banner.png | Bin .../images/estacionamento-info.png | Bin .../{templates => static}/images/estacionamento.png | Bin .../resources/{templates => static}/images/logo.png | Bin .../{templates => static}/images/register.svg | 0 .../{templates => static}/styles/gerenciar.css | 0 .../resources/{templates => static}/styles/main.css | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename src/main/resources/{templates => static}/images/banner.png (100%) rename src/main/resources/{templates => static}/images/estacionamento-info.png (100%) rename src/main/resources/{templates => static}/images/estacionamento.png (100%) rename src/main/resources/{templates => static}/images/logo.png (100%) rename src/main/resources/{templates => static}/images/register.svg (100%) rename src/main/resources/{templates => static}/styles/gerenciar.css (100%) rename src/main/resources/{templates => static}/styles/main.css (100%) diff --git a/src/main/resources/templates/images/banner.png b/src/main/resources/static/images/banner.png similarity index 100% rename from src/main/resources/templates/images/banner.png rename to src/main/resources/static/images/banner.png diff --git a/src/main/resources/templates/images/estacionamento-info.png b/src/main/resources/static/images/estacionamento-info.png similarity index 100% rename from src/main/resources/templates/images/estacionamento-info.png rename to src/main/resources/static/images/estacionamento-info.png diff --git a/src/main/resources/templates/images/estacionamento.png b/src/main/resources/static/images/estacionamento.png similarity index 100% rename from src/main/resources/templates/images/estacionamento.png rename to src/main/resources/static/images/estacionamento.png diff --git a/src/main/resources/templates/images/logo.png b/src/main/resources/static/images/logo.png similarity index 100% rename from src/main/resources/templates/images/logo.png rename to src/main/resources/static/images/logo.png diff --git a/src/main/resources/templates/images/register.svg b/src/main/resources/static/images/register.svg similarity index 100% rename from src/main/resources/templates/images/register.svg rename to src/main/resources/static/images/register.svg diff --git a/src/main/resources/templates/styles/gerenciar.css b/src/main/resources/static/styles/gerenciar.css similarity index 100% rename from src/main/resources/templates/styles/gerenciar.css rename to src/main/resources/static/styles/gerenciar.css diff --git a/src/main/resources/templates/styles/main.css b/src/main/resources/static/styles/main.css similarity index 100% rename from src/main/resources/templates/styles/main.css rename to src/main/resources/static/styles/main.css From 1e1d5ea931a911be0287a78c3b7d822b2ec16493 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 24 Nov 2019 15:49:42 -0300 Subject: [PATCH 34/78] link do do index --- pom.xml | 11 +++++++++++ .../controller/EstacionamentoController.java | 17 +++++++++++++++++ src/main/resources/application.properties | 2 ++ src/main/resources/templates/index.html | 2 +- 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0a03cb1..3aff366 100644 --- a/pom.xml +++ b/pom.xml @@ -39,6 +39,17 @@ runtime
+ + org.springframework.boot + spring-boot-starter-thymeleaf + + + + org.springframework.boot + + spring-boot-starter-thymeleaf + + org.springframework.boot spring-boot-devtools diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 80a3d16..edf538e 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; import org.springframework.web.util.UriComponentsBuilder; import br.com.hackathonfc.park.controller.dto.VagaDto; @@ -41,6 +42,19 @@ public class EstacionamentoController { @Autowired private VagaRepository vagaRepository; + + + @RequestMapping("/") + public ModelAndView index(){ + return new ModelAndView("index"); + } + + @RequestMapping(value="/cadastro" ) + public ModelAndView Cadastro(){ + return new ModelAndView("cadastro"); + } + + @CrossOrigin @GetMapping public Page listar(@PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ @@ -85,6 +99,9 @@ public ResponseEntity atualizar(@PathVariable Long id, @RequestB return ResponseEntity.notFound().build(); } + + + @DeleteMapping("/{id}") @Transactional public ResponseEntity remover(@PathVariable Long id){ diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index fc720ac..830adab 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -11,3 +11,5 @@ spring.jpa.hibernate.ddl-auto=update # h2 spring.h2.console.enabled=true spring.h2.console.path=/h2-console + + diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index cf10130..1cee288 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -18,7 +18,7 @@
From 087268f444eebb0ff8e84947ad3682949dc44e44 Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 16:22:25 -0300 Subject: [PATCH 35/78] add vaga creation --- .../controller/EstacionamentoController.java | 18 ++++++++--- .../park/controller/form/VagaForm.java | 31 +++++++++++++++++++ .../br/com/hackathonfc/park/model/Vaga.java | 6 ++-- 3 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/form/VagaForm.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index c3230f8..435aeb0 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -24,9 +24,9 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; - import br.com.hackathonfc.park.controller.dto.VagaDto; import br.com.hackathonfc.park.controller.form.EstacionamentoForm; +import br.com.hackathonfc.park.controller.form.VagaForm; import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.repository.EstacionamentoRepository; @@ -57,17 +57,25 @@ public Page listar(@PageableDefault(sort = "id", direction = Dir @GetMapping("/{id}") public List listarVagas(@PathVariable Long id) { List vagas = vagaRepository.findAllFromEstacionamento(id); - return VagaDto.converter(vagas); } + return VagaDto.converter(vagas); + } @CrossOrigin @PostMapping @Transactional - public ResponseEntity cadastrar(@RequestBody EstacionamentoForm form, UriComponentsBuilder uriBuilder) { - Estacionamento estacionamento = form.converter(); + public ResponseEntity cadastrar(@RequestBody EstacionamentoForm estacionamentoForm, + UriComponentsBuilder uriBuilder) { + Estacionamento estacionamento = estacionamentoForm.converter(); estacionamentoRepository.save(estacionamento); - URI uri = uriBuilder.path("/estacionamentos/{id}").buildAndExpand(estacionamento.getId()).toUri(); + int vagasTotal = estacionamento.getVagasCarros() + estacionamento.getVagasMotos(); + for(int i = 0; i < vagasTotal; i++) { + Vaga vaga = new Vaga(estacionamento, null, null, true); + vagaRepository.save(vaga); + } + + URI uri = uriBuilder.path("/estacionamentos/{id}").buildAndExpand(estacionamento.getId()).toUri(); return ResponseEntity.created(uri).body(estacionamento); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/VagaForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/VagaForm.java new file mode 100644 index 0000000..3239c08 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/form/VagaForm.java @@ -0,0 +1,31 @@ +package br.com.hackathonfc.park.controller.form; + +import java.time.LocalDateTime; + +import br.com.hackathonfc.park.model.Vaga; + +public class VagaForm { + + private LocalDateTime dataInicio; + + private LocalDateTime dataSaida; + + private boolean livre; + + public Vaga converter() { + return new Vaga(dataInicio, dataSaida, livre); + } + + public LocalDateTime getDataInicio() { + return dataInicio; + } + + public LocalDateTime getDataSaida() { + return dataSaida; + } + + public boolean isLivre() { + return livre; + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index 4a933c6..4a87376 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -25,12 +25,10 @@ public class Vaga { private boolean livre; public Vaga() { - } - public Vaga(Long id, LocalDateTime dataInicio, - LocalDateTime dataSaida, boolean livre) { - this.id = id; + public Vaga(Estacionamento estacionamento, LocalDateTime dataInicio, LocalDateTime dataSaida, boolean livre) { + this.estacionamento = estacionamento; this.dataInicio = dataInicio; this.dataSaida = dataSaida; this.livre = livre; From 54514dfe0e6f04bdf947332cb36c889c45c5680a Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 16:24:25 -0300 Subject: [PATCH 36/78] resolve vaga --- .../controller/EstacionamentoController.java | 2 +- .../park/controller/VagaController.java | 2 +- .../park/controller/dto/VeiculoDto.java | 1 - .../park/controller/form/VeiculoForm.java | 21 ++++++++++++------- .../com/hackathonfc/park/model/Veiculo.java | 1 - .../park/repository/VagaRepository.java | 2 -- 6 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index c3230f8..b5217c9 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -54,7 +54,7 @@ public Page listar(@PageableDefault(sort = "id", direction = Dir } @CrossOrigin - @GetMapping("/{id}") + @GetMapping("/{id}/vagas") public List listarVagas(@PathVariable Long id) { List vagas = vagaRepository.findAllFromEstacionamento(id); return VagaDto.converter(vagas); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index b8592d7..4888a1f 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -46,7 +46,7 @@ public List listarVeiculo(@PathVariable Long id) { @CrossOrigin @PostMapping @Transactional - public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoForm form, UriComponentsBuilder uriBuilder) { + public ResponseEntity cadastrarVeiculo(@RequestBody VeiculoForm form, UriComponentsBuilder uriBuilder) { Veiculo veiculo = form.converter(vagaRepository); veiculoRepository.save(veiculo); diff --git a/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java b/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java index 2a13cc2..42bd189 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java +++ b/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java @@ -21,7 +21,6 @@ public class VeiculoDto { private String placa; public VeiculoDto(Veiculo veiculo) { - super(); this.id = veiculo.getId(); this.tipoVeiculo = veiculo.getTipoVeiculo(); this.modelo = veiculo.getModelo(); diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java index 0c40b48..956b9be 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java +++ b/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java @@ -1,5 +1,7 @@ package br.com.hackathonfc.park.controller.form; +import java.util.Optional; + import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; @@ -11,27 +13,30 @@ public class VeiculoForm { - @NotNull @NotEmpty private String marca; - @NotNull @NotEmpty + private String modelo; - @NotNull @NotEmpty + private String cor; - @NotNull @NotEmpty + private String placa; - @NotNull + private TipoVeiculo tipoVeiculo; - @NotNull + private Long vagaId; public Veiculo converter(VagaRepository vagaRepository) { - Vaga vaga = vagaRepository.getOne(vagaId); - return new Veiculo(marca, modelo, cor, placa, tipoVeiculo, vaga); + Optional vaga = vagaRepository.findById(vagaId); + + if(vaga.isPresent()) + return new Veiculo(marca, modelo, cor, placa, tipoVeiculo, vaga.get()); + + return null; } public Veiculo atualizar(Long id, VeiculoRepository veiculoRepository) { diff --git a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java index 341785b..9467d66 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java +++ b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java @@ -30,7 +30,6 @@ public class Veiculo { private Vaga vaga; public Veiculo() { - super(); } public Veiculo(String marca, String modelo, String cor, String placa, TipoVeiculo tipoVeiculo, Vaga vaga) { diff --git a/src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java b/src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java index 3a80e34..73cc9ca 100644 --- a/src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java +++ b/src/main/java/br/com/hackathonfc/park/repository/VagaRepository.java @@ -10,8 +10,6 @@ import br.com.hackathonfc.park.model.Veiculo; public interface VagaRepository extends JpaRepository { - @Query("SELECT v FROM Vaga v WHERE v.estacionamento.id = :id") List findAllFromEstacionamento(@Param("id") Long id); - } From edb1ac5dc5c286923e600b04753e139df7248744 Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 16:41:53 -0300 Subject: [PATCH 37/78] some adjustments --- .../controller/EstacionamentoController.java | 5 +- .../park/controller/VagaController.java | 2 +- .../form/AtualizacaoEstacionamentoForm.java | 56 +++++++++++++++++++ .../controller/form/EstacionamentoForm.java | 2 - .../park/controller/form/VagaForm.java | 31 ---------- 5 files changed, 60 insertions(+), 36 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java delete mode 100644 src/main/java/br/com/hackathonfc/park/controller/form/VagaForm.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 435aeb0..7109d62 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -25,8 +25,8 @@ import org.springframework.web.util.UriComponentsBuilder; import br.com.hackathonfc.park.controller.dto.VagaDto; +import br.com.hackathonfc.park.controller.form.AtualizacaoEstacionamentoForm; import br.com.hackathonfc.park.controller.form.EstacionamentoForm; -import br.com.hackathonfc.park.controller.form.VagaForm; import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.repository.EstacionamentoRepository; @@ -82,7 +82,7 @@ public ResponseEntity cadastrar(@RequestBody EstacionamentoForm @CrossOrigin @PutMapping("/{id}") @Transactional - public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid EstacionamentoForm form){ + public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid AtualizacaoEstacionamentoForm form){ Optional optional = estacionamentoRepository.findById(id); if(optional.isPresent()) { @@ -102,6 +102,7 @@ public ResponseEntity remover(@PathVariable Long id){ estacionamentoRepository.deleteById(id); return ResponseEntity.ok().build(); } + return ResponseEntity.notFound().build(); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index b8592d7..6606dfc 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -50,7 +50,7 @@ public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoFo Veiculo veiculo = form.converter(vagaRepository); veiculoRepository.save(veiculo); - URI uri = uriBuilder.path("/vagas/{id}").buildAndExpand(veiculo.getId()).toUri(); + URI uri = uriBuilder.path("/estacionamentos/{id}/vagas/{id}").buildAndExpand(veiculo.getId()).toUri(); return ResponseEntity.created(uri).body(new VeiculoDto(veiculo)); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java new file mode 100644 index 0000000..70824ac --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java @@ -0,0 +1,56 @@ +package br.com.hackathonfc.park.controller.form; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.repository.EstacionamentoRepository; + +public class AtualizacaoEstacionamentoForm { + + @NotNull @NotEmpty + private String nome; + + @NotNull + private int cnpj; + + @NotNull @NotEmpty + private String endereco; + + @NotNull + private int telefone; + + @NotNull + private Double precoHora; + + public String getNome() { + return nome; + } + + public int getCnpj() { + return cnpj; + } + + public String getEndereco() { + return endereco; + } + + public int getTelefone() { + return telefone; + } + + public Double getPrecoHora() { + return precoHora; + } + + public Estacionamento atualizar(Long id, EstacionamentoRepository estacionamentoRepository) { + Estacionamento estacionamento = estacionamentoRepository.getOne(id); + estacionamento.setNome(nome); + estacionamento.setCnpj(cnpj); + estacionamento.setEndereco(endereco); + estacionamento.setTelefone(telefone); + estacionamento.setPrecoHora(precoHora); + return estacionamento; + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java index e52de5f..781c7b7 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java +++ b/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java @@ -67,8 +67,6 @@ public Estacionamento atualizar(Long id, EstacionamentoRepository estacionamento estacionamento.setCnpj(cnpj); estacionamento.setEndereco(endereco); estacionamento.setTelefone(telefone); - estacionamento.setVagasCarros(vagasCarros); - estacionamento.setVagasMotos(vagasMotos); estacionamento.setPrecoHora(precoHora); return estacionamento; } diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/VagaForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/VagaForm.java deleted file mode 100644 index 3239c08..0000000 --- a/src/main/java/br/com/hackathonfc/park/controller/form/VagaForm.java +++ /dev/null @@ -1,31 +0,0 @@ -package br.com.hackathonfc.park.controller.form; - -import java.time.LocalDateTime; - -import br.com.hackathonfc.park.model.Vaga; - -public class VagaForm { - - private LocalDateTime dataInicio; - - private LocalDateTime dataSaida; - - private boolean livre; - - public Vaga converter() { - return new Vaga(dataInicio, dataSaida, livre); - } - - public LocalDateTime getDataInicio() { - return dataInicio; - } - - public LocalDateTime getDataSaida() { - return dataSaida; - } - - public boolean isLivre() { - return livre; - } - -} From 4fc9f7394b82a6c814246dbcab62c7e442eebe32 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 24 Nov 2019 16:56:46 -0300 Subject: [PATCH 38/78] versao final index --- pom.xml | 8 +------- .../park/controller/EstacionamentoController.java | 15 ++++++--------- .../park/controller/HomeController.java | 14 -------------- .../park/controller/IndexController.java | 13 +++++++++++++ .../park/repository/EstacionamentoRepository.java | 4 ++++ src/main/resources/templates/cadastro.html | 4 ++-- src/main/resources/templates/index.html | 15 ++++++++++----- 7 files changed, 36 insertions(+), 37 deletions(-) delete mode 100644 src/main/java/br/com/hackathonfc/park/controller/HomeController.java create mode 100644 src/main/java/br/com/hackathonfc/park/controller/IndexController.java diff --git a/pom.xml b/pom.xml index 08f3a8b..965aecb 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@
-<<<<<<< HEAD + org.springframework.boot spring-boot-starter-thymeleaf @@ -50,12 +50,6 @@ spring-boot-starter-thymeleaf -======= - io.jsonwebtoken - jjwt - 0.9.1 - ->>>>>>> 26fa99085d22b56b720747746f3c8c0459888c89 org.springframework.boot diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index a86a275..f48e97b 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -21,11 +21,11 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.util.UriComponentsBuilder; - import br.com.hackathonfc.park.controller.dto.VagaDto; import br.com.hackathonfc.park.controller.form.EstacionamentoForm; import br.com.hackathonfc.park.model.Estacionamento; @@ -44,16 +44,13 @@ public class EstacionamentoController { private VagaRepository vagaRepository; - - @RequestMapping("/") - public ModelAndView index(){ - return new ModelAndView("index"); + @RequestMapping(value="/cadastro", method=RequestMethod.POST ) + public String form(){ + return"cadastro"; } - @RequestMapping(value="/cadastro" ) - public ModelAndView Cadastro(){ - return new ModelAndView("cadastro"); - } + + @CrossOrigin diff --git a/src/main/java/br/com/hackathonfc/park/controller/HomeController.java b/src/main/java/br/com/hackathonfc/park/controller/HomeController.java deleted file mode 100644 index 6c009a3..0000000 --- a/src/main/java/br/com/hackathonfc/park/controller/HomeController.java +++ /dev/null @@ -1,14 +0,0 @@ -package br.com.hackathonfc.park.controller; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class HomeController { - - //just for test security - @GetMapping("/") - public String home() { - return "Sucefully Log In"; - } -} diff --git a/src/main/java/br/com/hackathonfc/park/controller/IndexController.java b/src/main/java/br/com/hackathonfc/park/controller/IndexController.java new file mode 100644 index 0000000..fd04ca7 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/IndexController.java @@ -0,0 +1,13 @@ +package br.com.hackathonfc.park.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +public class IndexController { + + + @RequestMapping("/") + public ModelAndView index(){ + return new ModelAndView("index"); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java b/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java index 97eb0dd..b6aa47c 100644 --- a/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java +++ b/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java @@ -2,8 +2,12 @@ import org.springframework.data.jpa.repository.JpaRepository; + + import br.com.hackathonfc.park.model.Estacionamento; public interface EstacionamentoRepository extends JpaRepository{ + Estacionamento findById(long id); + } diff --git a/src/main/resources/templates/cadastro.html b/src/main/resources/templates/cadastro.html index 2f3c277..1184d8f 100644 --- a/src/main/resources/templates/cadastro.html +++ b/src/main/resources/templates/cadastro.html @@ -1,6 +1,6 @@ - - + diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 1cee288..4be60b8 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -1,6 +1,6 @@ - - + Gerenciador de Estacionamento @@ -18,7 +18,7 @@
@@ -26,7 +26,7 @@
-

Estacionamento Fulano

+

Estacionamento

    @@ -39,6 +39,7 @@

    Estacionamento Fulano

Gerenciar
+

Estacionamento Fulano

@@ -54,6 +55,7 @@

Estacionamento Fulano

Gerenciar
+

Estacionamento Fulano

@@ -69,9 +71,10 @@

Estacionamento Fulano

Gerenciar
+
-

Estacionamento Fulano

+

    @@ -93,5 +96,7 @@

    Estacionamento Fulano

+ \ No newline at end of file From 25297b94adda8d2e063e05f2ff74027088ae92a2 Mon Sep 17 00:00:00 2001 From: hicolazu Date: Sun, 24 Nov 2019 17:00:08 -0300 Subject: [PATCH 39/78] final --- pom.xml | 10 ++-------- .../park/controller/VagaController.java | 6 ++++-- .../park/controller/form/VeiculoForm.java | 18 ++++++++---------- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 08f3a8b..17da13f 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ -<<<<<<< HEAD + org.springframework.boot spring-boot-starter-thymeleaf @@ -50,13 +50,7 @@ spring-boot-starter-thymeleaf -======= - io.jsonwebtoken - jjwt - 0.9.1 - ->>>>>>> 26fa99085d22b56b720747746f3c8c0459888c89 - + org.springframework.boot spring-boot-devtools diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index 4888a1f..503f405 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -20,8 +20,10 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; +import br.com.hackathonfc.park.controller.dto.VagaDto; import br.com.hackathonfc.park.controller.dto.VeiculoDto; import br.com.hackathonfc.park.controller.form.VeiculoForm; +import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.repository.VagaRepository; import br.com.hackathonfc.park.repository.VeiculoRepository; @@ -46,8 +48,8 @@ public List listarVeiculo(@PathVariable Long id) { @CrossOrigin @PostMapping @Transactional - public ResponseEntity cadastrarVeiculo(@RequestBody VeiculoForm form, UriComponentsBuilder uriBuilder) { - Veiculo veiculo = form.converter(vagaRepository); + public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoForm form, UriComponentsBuilder uriBuilder) { + Veiculo veiculo = form.converter(vagaRepository); veiculoRepository.save(veiculo); URI uri = uriBuilder.path("/vagas/{id}").buildAndExpand(veiculo.getId()).toUri(); diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java index 956b9be..5732b67 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java +++ b/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java @@ -13,30 +13,28 @@ public class VeiculoForm { + @NotNull @NotEmpty private String marca; - + @NotNull @NotEmpty private String modelo; - + @NotNull @NotEmpty private String cor; - + @NotNull @NotEmpty private String placa; - + @NotNull private TipoVeiculo tipoVeiculo; - + @NotNull private Long vagaId; public Veiculo converter(VagaRepository vagaRepository) { - Optional vaga = vagaRepository.findById(vagaId); - - if(vaga.isPresent()) - return new Veiculo(marca, modelo, cor, placa, tipoVeiculo, vaga.get()); + Vaga vaga = vagaRepository.getOne(vagaId); - return null; + return new Veiculo(marca, modelo, cor, placa, tipoVeiculo, vaga); } public Veiculo atualizar(Long id, VeiculoRepository veiculoRepository) { From 4c00cf34b90b2772958b748e8d6e611ea2aa9f22 Mon Sep 17 00:00:00 2001 From: Vitor Date: Sun, 24 Nov 2019 17:21:20 -0300 Subject: [PATCH 40/78] fix README --- README.md | 36 +++++++++++++++++++ pom.xml | 8 +---- .../controller/EstacionamentoController.java | 3 -- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index a55b948..ede89de 100644 --- a/README.md +++ b/README.md @@ -54,3 +54,39 @@ Crie um fork do teste para acompanharmos o seu desenvolvimento através dos seus ## Obrigado! Agradecemos sua participação. Boa sorte! 😄 + +## Requisitos do Projeto + +### Tecnologies +- JPA, SpringBoot and H2 for Back-end +- HTML5, CSS, Photoshop, Bootstrap and JavaScript for Front-end + +### How to run +- Open the project in Eclipse IDE +- Run ParkApplication.java +- The projects runs on `http://localhost:8080/estacionamentos` + + +### Services +- List establishments: `http://localhost:8080/estacionamentos` +- Create establishments: `http://localhost:8080/estacionamentos` +- _Header: Contet-Type application/json_ +- Update establishments: `http://localhost:8080/estacionamentos/{establishment id}` +- _Header: Contet-Type application/json_ +- Delete establishments: `http://localhost:8080/estacionamentos/{establishment id}` + +- List vacancies: `http://localhost:8080/estacionamentos/{vacancy id}` + +- List vehicles: `http://localhost:8080/estacionamentos/{establishment id}/vagas/{vehicle id}` +- Create vehicles: `http://localhost:8080/estacionamentos/{establishment id}/vagas/{vehicles id}` +- _Header: Contet-Type application/json_ +- Update vehicles: `http://localhost:8080/estacionamento/{establishment id}/vagas/{vehicle id}` +- _Header: Contet-Type application/json_ +- Delete vehicles: `http://localhost:8080/estacionamentos/{establishment id}/vagas/{vehicle id}` + + +### Team +- Henrico Lazuroz Moura de Almeida +- Thaue Alfredo Ferreira Lima +- Thiago Henrique Santos +- Vitor Coelho da Silva \ No newline at end of file diff --git a/pom.xml b/pom.xml index 08f3a8b..965aecb 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ -<<<<<<< HEAD + org.springframework.boot spring-boot-starter-thymeleaf @@ -50,12 +50,6 @@ spring-boot-starter-thymeleaf -======= - io.jsonwebtoken - jjwt - 0.9.1 - ->>>>>>> 26fa99085d22b56b720747746f3c8c0459888c89 org.springframework.boot diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 12f4a06..f42f229 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -107,9 +107,6 @@ public ResponseEntity atualizar(@PathVariable Long id, @RequestB return ResponseEntity.notFound().build(); } - - - @DeleteMapping("/{id}") @Transactional public ResponseEntity remover(@PathVariable Long id){ From a673b18ee626f972451491da268a11395242df25 Mon Sep 17 00:00:00 2001 From: Henrico Date: Tue, 24 Dec 2019 12:17:19 -0300 Subject: [PATCH 41/78] Some initial changes --- pom.xml | 7 ++ .../controller/EstacionamentoController.java | 60 +++------ .../park/controller/VagaController.java | 17 ++- .../park/controller/dto/VagaDto.java | 47 -------- .../park/controller/dto/VeiculoDto.java | 68 ----------- .../form/AtualizacaoEstacionamentoForm.java | 56 --------- .../controller/form/EstacionamentoForm.java | 74 ------------ .../park/controller/form/VeiculoForm.java | 52 -------- .../park/dto/EstacionamentoDTO.java | 47 ++++++++ .../br/com/hackathonfc/park/dto/VagaDTO.java | 34 ++++++ .../com/hackathonfc/park/dto/VeiculoDTO.java | 49 ++++++++ .../park/mapper/EstacionamentoMAP.java | 22 ++++ .../com/hackathonfc/park/mapper/VagaMAP.java | 19 +++ .../hackathonfc/park/mapper/VeiculoMAP.java | 18 +++ .../park/model/Estacionamento.java | 16 ++- .../br/com/hackathonfc/park/model/Vaga.java | 13 +- .../com/hackathonfc/park/model/Veiculo.java | 114 +++--------------- .../park/service/EstacionamentoService.java | 47 ++++++++ .../hackathonfc/park/service/VagaService.java | 25 ++++ .../park/service/VeiculoService.java | 15 +++ 20 files changed, 343 insertions(+), 457 deletions(-) delete mode 100644 src/main/java/br/com/hackathonfc/park/controller/dto/VagaDto.java delete mode 100644 src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java delete mode 100644 src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java delete mode 100644 src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java delete mode 100644 src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java create mode 100644 src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java create mode 100644 src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java create mode 100644 src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java create mode 100644 src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java create mode 100644 src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java create mode 100644 src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java create mode 100644 src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java create mode 100644 src/main/java/br/com/hackathonfc/park/service/VagaService.java create mode 100644 src/main/java/br/com/hackathonfc/park/service/VeiculoService.java diff --git a/pom.xml b/pom.xml index 1da604b..7fa85ce 100644 --- a/pom.xml +++ b/pom.xml @@ -28,6 +28,13 @@ org.springframework.boot spring-boot-starter-data-jpa + + + org.projectlombok + lombok + 1.18.10 + + org.springframework.boot spring-boot-starter-web diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index dad3a7d..e654bf0 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -6,13 +6,14 @@ import javax.validation.Valid; +import br.com.hackathonfc.park.service.EstacionamentoService; +import br.com.hackathonfc.park.service.VagaService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.web.PageableDefault; import org.springframework.http.ResponseEntity; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -23,12 +24,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.servlet.ModelAndView; import org.springframework.web.util.UriComponentsBuilder; -import br.com.hackathonfc.park.controller.dto.VagaDto; -import br.com.hackathonfc.park.controller.form.AtualizacaoEstacionamentoForm; -import br.com.hackathonfc.park.controller.form.EstacionamentoForm; +import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.dto.EstacionamentoDTO; import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.repository.EstacionamentoRepository; @@ -37,63 +36,33 @@ @RestController @RequestMapping("/estacionamentos") public class EstacionamentoController { - + @Autowired - private EstacionamentoRepository estacionamentoRepository; - + private EstacionamentoService estacionamentoService; + @Autowired - private VagaRepository vagaRepository; - - - @RequestMapping(value="/cadastro", method=RequestMethod.POST ) - public String form(){ - return"cadastro"; - } - - + private VagaService vagaService; - - @CrossOrigin @GetMapping - public Page listar(@PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ - - Page estacionamentos; - - estacionamentos = estacionamentoRepository.findAll(paginacao); - - return estacionamentos; + public Page listar(@PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ + return estacionamentoService.listar(paginacao); } @CrossOrigin @GetMapping("/{id}/vagas") - public List listarVagas(@PathVariable Long id) { - List vagas = vagaRepository.findAllFromEstacionamento(id); - return VagaDto.converter(vagas); + public List listarVagas(@PathVariable Long id) { + return vagaService.listar(id); } @CrossOrigin @PostMapping - @Transactional - public ResponseEntity cadastrar(@RequestBody EstacionamentoForm estacionamentoForm, - UriComponentsBuilder uriBuilder) { - Estacionamento estacionamento = estacionamentoForm.converter(); - estacionamentoRepository.save(estacionamento); - - int vagasTotal = estacionamento.getVagasCarros() + estacionamento.getVagasMotos(); - - for(int i = 0; i < vagasTotal; i++) { - Vaga vaga = new Vaga(estacionamento, null, null, true); - vagaRepository.save(vaga); - } - - URI uri = uriBuilder.path("/estacionamentos/{id}").buildAndExpand(estacionamento.getId()).toUri(); - return ResponseEntity.created(uri).body(estacionamento); + public ResponseEntity cadastrar(@RequestBody List estacionamentoDTO) { + return estacionamentoService.cadastrar(estacionamentoDTO); } @CrossOrigin @PutMapping("/{id}") - @Transactional public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid AtualizacaoEstacionamentoForm form){ Optional optional = estacionamentoRepository.findById(id); @@ -106,7 +75,6 @@ public ResponseEntity atualizar(@PathVariable Long id, @RequestB } @DeleteMapping("/{id}") - @Transactional public ResponseEntity remover(@PathVariable Long id){ Optional optional = estacionamentoRepository.findById(id); diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index f81ec4c..6aa4ddc 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -20,10 +20,7 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; -import br.com.hackathonfc.park.controller.dto.VagaDto; -import br.com.hackathonfc.park.controller.dto.VeiculoDto; -import br.com.hackathonfc.park.controller.form.VeiculoForm; -import br.com.hackathonfc.park.model.Vaga; +import br.com.hackathonfc.park.dto.VeiculoDTO; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.repository.VagaRepository; import br.com.hackathonfc.park.repository.VeiculoRepository; @@ -40,30 +37,30 @@ public class VagaController { @CrossOrigin @GetMapping("/{id}") - public List listarVeiculo(@PathVariable Long id) { + public List listarVeiculo(@PathVariable Long id) { List veiculos = veiculoRepository.findByVagaId(id); - return VeiculoDto.converter(veiculos); + return VeiculoDTO.converter(veiculos); } @CrossOrigin @PostMapping @Transactional - public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoForm form, UriComponentsBuilder uriBuilder) { + public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoForm form, UriComponentsBuilder uriBuilder) { Veiculo veiculo = form.converter(vagaRepository); veiculoRepository.save(veiculo); URI uri = uriBuilder.path("/estacionamentos/{id}/vagas/{id}").buildAndExpand(veiculo.getId()).toUri(); - return ResponseEntity.created(uri).body(new VeiculoDto(veiculo)); + return ResponseEntity.created(uri).body(new VeiculoDTO(veiculo)); } @CrossOrigin @PutMapping("/{id}") @Transactional - public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoForm form) { + public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoForm form) { Optional optional = veiculoRepository.findById(id); if(optional.isPresent()) { Veiculo veiculo = form.atualizar(id, veiculoRepository); - return ResponseEntity.ok(new VeiculoDto(veiculo)); + return ResponseEntity.ok(new VeiculoDTO(veiculo)); } return ResponseEntity.notFound().build(); diff --git a/src/main/java/br/com/hackathonfc/park/controller/dto/VagaDto.java b/src/main/java/br/com/hackathonfc/park/controller/dto/VagaDto.java deleted file mode 100644 index 0ea3063..0000000 --- a/src/main/java/br/com/hackathonfc/park/controller/dto/VagaDto.java +++ /dev/null @@ -1,47 +0,0 @@ -package br.com.hackathonfc.park.controller.dto; - -import java.time.LocalDateTime; -import java.util.List; -import java.util.stream.Collectors; - -import br.com.hackathonfc.park.model.Vaga; - -public class VagaDto { - - private Long id; - - private LocalDateTime entrada; - - private LocalDateTime saida; - - private boolean livre; - - public VagaDto(Vaga vaga) { - super(); - this.id = vaga.getId(); - this.entrada = vaga.getDataInicio(); - this.saida = vaga.getDataSaida(); - this.livre = vaga.isLivre(); - } - - public static List converter(List vagas) { - return vagas.stream().map(VagaDto::new).collect(Collectors.toList()); - } - - public Long getId() { - return id; - } - - public LocalDateTime getEntrada() { - return entrada; - } - - public LocalDateTime getSaida() { - return saida; - } - - public boolean isLivre() { - return livre; - } - -} diff --git a/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java b/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java deleted file mode 100644 index 42bd189..0000000 --- a/src/main/java/br/com/hackathonfc/park/controller/dto/VeiculoDto.java +++ /dev/null @@ -1,68 +0,0 @@ -package br.com.hackathonfc.park.controller.dto; - -import java.util.List; -import java.util.stream.Collectors; - -import br.com.hackathonfc.park.model.TipoVeiculo; -import br.com.hackathonfc.park.model.Veiculo; - -public class VeiculoDto { - - private Long id; - - private TipoVeiculo tipoVeiculo; - - private String modelo; - - private String marca; - - private String cor; - - private String placa; - - public VeiculoDto(Veiculo veiculo) { - this.id = veiculo.getId(); - this.tipoVeiculo = veiculo.getTipoVeiculo(); - this.modelo = veiculo.getModelo(); - this.marca = veiculo.getMarca(); - this.cor = veiculo.getCor(); - this.placa = veiculo.getPlaca(); - } - - public static List converter(List veiculos) { - return veiculos.stream().map(VeiculoDto::new).collect(Collectors.toList()); - } - - public Long getId() { - return id; - } - - public String getMarca() { - return marca; - } - - public String getCor() { - return cor; - } - - public String getPlaca() { - return placa; - } - - public String getModelo() { - return modelo; - } - - public void setModelo(String modelo) { - this.modelo = modelo; - } - - public TipoVeiculo getTipoVeiculo() { - return tipoVeiculo; - } - - public void setTipoVeiculo(TipoVeiculo tipoVeiculo) { - this.tipoVeiculo = tipoVeiculo; - } - -} diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java deleted file mode 100644 index 70824ac..0000000 --- a/src/main/java/br/com/hackathonfc/park/controller/form/AtualizacaoEstacionamentoForm.java +++ /dev/null @@ -1,56 +0,0 @@ -package br.com.hackathonfc.park.controller.form; - -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; - -import br.com.hackathonfc.park.model.Estacionamento; -import br.com.hackathonfc.park.repository.EstacionamentoRepository; - -public class AtualizacaoEstacionamentoForm { - - @NotNull @NotEmpty - private String nome; - - @NotNull - private int cnpj; - - @NotNull @NotEmpty - private String endereco; - - @NotNull - private int telefone; - - @NotNull - private Double precoHora; - - public String getNome() { - return nome; - } - - public int getCnpj() { - return cnpj; - } - - public String getEndereco() { - return endereco; - } - - public int getTelefone() { - return telefone; - } - - public Double getPrecoHora() { - return precoHora; - } - - public Estacionamento atualizar(Long id, EstacionamentoRepository estacionamentoRepository) { - Estacionamento estacionamento = estacionamentoRepository.getOne(id); - estacionamento.setNome(nome); - estacionamento.setCnpj(cnpj); - estacionamento.setEndereco(endereco); - estacionamento.setTelefone(telefone); - estacionamento.setPrecoHora(precoHora); - return estacionamento; - } - -} diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java deleted file mode 100644 index 781c7b7..0000000 --- a/src/main/java/br/com/hackathonfc/park/controller/form/EstacionamentoForm.java +++ /dev/null @@ -1,74 +0,0 @@ -package br.com.hackathonfc.park.controller.form; - -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; - -import br.com.hackathonfc.park.model.Estacionamento; -import br.com.hackathonfc.park.repository.EstacionamentoRepository; - -public class EstacionamentoForm { - - @NotNull @NotEmpty - private String nome; - - @NotNull - private int cnpj; - - @NotNull @NotEmpty - private String endereco; - - @NotNull - private int telefone; - - @NotNull - private int vagasCarros; - - @NotNull - private int vagasMotos; - - @NotNull - private Double precoHora; - - public String getNome() { - return nome; - } - - public int getCnpj() { - return cnpj; - } - - public String getEndereco() { - return endereco; - } - - public int getTelefone() { - return telefone; - } - - public int getVagasCarros() { - return vagasCarros; - } - - public int getVagasMotos() { - return vagasMotos; - } - - public Double getPrecoHora() { - return precoHora; - } - - public Estacionamento converter() { - return new Estacionamento(nome, cnpj, endereco, telefone, vagasMotos, vagasCarros, precoHora); - } - - public Estacionamento atualizar(Long id, EstacionamentoRepository estacionamentoRepository) { - Estacionamento estacionamento = estacionamentoRepository.getOne(id); - estacionamento.setNome(nome); - estacionamento.setCnpj(cnpj); - estacionamento.setEndereco(endereco); - estacionamento.setTelefone(telefone); - estacionamento.setPrecoHora(precoHora); - return estacionamento; - } - -} diff --git a/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java b/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java deleted file mode 100644 index 5732b67..0000000 --- a/src/main/java/br/com/hackathonfc/park/controller/form/VeiculoForm.java +++ /dev/null @@ -1,52 +0,0 @@ -package br.com.hackathonfc.park.controller.form; - -import java.util.Optional; - -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; - -import br.com.hackathonfc.park.model.TipoVeiculo; -import br.com.hackathonfc.park.model.Vaga; -import br.com.hackathonfc.park.model.Veiculo; -import br.com.hackathonfc.park.repository.VagaRepository; -import br.com.hackathonfc.park.repository.VeiculoRepository; - -public class VeiculoForm { - - @NotNull @NotEmpty - private String marca; - - @NotNull @NotEmpty - private String modelo; - - @NotNull @NotEmpty - private String cor; - - @NotNull @NotEmpty - private String placa; - - @NotNull - private TipoVeiculo tipoVeiculo; - - @NotNull - private Long vagaId; - - public Veiculo converter(VagaRepository vagaRepository) { - Vaga vaga = vagaRepository.getOne(vagaId); - - return new Veiculo(marca, modelo, cor, placa, tipoVeiculo, vaga); - } - - public Veiculo atualizar(Long id, VeiculoRepository veiculoRepository) { - Veiculo veiculo = veiculoRepository.getOne(id); - - veiculo.setMarca(this.marca); - veiculo.setModelo(this.modelo); - veiculo.setCor(this.cor); - veiculo.setPlaca(this.placa); - veiculo.setTipoVeiculo(this.tipoVeiculo); - - return veiculo; - } - -} diff --git a/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java b/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java new file mode 100644 index 0000000..3477ca5 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java @@ -0,0 +1,47 @@ +package br.com.hackathonfc.park.dto; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.repository.EstacionamentoRepository; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class EstacionamentoDTO { + + @NotNull @NotEmpty + private String nome; + + @NotNull + private int cnpj; + + @NotNull @NotEmpty + private String endereco; + + @NotNull + private int telefone; + + @NotNull + private int vagasCarros; + + @NotNull + private int vagasMotos; + + @NotNull + private Double precoHora; + + public EstacionamentoDTO(Estacionamento estacionamento) { + this.nome = estacionamento.getNome(); + this.cnpj = estacionamento.getCnpj(); + this.endereco = estacionamento.getEndereco(); + this.telefone = estacionamento.getTelefone(); + this.vagasCarros = estacionamento.getVagasCarros(); + this.vagasMotos = estacionamento.getVagasMotos(); + this.precoHora = estacionamento.getPrecoHora(); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java new file mode 100644 index 0000000..759122b --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java @@ -0,0 +1,34 @@ +package br.com.hackathonfc.park.dto; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.stream.Collectors; + +import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.model.Vaga; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VagaDTO { + + private Long id; + + private Estacionamento estacionamento; + + private LocalDateTime dataInicio; + + private LocalDateTime dataSaida; + + private boolean livre; + + public VagaDTO(Vaga vaga) { + this.estacionamento = vaga.getEstacionamento(); + this.dataInicio = vaga.getDataInicio(); + this.dataSaida = vaga.getDataSaida(); + this.livre = vaga.isLivre(); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java new file mode 100644 index 0000000..72f8f31 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java @@ -0,0 +1,49 @@ +package br.com.hackathonfc.park.dto; + +import java.util.List; +import java.util.stream.Collectors; + +import br.com.hackathonfc.park.model.TipoVeiculo; +import br.com.hackathonfc.park.model.Veiculo; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VeiculoDTO { + + private Long id; + + @NotNull + @NotEmpty + private String marca; + + @NotNull @NotEmpty + private String modelo; + + @NotNull @NotEmpty + private String cor; + + @NotNull @NotEmpty + private String placa; + + @NotNull + private TipoVeiculo tipoVeiculo; + + @NotNull + private Long vagaId; + + public VeiculoDTO(Veiculo veiculo) { + this.marca = veiculo.getMarca(); + this.modelo = veiculo.getModelo(); + this.cor = veiculo.getCor(); + this.placa = veiculo.getPlaca(); + this.tipoVeiculo = veiculo.getTipoVeiculo(); + this.vagaId = veiculo.getVaga().getId(); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java new file mode 100644 index 0000000..14d30ef --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java @@ -0,0 +1,22 @@ +package br.com.hackathonfc.park.mapper; + +import br.com.hackathonfc.park.dto.EstacionamentoDTO; +import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.model.Vaga; +import org.springframework.data.domain.Page; + +import java.util.List; +import java.util.stream.Collectors; + +public class EstacionamentoMAP { + + public List fromDTO(List estacionamentos){ + return estacionamentos.stream().map(Estacionamento::new).collect(Collectors.toList()); + } + + public List toDTO(Page estacionamentos){ + return estacionamentos.stream().map(EstacionamentoDTO::new).collect(Collectors.toList()); + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java new file mode 100644 index 0000000..2938832 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java @@ -0,0 +1,19 @@ +package br.com.hackathonfc.park.mapper; + +import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.model.Vaga; +import br.com.hackathonfc.park.model.Veiculo; + +import java.util.List; +import java.util.stream.Collectors; + +public class VagaMAP { + + public List fromDTO(List vagas){ + return vagas.stream().map(Vaga::new).collect(Collectors.toList()); + } + + public List toDTO(List vagas){ + return vagas.stream().map(VagaDTO::new).collect(Collectors.toList()); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java new file mode 100644 index 0000000..8436fe3 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java @@ -0,0 +1,18 @@ +package br.com.hackathonfc.park.mapper; + +import br.com.hackathonfc.park.dto.VeiculoDTO; +import br.com.hackathonfc.park.model.Veiculo; + +import java.util.List; +import java.util.stream.Collectors; + +public class VeiculoMAP { + + public List toDTO(List veiculos) { + return veiculos.stream().map(VeiculoDTO::new).collect(Collectors.toList()); + } + + public List fromDTO(List veiculos){ + return veiculos.stream().map(Veiculo::new).collect(Collectors.toList()); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java index 28a6f63..9afd2f6 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -1,5 +1,7 @@ package br.com.hackathonfc.park.model; +import br.com.hackathonfc.park.dto.EstacionamentoDTO; + import java.util.ArrayList; import java.util.List; @@ -46,8 +48,18 @@ public Estacionamento(String nome, int cnpj, String endereco, int telefone, int this.vagasCarros = vagasCarros; this.precoHora = precoHora; } - - @Override + + public Estacionamento(EstacionamentoDTO estacionamentoDTO) { + this.nome = estacionamentoDTO.getNome(); + this.cnpj = estacionamentoDTO.getCnpj(); + this.endereco = estacionamentoDTO.getEndereco(); + this.telefone = estacionamentoDTO.getTelefone(); + this.vagasCarros = estacionamentoDTO.getVagasCarros(); + this.vagasMotos = estacionamentoDTO.getVagasMotos(); + this.precoHora = estacionamentoDTO.getPrecoHora(); + } + + @Override public int hashCode() { final int prime = 31; int result = 1; diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index 4a87376..379c8a6 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -1,5 +1,7 @@ package br.com.hackathonfc.park.model; +import br.com.hackathonfc.park.dto.VagaDTO; + import java.time.LocalDateTime; import javax.persistence.Entity; @@ -33,8 +35,15 @@ public Vaga(Estacionamento estacionamento, LocalDateTime dataInicio, LocalDateTi this.dataSaida = dataSaida; this.livre = livre; } - - @Override + + public Vaga(VagaDTO vagaDTO) { + this.estacionamento = vagaDTO.getEstacionamento(); + this.dataInicio = vagaDTO.getDataInicio(); + this.dataSaida = vagaDTO.getDataSaida(); + this.livre = vagaDTO.isLivre(); + } + + @Override public int hashCode() { final int prime = 31; int result = 1; diff --git a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java index 9467d66..0d06d0b 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java +++ b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java @@ -1,5 +1,10 @@ package br.com.hackathonfc.park.model; +import br.com.hackathonfc.park.dto.VeiculoDTO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; @@ -9,6 +14,9 @@ import javax.persistence.OneToOne; @Entity +@Data +@AllArgsConstructor +@NoArgsConstructor public class Veiculo { @Id @@ -28,106 +36,12 @@ public class Veiculo { @OneToOne private Vaga vaga; - - public Veiculo() { - } - - public Veiculo(String marca, String modelo, String cor, String placa, TipoVeiculo tipoVeiculo, Vaga vaga) { - this.marca = marca; - this.modelo = modelo; - this.cor = cor; - this.placa = placa; - this.tipoVeiculo = tipoVeiculo; - this.vaga = vaga; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((id == null) ? 0 : id.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - Veiculo other = (Veiculo) obj; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - return true; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getMarca() { - return marca; - } - - public void setMarca(String marca) { - this.marca = marca; - } - - public String getCor() { - return cor; - } - - public void setCor(String cor) { - this.cor = cor; - } - - public String getPlaca() { - return placa; - } - - public void setPlaca(String placa) { - this.placa = placa; - } - - public TipoVeiculo getVeiculo() { - return tipoVeiculo; - } - - public void setVeiculo(TipoVeiculo veiculo) { - this.tipoVeiculo = veiculo; - } - - public String getModelo() { - return modelo; - } - - public void setModelo(String modelo) { - this.modelo = modelo; - } - - public TipoVeiculo getTipoVeiculo() { - return tipoVeiculo; - } - public void setTipoVeiculo(TipoVeiculo tipoVeiculo) { - this.tipoVeiculo = tipoVeiculo; + public Veiculo(VeiculoDTO veiculoDTO) { + this.marca = veiculoDTO.getMarca(); + this.modelo = veiculoDTO.getModelo(); + this.cor = veiculoDTO.getCor(); + this.placa = veiculoDTO.getPlaca(); + this.tipoVeiculo = veiculoDTO.getTipoVeiculo(); } - - public Vaga getVaga() { - return vaga; - } - - public void setVaga(Vaga vaga) { - this.vaga = vaga; - } - } diff --git a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java new file mode 100644 index 0000000..5033958 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java @@ -0,0 +1,47 @@ +package br.com.hackathonfc.park.service; + +import br.com.hackathonfc.park.dto.EstacionamentoDTO; +import br.com.hackathonfc.park.mapper.EstacionamentoMAP; +import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.repository.EstacionamentoRepository; +import org.apache.coyote.Response; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class EstacionamentoService { + + @Autowired + private EstacionamentoRepository estacionamentoRepository; + + @Autowired + private EstacionamentoMAP estacionamentoMAP; + + public Page listar(Pageable paginacao){ + + List estacionamentos = estacionamentoMAP.toDTO(estacionamentoRepository.findAll(paginacao)); + + return new PageImpl<>(estacionamentos); + + } + + public ResponseEntity cadastrar(List estacionamentoDTO){ + try { + EstacionamentoDTO estacionamento = (EstacionamentoDTO) estacionamentoRepository.saveAll(estacionamentoMAP.fromDTO(estacionamentoDTO)); + return ResponseEntity.ok().body(estacionamento); + } + catch (Exception e){ + return ResponseEntity.badRequest().build(); + } + } + + public ResponseEntity atualizar(EstacionamentoDTO estacionamentoDTO){ + return null; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/service/VagaService.java b/src/main/java/br/com/hackathonfc/park/service/VagaService.java new file mode 100644 index 0000000..53df804 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/service/VagaService.java @@ -0,0 +1,25 @@ +package br.com.hackathonfc.park.service; + +import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.mapper.VagaMAP; +import br.com.hackathonfc.park.model.Vaga; +import br.com.hackathonfc.park.repository.VagaRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class VagaService { + + @Autowired + private VagaRepository vagaRepository; + + @Autowired + private VagaMAP vagaMAP; + + public List listar(Long id){ + List vagas = vagaRepository.findAllFromEstacionamento(id); + return vagaMAP.toDTO(vagas); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java new file mode 100644 index 0000000..dc8a1e0 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -0,0 +1,15 @@ +package br.com.hackathonfc.park.service; + +import br.com.hackathonfc.park.repository.VeiculoRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class VeiculoService { + + @Autowired + private VeiculoRepository veiculoRepository; + + + +} From bca602d51da4265286b2acb579b8f852e39c2fa5 Mon Sep 17 00:00:00 2001 From: Henrico Date: Tue, 24 Dec 2019 19:27:12 -0300 Subject: [PATCH 42/78] Add EstacionamentoBO and Fix EstacionamentoController --- .../hackathonfc/park/bo/EstacionamentoBO.java | 44 +++++++++++++++++++ .../controller/EstacionamentoController.java | 32 ++++---------- .../park/service/EstacionamentoService.java | 33 ++++++++++++-- 3 files changed, 82 insertions(+), 27 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java diff --git a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java new file mode 100644 index 0000000..8c1e724 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java @@ -0,0 +1,44 @@ +package br.com.hackathonfc.park.bo; + +import br.com.hackathonfc.park.dto.EstacionamentoDTO; +import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.service.EstacionamentoService; +import br.com.hackathonfc.park.service.VagaService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class EstacionamentoBO { + + @Autowired + private EstacionamentoService estacionamentoService; + + @Autowired + private VagaService vagaService; + + public Page listarEstacionamentos(Pageable paginacao){ + return estacionamentoService.listar(paginacao); + } + + public List listarVagas(Long id){ + return vagaService.listar(id); + } + + public ResponseEntity cadastrar(List estacionamentos){ + return estacionamentoService.cadastrar(estacionamentos); + } + + public ResponseEntity atualizar(Long id, EstacionamentoDTO estacionamentoDTO){ + return estacionamentoService.atualizar(id, estacionamentoDTO); + } + + public ResponseEntity deletar(Long id){ + return estacionamentoService.deletar(id); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index e654bf0..2f27bd9 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -6,6 +6,7 @@ import javax.validation.Valid; +import br.com.hackathonfc.park.bo.EstacionamentoBO; import br.com.hackathonfc.park.service.EstacionamentoService; import br.com.hackathonfc.park.service.VagaService; import org.springframework.beans.factory.annotation.Autowired; @@ -38,52 +39,35 @@ public class EstacionamentoController { @Autowired - private EstacionamentoService estacionamentoService; - - @Autowired - private VagaService vagaService; + private EstacionamentoBO estacionamentoBO; @CrossOrigin @GetMapping public Page listar(@PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ - return estacionamentoService.listar(paginacao); + return estacionamentoBO.listarEstacionamentos(paginacao); } @CrossOrigin @GetMapping("/{id}/vagas") public List listarVagas(@PathVariable Long id) { - return vagaService.listar(id); + return estacionamentoBO.listarVagas(id); } @CrossOrigin @PostMapping public ResponseEntity cadastrar(@RequestBody List estacionamentoDTO) { - return estacionamentoService.cadastrar(estacionamentoDTO); + return estacionamentoBO.cadastrar(estacionamentoDTO); } @CrossOrigin @PutMapping("/{id}") - public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid AtualizacaoEstacionamentoForm form){ - Optional optional = estacionamentoRepository.findById(id); - - if(optional.isPresent()) { - Estacionamento estacionamento = form.atualizar(id, estacionamentoRepository); - return ResponseEntity.ok(estacionamento); - } - - return ResponseEntity.notFound().build(); + public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid EstacionamentoDTO estacionamentoDTO){ + return estacionamentoBO.atualizar(id, estacionamentoDTO); } @DeleteMapping("/{id}") public ResponseEntity remover(@PathVariable Long id){ - Optional optional = estacionamentoRepository.findById(id); - - if (optional.isPresent()) { - estacionamentoRepository.deleteById(id); - return ResponseEntity.ok().build(); - } - - return ResponseEntity.notFound().build(); + return estacionamentoBO.deletar(id); } } diff --git a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java index 5033958..227f089 100644 --- a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java @@ -4,7 +4,6 @@ import br.com.hackathonfc.park.mapper.EstacionamentoMAP; import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.repository.EstacionamentoRepository; -import org.apache.coyote.Response; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; @@ -13,6 +12,7 @@ import org.springframework.stereotype.Service; import java.util.List; +import java.util.Optional; @Service public class EstacionamentoService { @@ -41,7 +41,34 @@ public ResponseEntity cadastrar(List estac } } - public ResponseEntity atualizar(EstacionamentoDTO estacionamentoDTO){ - return null; + public ResponseEntity atualizar(Long id, EstacionamentoDTO estacionamentoDTO){ + Optional checkEstacionamento = estacionamentoRepository.findById(id); + + if (checkEstacionamento.isPresent()){ + Estacionamento estacionamento = checkEstacionamento.get(); + + estacionamento.setNome(estacionamentoDTO.getNome()); + estacionamento.setCnpj(estacionamentoDTO.getCnpj()); + estacionamento.setEndereco(estacionamentoDTO.getEndereco()); + estacionamento.setPrecoHora(estacionamentoDTO.getPrecoHora()); + estacionamento.setTelefone(estacionamentoDTO.getTelefone()); + estacionamento.setVagasCarros(estacionamentoDTO.getVagasCarros()); + estacionamento.setVagasMotos(estacionamentoDTO.getVagasMotos()); + + return ResponseEntity.ok(estacionamento); + } + + return ResponseEntity.notFound().build(); + } + + public ResponseEntity deletar(Long id){ + Optional checkEstacionamento = estacionamentoRepository.findById(id); + + if (checkEstacionamento.isPresent()) { + estacionamentoRepository.deleteById(id); + return ResponseEntity.ok().build(); + } + + return ResponseEntity.notFound().build(); } } From 65cb71f8762decc57f74e8600a0c012f9fbd0d16 Mon Sep 17 00:00:00 2001 From: Henrico Date: Tue, 24 Dec 2019 19:36:52 -0300 Subject: [PATCH 43/78] Add SwaggerConfigurations --- pom.xml | 30 ++- .../config/swagger/SwaggerConfigurations.java | 26 +++ .../park/controller/IndexController.java | 13 -- src/main/resources/application.properties | 2 +- src/main/resources/static/images/banner.png | Bin 282683 -> 0 bytes .../static/images/estacionamento-info.png | Bin 306281 -> 0 bytes .../static/images/estacionamento.png | Bin 126931 -> 0 bytes src/main/resources/static/images/logo.png | Bin 8099 -> 0 bytes src/main/resources/static/images/register.svg | 40 ---- .../resources/static/styles/gerenciar.css | 179 ------------------ src/main/resources/static/styles/main.css | 150 --------------- src/main/resources/templates/cadastro.html | 169 ----------------- .../resources/templates/cadastroVeiculo.html | 131 ------------- src/main/resources/templates/gerenciar.html | 110 ----------- src/main/resources/templates/index.html | 102 ---------- 15 files changed, 41 insertions(+), 911 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/config/swagger/SwaggerConfigurations.java delete mode 100644 src/main/java/br/com/hackathonfc/park/controller/IndexController.java delete mode 100644 src/main/resources/static/images/banner.png delete mode 100644 src/main/resources/static/images/estacionamento-info.png delete mode 100644 src/main/resources/static/images/estacionamento.png delete mode 100644 src/main/resources/static/images/logo.png delete mode 100644 src/main/resources/static/images/register.svg delete mode 100644 src/main/resources/static/styles/gerenciar.css delete mode 100644 src/main/resources/static/styles/main.css delete mode 100644 src/main/resources/templates/cadastro.html delete mode 100644 src/main/resources/templates/cadastroVeiculo.html delete mode 100644 src/main/resources/templates/gerenciar.html delete mode 100644 src/main/resources/templates/index.html diff --git a/pom.xml b/pom.xml index 7fa85ce..cbcdff3 100644 --- a/pom.xml +++ b/pom.xml @@ -20,10 +20,7 @@ - - org.springframework.boot - spring-boot-starter-actuator - + org.springframework.boot spring-boot-starter-data-jpa @@ -45,24 +42,25 @@ h2 runtime - - - - org.springframework.boot - spring-boot-starter-thymeleaf - - - - org.springframework.boot - spring-boot-starter-thymeleaf - org.springframework.boot spring-boot-devtools runtime - + + + io.springfox + springfox-swagger2 + 2.9.2 + + + + io.springfox + springfox-swagger-ui + 2.9.2 + + org.springframework.boot spring-boot-starter-test diff --git a/src/main/java/br/com/hackathonfc/park/config/swagger/SwaggerConfigurations.java b/src/main/java/br/com/hackathonfc/park/config/swagger/SwaggerConfigurations.java new file mode 100644 index 0000000..88fe23b --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/config/swagger/SwaggerConfigurations.java @@ -0,0 +1,26 @@ +package br.com.hackathonfc.park.config.swagger; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.Arrays; + +@Configuration +@EnableSwagger2 +public class SwaggerConfigurations { + @Bean + public Docket api() { + return new Docket(DocumentationType.SWAGGER_2) + .select() + .apis(RequestHandlerSelectors.basePackage("br.com.hackathonfc.park")) + .paths(PathSelectors.ant("/**")) + .build(); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/controller/IndexController.java b/src/main/java/br/com/hackathonfc/park/controller/IndexController.java deleted file mode 100644 index fd04ca7..0000000 --- a/src/main/java/br/com/hackathonfc/park/controller/IndexController.java +++ /dev/null @@ -1,13 +0,0 @@ -package br.com.hackathonfc.park.controller; - -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.servlet.ModelAndView; - -public class IndexController { - - - @RequestMapping("/") - public ModelAndView index(){ - return new ModelAndView("index"); - } -} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 830adab..5bed9b2 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,6 +1,6 @@ # data source spring.datasource.driverClassName=org.h2.Driver -spring.datasource.url=jdbc:h2:mem:alura-forum +spring.datasource.url=jdbc:h2:mem:parkDb spring.datasource.username=sa spring.datasource.password= diff --git a/src/main/resources/static/images/banner.png b/src/main/resources/static/images/banner.png deleted file mode 100644 index 984e241375d4718af5b9b6ffedc178b93e630235..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282683 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 z 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

P_jwRTb3)!(f~jjU*|PN$?rPM-ywB52FURT!I? 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 QJOBUy07*qoM6N<$f)IVWZvX%Q diff --git a/src/main/resources/static/images/estacionamento.png b/src/main/resources/static/images/estacionamento.png deleted file mode 100644 index 5f6455e4094ccf831476f7329a6bfa6bb89fb258..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126931 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 $$Yz|UsQuY%@ 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

I3oan>9;#^oo8+5J9b*a$q8Vt9H#>(x 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 P00000NkvXXu0mjfkfd9= diff --git a/src/main/resources/static/images/logo.png b/src/main/resources/static/images/logo.png deleted file mode 100644 index a47fe52e015b5206d5e466345b4e7af1bcf5827e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8099 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 diff --git a/src/main/resources/static/images/register.svg b/src/main/resources/static/images/register.svg deleted file mode 100644 index 459b3db..0000000 --- a/src/main/resources/static/images/register.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/static/styles/gerenciar.css b/src/main/resources/static/styles/gerenciar.css deleted file mode 100644 index 64ee857..0000000 --- a/src/main/resources/static/styles/gerenciar.css +++ /dev/null @@ -1,179 +0,0 @@ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: 'Helvetica Neue', 'Helvetica', Arial, sans-serif; - text-rendering: optimizeLegibility !important; - -webkit-font-smoothing: antialiased !important; - background: #000; -} - -.content { - max-width: 1170px; - margin: 0 auto; -} - -header#main-header { - height: 284px; -} - -div.wrapper-content { - display: flex; - background: #e6ecf0; - height: 100%; -} - -div.wrapper-content aside.menu{ - width: 260px; - background: #505050; -} - -div.wrapper-content aside.menu nav ul { - display: flex; - list-style: none; - min-height: 500px; - align-items: center; - flex-direction: column; -} - -div.wrapper-content aside.menu nav ul:first-child { - padding-top: 20px; -} - -div.wrapper-content aside.menu nav ul li{ - display: flex; - background: #ffa201; - align-items: center; - justify-content: center; - color: #fff; - height: 35px; - width: 220px; - border-radius: 5px; - font-size: 12px; - font-weight: bold; - margin-bottom: 15px; -} - -div.wrapper-content aside.menu nav ul li img { - height: 20px; - width: 20px; -} - -div.wrapper-content section.main { - color: #fff; - display: flex; - flex-direction: column; - align-items: center; - flex: 1 1 0%; - width: -webkit-fill-available; -} - -div.wrapper-content section.main .conteudo { - background: #fff; - margin: 10px 20px 10px 20px; - width: inherit; - border-radius: 5px 5px 0 0; -} - -div.wrapper-content section.main .conteudo h2 { - background: #505050; - color: #fff; - padding: 10px; - font-size: 17px; - border-radius: 7px 7px 0 0; -} - -div.wrapper-content section.main .conteudo .info { - display: flex; - justify-content: space-between; - align-items: center; - width: 100%; - height: 140px; - padding: 40px 20px; - border-radius: 5px 5px 0 0; - background: url('/images/estacionamento-info.png') no-repeat center; -} - -div.wrapper-content section.main .conteudo .info h1 { - margin-bottom: 5px; -} - -div.wrapper-content section.main .conteudo .estacionamento { - margin: 10px; - background: #ebebeb; - border-radius: 7px 7px 0 0; -} - -div.wrapper-content section.main .conteudo .estacionamento .estacionamento-info ul{ - list-style: none; - color: #000; - padding: 10px; - font-size: 14px; -} - -div.wrapper-content section.main .conteudo .estacionamento .estacionamento-info ul li strong{ - margin-right: 4px; -} - -div.wrapper-content section.main .conteudo .vagas { - margin: 10px; - background: #ebebeb; - border-radius: 7px 7px 0 0; -} - -div.wrapper-content section.main .conteudo .vagas .info-vagas { - background: #b9b9b9; -} - -div.wrapper-content section.main .conteudo .vagas .info-vagas ul{ - list-style: none; - display: flex; - font-size: 13px; - padding: 5px 0 5px 10px; - color: #505050; -} - -div.wrapper-content section.main .conteudo .vagas .info-vagas ul li{ - margin-right: 5px; -} - -div.wrapper-content section.main .conteudo .vagas .info-vagas ul li strong{ - margin-right: 4px; -} - -div.wrapper-content section.main .conteudo .vagas .info-vagas .vagas-disponiveis ul{ - display: flex; - flex-wrap: wrap; - justify-content: center; - background: #ebebeb; - padding: 20px; -} - -div.wrapper-content section.main .conteudo .vagas .info-vagas .vagas-disponiveis ul li{ - display: flex; - justify-content: center; - font-size: 40px; - background: #18b134; - border-radius: 5px; - padding: 20px; - min-width: 90px; - color: #fff; - margin-bottom: 5px; -} - -footer#rodape { - display: flex; - justify-content: space-between; - align-items: center; - padding: 0 50px; - color: #fff; - height: 150px; - background: #333333; -} - -footer#rodape img { - height: 30%; -} diff --git a/src/main/resources/static/styles/main.css b/src/main/resources/static/styles/main.css deleted file mode 100644 index 6674100..0000000 --- a/src/main/resources/static/styles/main.css +++ /dev/null @@ -1,150 +0,0 @@ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: 'Helvetica Neue', 'Helvetica', Arial, sans-serif; - text-rendering: optimizeLegibility !important; - -webkit-font-smoothing: antialiased !important; - background: #000; -} - -.content { - max-width: 1170px; - margin: 0 auto; -} - -header#main-header { - height: 284px; -} - -div.wrapper-content { - display: flex; - background: #e6ecf0; - height: 100%; -} - -div.wrapper-content aside.menu{ - width: 260px; - background: #505050; -} - -div.wrapper-content aside.menu nav ul { - display: flex; - list-style: none; - min-height: 500px; - align-items: center; - flex-direction: column; -} - -div.wrapper-content aside.menu nav ul:first-child { - padding-top: 20px; -} - -div.wrapper-content aside.menu nav ul li{ - display: flex; - background: #ffa201; - align-items: center; - justify-content: center; - color: #fff; - height: 35px; - width: 220px; - border-radius: 5px; - font-size: 12px; - font-weight: bold; - margin-bottom: 15px; -} - -div.wrapper-content aside.menu nav ul li img { - height: 20px; - width: 20px; -} - -div.wrapper-content section.main { - color: #fff; - display: flex; - flex-direction: column; - align-items: center; - flex: 1 1 0%; -} - -div.wrapper-content section.main .estacionamento { - display: flex; - justify-content: space-between; - align-items: center; - width: 100%; - padding: 30px 20px; - width: 800px; - border-radius: 10px; - background: url('/images/estacionamento.png') no-repeat center; - margin-top: 10px; -} - -div.wrapper-content section.main .estacionamento:last-child{ - margin-bottom: 10px; -} -div.wrapper-content section.main .estacionamento h1 { - margin-bottom: 5px; -} - -div.wrapper-content section.main .estacionamento .info .tags .vagas ul { - list-style: none; - display: flex; - margin-bottom: 5px; -} - -div.wrapper-content section.main .estacionamento .info .tags .vagas li { - background: #ffa201; - display: flex; - justify-content: center; - border-radius: 10px; - font-size: 12px; - margin-right: 5px; - padding: 5px 17px; -} - -div.wrapper-content section.main .estacionamento .info .tags .vagas li strong { -margin-right: 4px; -} - -div.wrapper-content section.main .estacionamento .info .tags .endereco { - background: #ffa201; - display: flex; - justify-content: flex-start; - border-radius: 10px; - font-size: 12px; - margin-right: 5px; - padding: 5px 17px; -} - -div.wrapper-content section.main .estacionamento a { - background: #ffa201; - display: flex; - align-items: center; - align-content: center; - border-radius: 10px; - font-size: 12px; - font-weight: bold; - text-decoration: none; - color: #fff; - font-size: 15px; - margin-right: 5px; - padding: 0px 17px; - height: 40px; -} - -footer#rodape { - display: flex; - justify-content: space-between; - align-items: center; - padding: 0 50px; - color: #fff; - height: 150px; - background: #333333; -} - -footer#rodape img { - height: 30%; -} diff --git a/src/main/resources/templates/cadastro.html b/src/main/resources/templates/cadastro.html deleted file mode 100644 index 1184d8f..0000000 --- a/src/main/resources/templates/cadastro.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - -

- - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/cadastroVeiculo.html b/src/main/resources/templates/cadastroVeiculo.html deleted file mode 100644 index 979387a..0000000 --- a/src/main/resources/templates/cadastroVeiculo.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - -
-
-
-
-
- -
-
- -
-
- Marca -
- -
-
- -
-
-
-
-
-
- Modelo -
- -
-
-
- -
-
-
-
- Cor -
- -
-
-
- -
-
-
-
- Placa -
- -
-
-
- -
-
-
- -
-
- -
-
-
-
-
-
- - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/gerenciar.html b/src/main/resources/templates/gerenciar.html deleted file mode 100644 index 61ddb75..0000000 --- a/src/main/resources/templates/gerenciar.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - Gerenciador de Estacionamento - - - - -
-
- Banner -
-
-
- -
-
-
-

Estacionamento Fulano

-
-
-

Informações do Estacionamento

-
-
    -
  • Nome:Estacionamento Fulano ME
  • -
  • CNPJ:11.251.251/0001-52
  • -
  • Endereço:Rua Doutor Fulano de Tal, 505 - Aparecida, Santos/SP
  • -
  • Valor da Hora:R$ 10,00
  • -
-
-
-
-

Vagas

-
-
    -
  • Vagas de Carros:20 |
  • -
  • Disponíveis:18 |
  • -
  • Ocupadas:2
  • -
-
-
    -
  • 1
  • -
  • 2
  • -
  • 3
  • -
  • 4
  • -
  • 5
  • -
  • 6
  • -
  • 7
  • -
  • 8
  • -
  • 9
  • -
  • 10
  • -
  • 11
  • -
  • 12
  • -
  • 13
  • -
  • 14
  • -
  • 15
  • -
  • 16
  • -
  • 17
  • -
  • 18
  • -
  • 19
  • -
  • 20
  • -
-
-
-
-
    -
  • Vagas de Motocicletas:10 |
  • -
  • Disponíveis:7 |
  • -
  • Ocupadas:3
  • -
-
-
    -
  • 1
  • -
  • 2
  • -
  • 3
  • -
  • 4
  • -
  • 5
  • -
  • 6
  • -
  • 7
  • -
  • 8
  • -
  • 9
  • -
  • 10
  • -
-
-
-
-
-
-
-
-
- Logotipo - © Gerenciador de Estacionamento 2019 -
-
- - - \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html deleted file mode 100644 index 4be60b8..0000000 --- a/src/main/resources/templates/index.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Gerenciador de Estacionamento - - - - -
-
- Banner -
-
-
- -
- - -
-
-

Estacionamento Fulano

-
-
-
    -
  • Vagas Carro: 20
  • -
  • Vagas Moto: 10
  • -
-
-
Endereço: Rua Doutor Fulano de Tal, 505 - Aparecida, Santos/SP
-
-
- Gerenciar -
- -
-
-

Estacionamento Fulano

-
-
-
    -
  • Vagas Carro: 20
  • -
  • Vagas Moto: 10
  • -
-
-
Endereço: Rua Doutor Fulano de Tal, 505 - Aparecida, Santos/SP
-
-
- Gerenciar -
- -
-
-

-
-
-
    -
  • Vagas Carro: 20
  • -
  • Vagas Moto: 10
  • -
-
-
Endereço: Rua Doutor Fulano de Tal, 505 - Aparecida, Santos/SP
-
-
- Gerenciar -
-
-
-
-
- Logotipo - © Gerenciador de Estacionamento 2019 -
-
- - - \ No newline at end of file From d84a4c341ad5a366cfecdc09a3126e934f116407 Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 26 Dec 2019 12:44:58 -0300 Subject: [PATCH 44/78] Fix VagaController --- .../hackathonfc/park/bo/EstacionamentoBO.java | 6 +- .../controller/EstacionamentoController.java | 21 +++---- .../park/controller/VagaController.java | 44 ++++---------- .../park/dto/EstacionamentoDTO.java | 3 + .../br/com/hackathonfc/park/dto/VagaDTO.java | 14 +++-- .../park/mapper/EstacionamentoMAP.java | 3 + .../hackathonfc/park/mapper/VeiculoMAP.java | 4 ++ .../park/model/Estacionamento.java | 8 +-- .../br/com/hackathonfc/park/model/Vaga.java | 12 ++-- .../com/hackathonfc/park/model/Veiculo.java | 8 +-- .../park/service/EstacionamentoService.java | 24 +++++--- .../hackathonfc/park/service/VagaService.java | 3 +- .../park/service/VeiculoService.java | 60 +++++++++++++++++++ src/main/resources/data.sql | 21 ++++--- 14 files changed, 140 insertions(+), 91 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java index 8c1e724..8b8fa67 100644 --- a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java +++ b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java @@ -30,7 +30,7 @@ public List listarVagas(Long id){ return vagaService.listar(id); } - public ResponseEntity cadastrar(List estacionamentos){ + public ResponseEntity> cadastrar(List estacionamentos){ return estacionamentoService.cadastrar(estacionamentos); } @@ -41,4 +41,8 @@ public ResponseEntity atualizar(Long id, EstacionamentoDTO estac public ResponseEntity deletar(Long id){ return estacionamentoService.deletar(id); } + + public EstacionamentoDTO detalharEstacionamento(Long id) { + return estacionamentoService.detalhar(id); + } } diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 2f27bd9..23713da 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -1,14 +1,10 @@ package br.com.hackathonfc.park.controller; -import java.net.URI; import java.util.List; -import java.util.Optional; import javax.validation.Valid; import br.com.hackathonfc.park.bo.EstacionamentoBO; -import br.com.hackathonfc.park.service.EstacionamentoService; -import br.com.hackathonfc.park.service.VagaService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -23,16 +19,11 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.util.UriComponentsBuilder; import br.com.hackathonfc.park.dto.VagaDTO; import br.com.hackathonfc.park.dto.EstacionamentoDTO; import br.com.hackathonfc.park.model.Estacionamento; -import br.com.hackathonfc.park.model.Vaga; -import br.com.hackathonfc.park.repository.EstacionamentoRepository; -import br.com.hackathonfc.park.repository.VagaRepository; @RestController @RequestMapping("/estacionamentos") @@ -41,9 +32,15 @@ public class EstacionamentoController { @Autowired private EstacionamentoBO estacionamentoBO; + @CrossOrigin + @GetMapping("/{id}") + public EstacionamentoDTO detalhar(@PathVariable Long id){ + return estacionamentoBO.detalharEstacionamento(id); + } + @CrossOrigin @GetMapping - public Page listar(@PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ + public Page listar(@PageableDefault(sort = "id", direction = Direction.ASC, page = 0, size = 10) Pageable paginacao){ return estacionamentoBO.listarEstacionamentos(paginacao); } @@ -55,7 +52,7 @@ public List listarVagas(@PathVariable Long id) { @CrossOrigin @PostMapping - public ResponseEntity cadastrar(@RequestBody List estacionamentoDTO) { + public ResponseEntity> cadastrar(@RequestBody List estacionamentoDTO) { return estacionamentoBO.cadastrar(estacionamentoDTO); } @@ -66,7 +63,7 @@ public ResponseEntity atualizar(@PathVariable Long id, @RequestB } @DeleteMapping("/{id}") - public ResponseEntity remover(@PathVariable Long id){ + public ResponseEntity remover(@PathVariable Long id){ return estacionamentoBO.deletar(id); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index 6aa4ddc..670dfc7 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -1,11 +1,12 @@ package br.com.hackathonfc.park.controller; -import java.net.URI; import java.util.List; import java.util.Optional; import javax.validation.Valid; +import br.com.hackathonfc.park.mapper.VeiculoMAP; +import br.com.hackathonfc.park.service.VeiculoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; @@ -30,52 +31,29 @@ public class VagaController { @Autowired - private VeiculoRepository veiculoRepository; - - @Autowired - private VagaRepository vagaRepository; - + private VeiculoService veiculoService; + @CrossOrigin @GetMapping("/{id}") public List listarVeiculo(@PathVariable Long id) { - List veiculos = veiculoRepository.findByVagaId(id); - return VeiculoDTO.converter(veiculos); + return veiculoService.listarVeiculo(id); } @CrossOrigin @PostMapping - @Transactional - public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoForm form, UriComponentsBuilder uriBuilder) { - Veiculo veiculo = form.converter(vagaRepository); - veiculoRepository.save(veiculo); - - URI uri = uriBuilder.path("/estacionamentos/{id}/vagas/{id}").buildAndExpand(veiculo.getId()).toUri(); - return ResponseEntity.created(uri).body(new VeiculoDTO(veiculo)); + public ResponseEntity> cadastrarVeiculo(@RequestBody @Valid List veiculoDTO) { + return veiculoService.cadastrarVeiculo(veiculoDTO); } @CrossOrigin @PutMapping("/{id}") - @Transactional - public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoForm form) { - Optional optional = veiculoRepository.findById(id); - if(optional.isPresent()) { - Veiculo veiculo = form.atualizar(id, veiculoRepository); - return ResponseEntity.ok(new VeiculoDTO(veiculo)); - } - - return ResponseEntity.notFound().build(); + public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoDTO veiculoDTO) { + return veiculoService.atualizarVeiculo(id, veiculoDTO); } @CrossOrigin @DeleteMapping("/{id}") - @Transactional - public ResponseEntity removerVeiculo(@PathVariable Long id) { - Optional optional = veiculoRepository.findById(id); - if(optional.isPresent()) { - veiculoRepository.deleteById(id); - return ResponseEntity.ok().build(); - } - - return ResponseEntity.notFound().build(); + public ResponseEntity removerVeiculo(@PathVariable Long id) { + return veiculoService.removerVeiculo(id); } } diff --git a/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java b/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java index 3477ca5..c2f6295 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java @@ -13,6 +13,8 @@ @AllArgsConstructor @NoArgsConstructor public class EstacionamentoDTO { + + private Long id; @NotNull @NotEmpty private String nome; @@ -36,6 +38,7 @@ public class EstacionamentoDTO { private Double precoHora; public EstacionamentoDTO(Estacionamento estacionamento) { + this.id = estacionamento.getId(); this.nome = estacionamento.getNome(); this.cnpj = estacionamento.getCnpj(); this.endereco = estacionamento.getEndereco(); diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java index 759122b..4627674 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java @@ -10,19 +10,25 @@ import lombok.Data; import lombok.NoArgsConstructor; +import javax.validation.constraints.NotNull; + @Data @AllArgsConstructor @NoArgsConstructor public class VagaDTO { - + private Long id; + @NotNull private Estacionamento estacionamento; - + + @NotNull private LocalDateTime dataInicio; - + + @NotNull private LocalDateTime dataSaida; - + + @NotNull private boolean livre; public VagaDTO(Vaga vaga) { diff --git a/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java index 14d30ef..2b75dfc 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java @@ -19,4 +19,7 @@ public List toDTO(Page estacionamentos){ return estacionamentos.stream().map(EstacionamentoDTO::new).collect(Collectors.toList()); } + public EstacionamentoDTO toDTO(Estacionamento estacionamento) { + return new EstacionamentoDTO(estacionamento); + } } diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java index 8436fe3..75bfbe3 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java @@ -15,4 +15,8 @@ public List toDTO(List veiculos) { public List fromDTO(List veiculos){ return veiculos.stream().map(Veiculo::new).collect(Collectors.toList()); } + + public VeiculoDTO toDTO(Veiculo veiculo) { + return new VeiculoDTO(veiculo); + } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java index 9afd2f6..d309cc0 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -5,11 +5,7 @@ import java.util.ArrayList; import java.util.List; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToMany; +import javax.persistence.*; @Entity public class Estacionamento { @@ -32,7 +28,7 @@ public class Estacionamento { private Double precoHora; - @OneToMany(mappedBy = "estacionamento") + @OneToMany(mappedBy = "estacionamento", cascade = CascadeType.ALL, orphanRemoval = true) private List vagas = new ArrayList<>(); public Estacionamento() { diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index 379c8a6..090b000 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -4,12 +4,7 @@ import java.time.LocalDateTime; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.OneToOne; +import javax.persistence.*; @Entity public class Vaga { @@ -17,7 +12,7 @@ public class Vaga { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @ManyToOne + @ManyToOne(cascade = CascadeType.ALL) private Estacionamento estacionamento; private LocalDateTime dataInicio; @@ -25,6 +20,9 @@ public class Vaga { private LocalDateTime dataSaida; private boolean livre; + + @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true) + private Veiculo veiculo; public Vaga() { } diff --git a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java index 0d06d0b..179de3c 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java +++ b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java @@ -5,13 +5,7 @@ import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToOne; +import javax.persistence.*; @Entity @Data diff --git a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java index 227f089..7ea74d1 100644 --- a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java @@ -20,21 +20,20 @@ public class EstacionamentoService { @Autowired private EstacionamentoRepository estacionamentoRepository; - @Autowired - private EstacionamentoMAP estacionamentoMAP; + private EstacionamentoMAP estacionamentoMAP = new EstacionamentoMAP(); public Page listar(Pageable paginacao){ List estacionamentos = estacionamentoMAP.toDTO(estacionamentoRepository.findAll(paginacao)); - return new PageImpl<>(estacionamentos); + return new PageImpl(estacionamentos); } - public ResponseEntity cadastrar(List estacionamentoDTO){ + public ResponseEntity> cadastrar(List estacionamentoDTO){ try { - EstacionamentoDTO estacionamento = (EstacionamentoDTO) estacionamentoRepository.saveAll(estacionamentoMAP.fromDTO(estacionamentoDTO)); - return ResponseEntity.ok().body(estacionamento); + List estacionamento = estacionamentoRepository.saveAll(estacionamentoMAP.fromDTO(estacionamentoDTO)); + return ResponseEntity.ok(estacionamento); } catch (Exception e){ return ResponseEntity.badRequest().build(); @@ -65,10 +64,19 @@ public ResponseEntity deletar(Long id){ Optional checkEstacionamento = estacionamentoRepository.findById(id); if (checkEstacionamento.isPresent()) { - estacionamentoRepository.deleteById(id); - return ResponseEntity.ok().build(); + try{ + estacionamentoRepository.deleteById(id); + return ResponseEntity.ok().build(); + } + catch(Exception e){ + System.out.println(e); + } } return ResponseEntity.notFound().build(); } + + public EstacionamentoDTO detalhar(Long id) { + return estacionamentoMAP.toDTO(estacionamentoRepository.findById(id).get()); + } } diff --git a/src/main/java/br/com/hackathonfc/park/service/VagaService.java b/src/main/java/br/com/hackathonfc/park/service/VagaService.java index 53df804..e8935d0 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VagaService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VagaService.java @@ -15,8 +15,7 @@ public class VagaService { @Autowired private VagaRepository vagaRepository; - @Autowired - private VagaMAP vagaMAP; + private VagaMAP vagaMAP = new VagaMAP(); public List listar(Long id){ List vagas = vagaRepository.findAllFromEstacionamento(id); diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java index dc8a1e0..4918a07 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -1,8 +1,20 @@ package br.com.hackathonfc.park.service; +import br.com.hackathonfc.park.dto.VeiculoDTO; +import br.com.hackathonfc.park.mapper.VeiculoMAP; +import br.com.hackathonfc.park.model.Veiculo; +import br.com.hackathonfc.park.repository.VagaRepository; import br.com.hackathonfc.park.repository.VeiculoRepository; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.util.UriComponentsBuilder; + +import javax.validation.Valid; +import java.util.List; +import java.util.Optional; @Service public class VeiculoService { @@ -10,6 +22,54 @@ public class VeiculoService { @Autowired private VeiculoRepository veiculoRepository; + @Autowired + private VagaRepository vagaRepository; + + private VeiculoMAP veiculoMAP = new VeiculoMAP(); + + public List listarVeiculo(@PathVariable Long id) { + return veiculoMAP.toDTO(veiculoRepository.findByVagaId(id)); + } + + public ResponseEntity> cadastrarVeiculo(List veiculoDTO) { + List veiculo = veiculoMAP.fromDTO(veiculoDTO); + + try{ + veiculoRepository.saveAll(veiculo); + return ResponseEntity.ok(veiculo); + } + catch (Exception e){ + return ResponseEntity.badRequest().build(); + } + } + + public ResponseEntity atualizarVeiculo(Long id, VeiculoDTO veiculoDTO) { + Optional optional = veiculoRepository.findById(id); + + if(optional.isPresent()) { + Veiculo veiculo = veiculoRepository.getOne(id); + + veiculo.setCor(veiculoDTO.getCor()); + veiculo.setMarca(veiculoDTO.getMarca()); + veiculo.setModelo(veiculoDTO.getModelo()); + veiculo.setPlaca(veiculoDTO.getPlaca()); + veiculo.setTipoVeiculo(veiculoDTO.getTipoVeiculo()); + veiculo.setVaga(vagaRepository.findById(veiculoDTO.getVagaId()).get()); + + return ResponseEntity.ok(veiculoMAP.toDTO(veiculo)); + } + + return ResponseEntity.notFound().build(); + } + + public ResponseEntity removerVeiculo(@PathVariable Long id) { + Optional optional = veiculoRepository.findById(id); + if(optional.isPresent()) { + veiculoRepository.deleteById(id); + return ResponseEntity.ok().build(); + } + return ResponseEntity.notFound().build(); + } } diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 0518f62..69925db 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -1,14 +1,13 @@ -INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco, telefone, vagas_motos, vagas_carros, preco_hora) VALUES('Estacionamento 1', '1234556', 'Rua Doutor Fulano, 505 - Aparecida, Santos/SP', '123456', '10', '20', '8.50') -INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES('Estacionamento 1', '1234556', 'Rua Doutor Fulano 2, 403 - Embaré, Santos/SP', '123456', '10', '20', '7.80') -INSERT INTO ESTACIONAMENTO(nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES('Estacionamento 1', '1234556', 'Rua Doutor Fulano 3, 306 - Mocca, São Paulo/SP', '123456', '10', '20', '9.50') +INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco, telefone, vagas_motos, vagas_carros, preco_hora) VALUES(1, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano, 505 - Aparecida, Santos/SP', '123456', '10', '20', '8.50') +INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(2, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano 2, 403 - Embaré, Santos/SP', '123456', '10', '20', '7.80') +INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(3, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano 3, 306 - Mocca, São Paulo/SP', '123456', '10', '20', '9.50') -INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('1', '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) -INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('1', null, null, true) -INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('1', '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) -INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('2', null, null, true) -INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES('3', null, null, true) +INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES(1, '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) +INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES(1, null, null, true) +INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES(1, '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) +INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES(2, null, null, true) -INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 1', 'Preto', 'FFFF-4444', 'MOTO', '1') -INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 2', 'Preto', 'FFFF-4444', 'MOTO', '2') -INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 3', 'Preto', 'FFFF-4444', 'CARRO', '4') +INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 1', 'Preto', 'FFFF-4444', 'MOTO', 1) +INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 2', 'Preto', 'FFFF-4444', 'MOTO', 2) +INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 3', 'Preto', 'FFFF-4444', 'CARRO', 4) From 0d5aadce23e5ce2ff39eb55c75bf837249cc414c Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 26 Dec 2019 14:47:37 -0300 Subject: [PATCH 45/78] Add CorsConfiguration and Exceptions --- .../park/config/cors/CorsConfiguration.java | 24 +++++++++++++++++++ .../hackathonfc/park/exception/CnpjFound.java | 8 +++++++ .../exception/EstacionamentoNotFound.java | 11 +++++++++ .../hackathonfc/park/exception/NomeFound.java | 11 +++++++++ .../park/exception/PlacaFound.java | 11 +++++++++ .../park/exception/VeiculoNotFound.java | 11 +++++++++ .../com/hackathonfc/park/model/Veiculo.java | 2 +- 7 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java create mode 100644 src/main/java/br/com/hackathonfc/park/exception/CnpjFound.java create mode 100644 src/main/java/br/com/hackathonfc/park/exception/EstacionamentoNotFound.java create mode 100644 src/main/java/br/com/hackathonfc/park/exception/NomeFound.java create mode 100644 src/main/java/br/com/hackathonfc/park/exception/PlacaFound.java create mode 100644 src/main/java/br/com/hackathonfc/park/exception/VeiculoNotFound.java diff --git a/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java new file mode 100644 index 0000000..c2a668b --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java @@ -0,0 +1,24 @@ +package br.com.hackathonfc.park.config.cors; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class CorsConfiguration { + + @Bean + public WebMvcConfigurer corsConfigurer() { + return new WebMvcConfigurer() { + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedMethods("GET", "POST", "PUT", "DELETE") + .allowedOrigins("http://localhost:8081"); + } + + }; + } +} \ No newline at end of file diff --git a/src/main/java/br/com/hackathonfc/park/exception/CnpjFound.java b/src/main/java/br/com/hackathonfc/park/exception/CnpjFound.java new file mode 100644 index 0000000..9c38104 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/exception/CnpjFound.java @@ -0,0 +1,8 @@ +package br.com.hackathonfc.park.exception; + +public class CnpjFound extends Exception { + @Override + public String getMessage() { + return "Cnpj já cadastrado no sistema!"; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/exception/EstacionamentoNotFound.java b/src/main/java/br/com/hackathonfc/park/exception/EstacionamentoNotFound.java new file mode 100644 index 0000000..2d4e439 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/exception/EstacionamentoNotFound.java @@ -0,0 +1,11 @@ +package br.com.hackathonfc.park.exception; + +import lombok.AllArgsConstructor; + +@AllArgsConstructor +public class EstacionamentoNotFound extends Exception { + @Override + public String getMessage() { + return "Estacionamento não encontrado no sistema!"; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/exception/NomeFound.java b/src/main/java/br/com/hackathonfc/park/exception/NomeFound.java new file mode 100644 index 0000000..c39dd31 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/exception/NomeFound.java @@ -0,0 +1,11 @@ +package br.com.hackathonfc.park.exception; + +import lombok.AllArgsConstructor; + +@AllArgsConstructor +public class NomeFound extends Exception{ + @Override + public String getMessage() { + return "Nome já cadastrado no sistema!"; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/exception/PlacaFound.java b/src/main/java/br/com/hackathonfc/park/exception/PlacaFound.java new file mode 100644 index 0000000..bae9ac8 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/exception/PlacaFound.java @@ -0,0 +1,11 @@ +package br.com.hackathonfc.park.exception; + +import lombok.AllArgsConstructor; + +@AllArgsConstructor +public class PlacaFound extends Exception{ + @Override + public String getMessage() { + return "Placa já cadastrada no sistema!"; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/exception/VeiculoNotFound.java b/src/main/java/br/com/hackathonfc/park/exception/VeiculoNotFound.java new file mode 100644 index 0000000..7da1a2e --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/exception/VeiculoNotFound.java @@ -0,0 +1,11 @@ +package br.com.hackathonfc.park.exception; + +import lombok.AllArgsConstructor; + +@AllArgsConstructor +public class VeiculoNotFound extends Exception{ + @Override + public String getMessage() { + return "Veículo não encontrado no sistema!"; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java index 179de3c..8bdf810 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java +++ b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java @@ -27,7 +27,7 @@ public class Veiculo { @Enumerated(EnumType.STRING) private TipoVeiculo tipoVeiculo = TipoVeiculo.MOTO; - + @OneToOne private Vaga vaga; From 82f0b9dafcb05a8d826e5bfbaca731c8c7be25e1 Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 26 Dec 2019 14:55:55 -0300 Subject: [PATCH 46/78] Add GlobalExceptionHandler --- .../exception/GlobalExceptionHandler.java | 107 ++++++++++++++++++ .../com/hackathonfc/park/util/ApiError.java | 12 ++ 2 files changed, 119 insertions(+) create mode 100644 src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java create mode 100644 src/main/java/br/com/hackathonfc/park/util/ApiError.java diff --git a/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java b/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..9b5d048 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java @@ -0,0 +1,107 @@ +package br.com.hackathonfc.park.exception; + +import br.com.hackathonfc.park.util.ApiError; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.lang.Nullable; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.context.request.WebRequest; +import org.springframework.web.util.WebUtils; + +@ControllerAdvice +public class GlobalExceptionHandler { + private static final Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionHandler.class); + + @ExceptionHandler({ + CnpjFound.class, + EstacionamentoNotFound.class, + NomeFound.class, + PlacaFound.class, + VeiculoNotFound.class + }) + + @Nullable + public final ResponseEntity handleException(Exception ex, WebRequest request) { + HttpHeaders headers = new HttpHeaders(); + + LOGGER.error("Lidando com " + ex.getClass().getSimpleName() + " por causa de " + ex.getMessage()); + + if (ex instanceof CnpjFound) { + HttpStatus status = HttpStatus.CONFLICT; + CnpjFound pnve = (CnpjFound) ex; + return handleCnpjFound(pnve, headers, status, request); + + } else if (ex instanceof EstacionamentoNotFound) { + HttpStatus status = HttpStatus.CONFLICT; + EstacionamentoNotFound anve = (EstacionamentoNotFound) ex; + return handleEstacionamentoNotFound(anve, headers, status, request); + + } else if (ex instanceof NomeFound) { + HttpStatus status = HttpStatus.CONFLICT; + NomeFound efe = (NomeFound) ex; + return handleNomeFound(efe, headers, status, request); + + } else if (ex instanceof PlacaFound) { + HttpStatus status = HttpStatus.CONFLICT; + PlacaFound cpffe = (PlacaFound) ex; + return handlePlacaFound(cpffe, headers, status, request); + + } if (ex instanceof VeiculoNotFound) { + HttpStatus status = HttpStatus.CONFLICT; + VeiculoNotFound cnpjfe = (VeiculoNotFound) ex; + return handleVeiculoNotFound(cnpjfe, headers, status, request); + + } else { + if (LOGGER.isWarnEnabled()) { + LOGGER.warn("Exceção desconhecida: " + ex.getClass().getName()); + } + HttpStatus status = HttpStatus.INTERNAL_SERVER_ERROR; + return handleExceptionInternal(ex, null, headers, status, request); + } + } + + protected final ResponseEntity handleCnpjFound(CnpjFound ex, HttpHeaders headers, + HttpStatus status, WebRequest request) { + String error = ex.getMessage(); + return handleExceptionInternal(ex, new ApiError(error), headers, status, request); + } + + protected final ResponseEntity handleEstacionamentoNotFound(EstacionamentoNotFound ex, HttpHeaders headers, + HttpStatus status, WebRequest request) { + String error = ex.getMessage(); + return handleExceptionInternal(ex, new ApiError(error), headers, status, request); + } + + protected final ResponseEntity handleNomeFound(NomeFound ex, HttpHeaders headers, + HttpStatus status, WebRequest request) { + String error = ex.getMessage(); + return handleExceptionInternal(ex, new ApiError(error), headers, status, request); + } + + protected final ResponseEntity handlePlacaFound(PlacaFound ex, HttpHeaders headers, + HttpStatus status, WebRequest request) { + String error = ex.getMessage(); + return handleExceptionInternal(ex, new ApiError(error), headers, status, request); + } + + protected final ResponseEntity handleVeiculoNotFound(VeiculoNotFound ex, HttpHeaders headers, + HttpStatus status, WebRequest request) { + String error = ex.getMessage(); + return handleExceptionInternal(ex, new ApiError(error), headers, status, request); + } + + protected ResponseEntity handleExceptionInternal(Exception ex, @Nullable ApiError body, + HttpHeaders headers, HttpStatus status, + WebRequest request) { + if (HttpStatus.INTERNAL_SERVER_ERROR.equals(status)) { + request.setAttribute(WebUtils.ERROR_EXCEPTION_ATTRIBUTE, ex, WebRequest.SCOPE_REQUEST); + } + + return new ResponseEntity<>(body, headers, status); + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/util/ApiError.java b/src/main/java/br/com/hackathonfc/park/util/ApiError.java new file mode 100644 index 0000000..7b89d45 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/util/ApiError.java @@ -0,0 +1,12 @@ +package br.com.hackathonfc.park.util; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@AllArgsConstructor +public class ApiError { + private String error; +} From 5578163dbd847de317b6e763d737c8b4a215dba9 Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 26 Dec 2019 15:43:02 -0300 Subject: [PATCH 47/78] Add Throws Exceptions --- .../hackathonfc/park/bo/EstacionamentoBO.java | 9 ++-- .../controller/EstacionamentoController.java | 9 ++-- .../park/controller/VagaController.java | 8 ++-- .../repository/EstacionamentoRepository.java | 7 ++- .../park/repository/VeiculoRepository.java | 4 +- .../park/service/EstacionamentoService.java | 47 ++++++++++++++++--- .../park/service/VeiculoService.java | 42 +++++++++++++---- 7 files changed, 100 insertions(+), 26 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java index 8b8fa67..25cb8c0 100644 --- a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java +++ b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java @@ -2,6 +2,9 @@ import br.com.hackathonfc.park.dto.EstacionamentoDTO; import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.exception.CnpjFound; +import br.com.hackathonfc.park.exception.EstacionamentoNotFound; +import br.com.hackathonfc.park.exception.NomeFound; import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.service.EstacionamentoService; import br.com.hackathonfc.park.service.VagaService; @@ -30,15 +33,15 @@ public List listarVagas(Long id){ return vagaService.listar(id); } - public ResponseEntity> cadastrar(List estacionamentos){ + public ResponseEntity> cadastrar(List estacionamentos) throws NomeFound, CnpjFound { return estacionamentoService.cadastrar(estacionamentos); } - public ResponseEntity atualizar(Long id, EstacionamentoDTO estacionamentoDTO){ + public ResponseEntity atualizar(Long id, EstacionamentoDTO estacionamentoDTO) throws EstacionamentoNotFound { return estacionamentoService.atualizar(id, estacionamentoDTO); } - public ResponseEntity deletar(Long id){ + public ResponseEntity deletar(Long id) throws EstacionamentoNotFound { return estacionamentoService.deletar(id); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 23713da..ec95616 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -5,6 +5,9 @@ import javax.validation.Valid; import br.com.hackathonfc.park.bo.EstacionamentoBO; +import br.com.hackathonfc.park.exception.CnpjFound; +import br.com.hackathonfc.park.exception.EstacionamentoNotFound; +import br.com.hackathonfc.park.exception.NomeFound; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -52,18 +55,18 @@ public List listarVagas(@PathVariable Long id) { @CrossOrigin @PostMapping - public ResponseEntity> cadastrar(@RequestBody List estacionamentoDTO) { + public ResponseEntity> cadastrar(@RequestBody List estacionamentoDTO) throws NomeFound, CnpjFound { return estacionamentoBO.cadastrar(estacionamentoDTO); } @CrossOrigin @PutMapping("/{id}") - public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid EstacionamentoDTO estacionamentoDTO){ + public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid EstacionamentoDTO estacionamentoDTO) throws EstacionamentoNotFound { return estacionamentoBO.atualizar(id, estacionamentoDTO); } @DeleteMapping("/{id}") - public ResponseEntity remover(@PathVariable Long id){ + public ResponseEntity remover(@PathVariable Long id) throws EstacionamentoNotFound { return estacionamentoBO.deletar(id); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index 670dfc7..114da55 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -5,6 +5,8 @@ import javax.validation.Valid; +import br.com.hackathonfc.park.exception.PlacaFound; +import br.com.hackathonfc.park.exception.VeiculoNotFound; import br.com.hackathonfc.park.mapper.VeiculoMAP; import br.com.hackathonfc.park.service.VeiculoService; import org.springframework.beans.factory.annotation.Autowired; @@ -41,19 +43,19 @@ public List listarVeiculo(@PathVariable Long id) { @CrossOrigin @PostMapping - public ResponseEntity> cadastrarVeiculo(@RequestBody @Valid List veiculoDTO) { + public ResponseEntity> cadastrarVeiculo(@RequestBody @Valid List veiculoDTO) throws PlacaFound { return veiculoService.cadastrarVeiculo(veiculoDTO); } @CrossOrigin @PutMapping("/{id}") - public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoDTO veiculoDTO) { + public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoDTO veiculoDTO) throws VeiculoNotFound { return veiculoService.atualizarVeiculo(id, veiculoDTO); } @CrossOrigin @DeleteMapping("/{id}") - public ResponseEntity removerVeiculo(@PathVariable Long id) { + public ResponseEntity removerVeiculo(@PathVariable Long id) throws VeiculoNotFound { return veiculoService.removerVeiculo(id); } } diff --git a/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java b/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java index b6aa47c..a793ab5 100644 --- a/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java +++ b/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java @@ -6,8 +6,13 @@ import br.com.hackathonfc.park.model.Estacionamento; +import java.util.Optional; + public interface EstacionamentoRepository extends JpaRepository{ Estacionamento findById(long id); - + + Optional findByCnpj(Integer cnpj); + + Optional findByNome(String nome); } diff --git a/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java b/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java index 8b70453..a2d25a4 100644 --- a/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java +++ b/src/main/java/br/com/hackathonfc/park/repository/VeiculoRepository.java @@ -1,6 +1,7 @@ package br.com.hackathonfc.park.repository; import java.util.List; +import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; @@ -12,5 +13,6 @@ public interface VeiculoRepository extends JpaRepository { @Query("SELECT v FROM Veiculo v WHERE v.vaga.id = :id") List findByVagaId(@Param("id") Long id); - + + Optional findByPlaca(String placa); } diff --git a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java index 7ea74d1..7af3822 100644 --- a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java @@ -1,6 +1,9 @@ package br.com.hackathonfc.park.service; import br.com.hackathonfc.park.dto.EstacionamentoDTO; +import br.com.hackathonfc.park.exception.CnpjFound; +import br.com.hackathonfc.park.exception.EstacionamentoNotFound; +import br.com.hackathonfc.park.exception.NomeFound; import br.com.hackathonfc.park.mapper.EstacionamentoMAP; import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.repository.EstacionamentoRepository; @@ -11,6 +14,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import javax.validation.constraints.NotNull; import java.util.List; import java.util.Optional; @@ -30,17 +34,35 @@ public Page listar(Pageable paginacao){ } - public ResponseEntity> cadastrar(List estacionamentoDTO){ + public ResponseEntity> cadastrar(List estacionamentosDTO) + throws CnpjFound, NomeFound { + + boolean isCnpjPresent; + boolean isNomePresent; + + for (EstacionamentoDTO estacionamentoDTO : estacionamentosDTO) { + isCnpjPresent = validateCnpj(estacionamentoDTO.getCnpj()); + isNomePresent = validateNome(estacionamentoDTO.getNome()); + + if (isCnpjPresent){ + throw new CnpjFound(); + } else if(isNomePresent){ + throw new NomeFound(); + } + } + try { - List estacionamento = estacionamentoRepository.saveAll(estacionamentoMAP.fromDTO(estacionamentoDTO)); - return ResponseEntity.ok(estacionamento); + List estacionamentos = estacionamentoRepository.saveAll(estacionamentoMAP.fromDTO(estacionamentosDTO)); + return ResponseEntity.ok(estacionamentos); } catch (Exception e){ return ResponseEntity.badRequest().build(); } } - public ResponseEntity atualizar(Long id, EstacionamentoDTO estacionamentoDTO){ + public ResponseEntity atualizar(Long id, EstacionamentoDTO estacionamentoDTO) + throws EstacionamentoNotFound { + Optional checkEstacionamento = estacionamentoRepository.findById(id); if (checkEstacionamento.isPresent()){ @@ -55,12 +77,15 @@ public ResponseEntity atualizar(Long id, EstacionamentoDTO estac estacionamento.setVagasMotos(estacionamentoDTO.getVagasMotos()); return ResponseEntity.ok(estacionamento); + } else { + throw new EstacionamentoNotFound(); } - return ResponseEntity.notFound().build(); } - public ResponseEntity deletar(Long id){ + public ResponseEntity deletar(Long id) + throws EstacionamentoNotFound { + Optional checkEstacionamento = estacionamentoRepository.findById(id); if (checkEstacionamento.isPresent()) { @@ -71,6 +96,8 @@ public ResponseEntity deletar(Long id){ catch(Exception e){ System.out.println(e); } + } else { + throw new EstacionamentoNotFound(); } return ResponseEntity.notFound().build(); @@ -79,4 +106,12 @@ public ResponseEntity deletar(Long id){ public EstacionamentoDTO detalhar(Long id) { return estacionamentoMAP.toDTO(estacionamentoRepository.findById(id).get()); } + + public boolean validateCnpj(@NotNull int cnpj){ + return estacionamentoRepository.findByCnpj(cnpj).isPresent(); + } + + private boolean validateNome(String nome) { + return estacionamentoRepository.findByNome(nome).isPresent(); + } } diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java index 4918a07..9a9962a 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -1,6 +1,11 @@ package br.com.hackathonfc.park.service; +import br.com.hackathonfc.park.dto.EstacionamentoDTO; import br.com.hackathonfc.park.dto.VeiculoDTO; +import br.com.hackathonfc.park.exception.CnpjFound; +import br.com.hackathonfc.park.exception.NomeFound; +import br.com.hackathonfc.park.exception.PlacaFound; +import br.com.hackathonfc.park.exception.VeiculoNotFound; import br.com.hackathonfc.park.mapper.VeiculoMAP; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.repository.VagaRepository; @@ -31,19 +36,33 @@ public List listarVeiculo(@PathVariable Long id) { return veiculoMAP.toDTO(veiculoRepository.findByVagaId(id)); } - public ResponseEntity> cadastrarVeiculo(List veiculoDTO) { - List veiculo = veiculoMAP.fromDTO(veiculoDTO); + public ResponseEntity> cadastrarVeiculo(List veiculosDTO) + throws PlacaFound { + + boolean isPlacaPresent; + + for (VeiculoDTO veiculoDTO : veiculosDTO) { + isPlacaPresent = validatePlaca(veiculoDTO.getPlaca()); + + if (isPlacaPresent) { + throw new PlacaFound(); + } + } + + List veiculos = veiculoMAP.fromDTO(veiculosDTO); try{ - veiculoRepository.saveAll(veiculo); - return ResponseEntity.ok(veiculo); + veiculoRepository.saveAll(veiculos); + return ResponseEntity.ok(veiculos); } catch (Exception e){ return ResponseEntity.badRequest().build(); } } - public ResponseEntity atualizarVeiculo(Long id, VeiculoDTO veiculoDTO) { + public ResponseEntity atualizarVeiculo(Long id, VeiculoDTO veiculoDTO) + throws VeiculoNotFound { + Optional optional = veiculoRepository.findById(id); if(optional.isPresent()) { @@ -57,19 +76,24 @@ public ResponseEntity atualizarVeiculo(Long id, VeiculoDTO veiculoDT veiculo.setVaga(vagaRepository.findById(veiculoDTO.getVagaId()).get()); return ResponseEntity.ok(veiculoMAP.toDTO(veiculo)); + } else { + throw new VeiculoNotFound(); } - - return ResponseEntity.notFound().build(); } - public ResponseEntity removerVeiculo(@PathVariable Long id) { + public ResponseEntity removerVeiculo(@PathVariable Long id) + throws VeiculoNotFound { Optional optional = veiculoRepository.findById(id); if(optional.isPresent()) { veiculoRepository.deleteById(id); return ResponseEntity.ok().build(); + } else { + throw new VeiculoNotFound(); } + } - return ResponseEntity.notFound().build(); + private boolean validatePlaca(String placa) { + return veiculoRepository.findByPlaca(placa).isPresent(); } } From 9cb659be44db1266aa842f996dd6a79df0e86604 Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 26 Dec 2019 16:13:22 -0300 Subject: [PATCH 48/78] Add Security Configurations --- pom.xml | 5 +++ .../park/config/cors/CorsConfiguration.java | 3 +- .../security/SecurityConfiguration.java | 36 +++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java diff --git a/pom.xml b/pom.xml index cbcdff3..123b7ee 100644 --- a/pom.xml +++ b/pom.xml @@ -49,6 +49,11 @@ runtime
+ + org.springframework.boot + spring-boot-starter-security + + io.springfox springfox-swagger2 diff --git a/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java index c2a668b..795e6d2 100644 --- a/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java +++ b/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java @@ -15,8 +15,7 @@ public WebMvcConfigurer corsConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") - .allowedMethods("GET", "POST", "PUT", "DELETE") - .allowedOrigins("http://localhost:8081"); + .allowedMethods("GET", "POST", "PUT", "DELETE"); } }; diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java new file mode 100644 index 0000000..f6fe7b4 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java @@ -0,0 +1,36 @@ +package br.com.hackathonfc.park.config.security; + +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpMethod; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.builders.WebSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; + +@Configuration +@EnableWebSecurity +public class SecurityConfiguration extends WebSecurityConfigurerAdapter { + + @Override + protected void configure(AuthenticationManagerBuilder auth) throws Exception { + super.configure(auth); + } + + @Override + protected void configure(HttpSecurity http) throws Exception { + http.authorizeRequests() + .antMatchers("/estacionamentos").permitAll() + .anyRequest().authenticated(); + + } + + @Override + public void configure(WebSecurity web) throws Exception { + web.ignoring() + .antMatchers("/**.html", "/v2/api-docs", "/webjars/**", "/configuration/**", "/swagger-resources/**"); + } +} From c20e98cf15f020a84bfa910c8483a70227f2d8d7 Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 26 Dec 2019 16:35:17 -0300 Subject: [PATCH 49/78] Add VeiculoController --- .../park/controller/VeiculoController.java | 45 +++++++++++++++++++ .../com/hackathonfc/park/dto/VeiculoDTO.java | 2 + 2 files changed, 47 insertions(+) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java new file mode 100644 index 0000000..3a9f6ea --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java @@ -0,0 +1,45 @@ +package br.com.hackathonfc.park.controller; + +import br.com.hackathonfc.park.dto.VeiculoDTO; +import br.com.hackathonfc.park.exception.PlacaFound; +import br.com.hackathonfc.park.exception.VeiculoNotFound; +import br.com.hackathonfc.park.model.Veiculo; +import br.com.hackathonfc.park.service.VeiculoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +@RestController +@RequestMapping("/estacionamentos/{id}/veiculos") +public class VeiculoController { + + @Autowired + private VeiculoService veiculoService; + + @CrossOrigin + @GetMapping("/{id}") + public List listarVeiculo(@PathVariable Long id) { + return veiculoService.listarVeiculo(id); + } + + @CrossOrigin + @PostMapping + public ResponseEntity> cadastrarVeiculo(@RequestBody @Valid List veiculoDTO) throws PlacaFound { + return veiculoService.cadastrarVeiculo(veiculoDTO); + } + + @CrossOrigin + @PutMapping("/{id}") + public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoDTO veiculoDTO) throws VeiculoNotFound { + return veiculoService.atualizarVeiculo(id, veiculoDTO); + } + + @CrossOrigin + @DeleteMapping("/{id}") + public ResponseEntity removerVeiculo(@PathVariable Long id) throws VeiculoNotFound { + return veiculoService.removerVeiculo(id); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java index 72f8f31..13b4f38 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java @@ -9,6 +9,8 @@ import lombok.Data; import lombok.NoArgsConstructor; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; From 43f5dbacddfb3abaf7e59bd74e994c5357f0469e Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 26 Dec 2019 16:52:47 -0300 Subject: [PATCH 50/78] Add @component e static in mapper --- .../br/com/hackathonfc/park/mapper/EstacionamentoMAP.java | 8 +++++--- src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java | 6 ++++-- .../java/br/com/hackathonfc/park/mapper/VeiculoMAP.java | 8 +++++--- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java index 2b75dfc..e6cc9db 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java @@ -5,21 +5,23 @@ import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.model.Vaga; import org.springframework.data.domain.Page; +import org.springframework.stereotype.Component; import java.util.List; import java.util.stream.Collectors; +@Component public class EstacionamentoMAP { - public List fromDTO(List estacionamentos){ + public static List fromDTO(List estacionamentos){ return estacionamentos.stream().map(Estacionamento::new).collect(Collectors.toList()); } - public List toDTO(Page estacionamentos){ + public static List toDTO(Page estacionamentos){ return estacionamentos.stream().map(EstacionamentoDTO::new).collect(Collectors.toList()); } - public EstacionamentoDTO toDTO(Estacionamento estacionamento) { + public static EstacionamentoDTO toDTO(Estacionamento estacionamento) { return new EstacionamentoDTO(estacionamento); } } diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java index 2938832..57ba4ad 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java @@ -3,17 +3,19 @@ import br.com.hackathonfc.park.dto.VagaDTO; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; +import org.springframework.stereotype.Component; import java.util.List; import java.util.stream.Collectors; +@Component public class VagaMAP { - public List fromDTO(List vagas){ + public static List fromDTO(List vagas){ return vagas.stream().map(Vaga::new).collect(Collectors.toList()); } - public List toDTO(List vagas){ + public static List toDTO(List vagas){ return vagas.stream().map(VagaDTO::new).collect(Collectors.toList()); } } diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java index 75bfbe3..0b8d8ad 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java @@ -2,21 +2,23 @@ import br.com.hackathonfc.park.dto.VeiculoDTO; import br.com.hackathonfc.park.model.Veiculo; +import org.springframework.stereotype.Component; import java.util.List; import java.util.stream.Collectors; +@Component public class VeiculoMAP { - public List toDTO(List veiculos) { + public static List toDTO(List veiculos) { return veiculos.stream().map(VeiculoDTO::new).collect(Collectors.toList()); } - public List fromDTO(List veiculos){ + public static List fromDTO(List veiculos){ return veiculos.stream().map(Veiculo::new).collect(Collectors.toList()); } - public VeiculoDTO toDTO(Veiculo veiculo) { + public static VeiculoDTO toDTO(Veiculo veiculo) { return new VeiculoDTO(veiculo); } } From 255c8ffb52f41dd6bcd01ac3acef52a5c7bccae5 Mon Sep 17 00:00:00 2001 From: Henrico Date: Fri, 27 Dec 2019 10:37:46 -0300 Subject: [PATCH 51/78] Add VagaDTOSemEstacionamento --- pom.xml | 6 ++++ .../hackathonfc/park/bo/EstacionamentoBO.java | 9 +++--- .../park/config/cors/CorsConfiguration.java | 23 -------------- .../security/SecurityConfiguration.java | 18 ++++++++--- .../controller/EstacionamentoController.java | 3 +- .../park/dto/VagaDTOSemEstacionamento.java | 31 +++++++++++++++++++ .../park/mapper/EstacionamentoMAP.java | 10 ++++-- .../com/hackathonfc/park/mapper/VagaMAP.java | 5 +++ .../park/service/EstacionamentoService.java | 29 +++++++---------- .../hackathonfc/park/service/VagaService.java | 5 +-- 10 files changed, 86 insertions(+), 53 deletions(-) delete mode 100644 src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java create mode 100644 src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java diff --git a/pom.xml b/pom.xml index 123b7ee..0ea69b2 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,12 @@ runtime + + org.modelmapper + modelmapper + 2.3.0 + + org.springframework.boot spring-boot-devtools diff --git a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java index 25cb8c0..9491082 100644 --- a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java +++ b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java @@ -2,6 +2,7 @@ import br.com.hackathonfc.park.dto.EstacionamentoDTO; import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.dto.VagaDTOSemEstacionamento; import br.com.hackathonfc.park.exception.CnpjFound; import br.com.hackathonfc.park.exception.EstacionamentoNotFound; import br.com.hackathonfc.park.exception.NomeFound; @@ -29,15 +30,15 @@ public Page listarEstacionamentos(Pageable paginacao){ return estacionamentoService.listar(paginacao); } - public List listarVagas(Long id){ + public List listarVagas(Long id){ return vagaService.listar(id); } - public ResponseEntity> cadastrar(List estacionamentos) throws NomeFound, CnpjFound { - return estacionamentoService.cadastrar(estacionamentos); + public ResponseEntity cadastrar(EstacionamentoDTO estacionamento) throws NomeFound, CnpjFound { + return estacionamentoService.cadastrar(estacionamento); } - public ResponseEntity atualizar(Long id, EstacionamentoDTO estacionamentoDTO) throws EstacionamentoNotFound { + public ResponseEntity atualizar(Long id, EstacionamentoDTO estacionamentoDTO) throws EstacionamentoNotFound { return estacionamentoService.atualizar(id, estacionamentoDTO); } diff --git a/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java deleted file mode 100644 index 795e6d2..0000000 --- a/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java +++ /dev/null @@ -1,23 +0,0 @@ -package br.com.hackathonfc.park.config.cors; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -@Configuration -public class CorsConfiguration { - - @Bean - public WebMvcConfigurer corsConfigurer() { - return new WebMvcConfigurer() { - - @Override - public void addCorsMappings(CorsRegistry registry) { - registry.addMapping("/**") - .allowedMethods("GET", "POST", "PUT", "DELETE"); - } - - }; - } -} \ No newline at end of file diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java index f6fe7b4..f8cc147 100644 --- a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java +++ b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java @@ -1,15 +1,14 @@ package br.com.hackathonfc.park.config.security; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration @EnableWebSecurity @@ -33,4 +32,15 @@ public void configure(WebSecurity web) throws Exception { web.ignoring() .antMatchers("/**.html", "/v2/api-docs", "/webjars/**", "/configuration/**", "/swagger-resources/**"); } + + @Bean + public WebMvcConfigurer corsConfigurer() { + return new WebMvcConfigurer() { + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedMethods("GET", "POST", "PUT", "DELETE"); + } + }; + } } diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index ec95616..a924aaa 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -5,6 +5,7 @@ import javax.validation.Valid; import br.com.hackathonfc.park.bo.EstacionamentoBO; +import br.com.hackathonfc.park.dto.VagaDTOSemEstacionamento; import br.com.hackathonfc.park.exception.CnpjFound; import br.com.hackathonfc.park.exception.EstacionamentoNotFound; import br.com.hackathonfc.park.exception.NomeFound; @@ -49,7 +50,7 @@ public Page listar(@PageableDefault(sort = "id", direction = @CrossOrigin @GetMapping("/{id}/vagas") - public List listarVagas(@PathVariable Long id) { + public List listarVagas(@PathVariable Long id) { return estacionamentoBO.listarVagas(id); } diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java new file mode 100644 index 0000000..cc264d6 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java @@ -0,0 +1,31 @@ +package br.com.hackathonfc.park.dto; + +import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.model.Vaga; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VagaDTOSemEstacionamento { + + private Long id; + + private LocalDateTime dataInicio; + + private LocalDateTime dataSaida; + + private boolean livre; + + public VagaDTOSemEstacionamento(Vaga vaga){ + this.id = vaga.getId(); + this.dataInicio = vaga.getDataInicio(); + this.dataSaida = vaga.getDataSaida(); + this.livre = vaga.isLivre(); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java index e6cc9db..788e43d 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java @@ -1,9 +1,7 @@ package br.com.hackathonfc.park.mapper; import br.com.hackathonfc.park.dto.EstacionamentoDTO; -import br.com.hackathonfc.park.dto.VagaDTO; import br.com.hackathonfc.park.model.Estacionamento; -import br.com.hackathonfc.park.model.Vaga; import org.springframework.data.domain.Page; import org.springframework.stereotype.Component; @@ -17,10 +15,18 @@ public static List fromDTO(List estacionament return estacionamentos.stream().map(Estacionamento::new).collect(Collectors.toList()); } + public static Estacionamento fromDTO(EstacionamentoDTO estacionamentoDTO){ + return new Estacionamento(estacionamentoDTO); + } + public static List toDTO(Page estacionamentos){ return estacionamentos.stream().map(EstacionamentoDTO::new).collect(Collectors.toList()); } + public static List toDTO(List estacionamentos){ + return estacionamentos.stream().map(EstacionamentoDTO::new).collect(Collectors.toList()); + } + public static EstacionamentoDTO toDTO(Estacionamento estacionamento) { return new EstacionamentoDTO(estacionamento); } diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java index 57ba4ad..b2d64c8 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java @@ -1,6 +1,7 @@ package br.com.hackathonfc.park.mapper; import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.dto.VagaDTOSemEstacionamento; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; import org.springframework.stereotype.Component; @@ -18,4 +19,8 @@ public static List fromDTO(List vagas){ public static List toDTO(List vagas){ return vagas.stream().map(VagaDTO::new).collect(Collectors.toList()); } + + public static List toDTOSemEstacionamento(List vagas){ + return vagas.stream().map(VagaDTOSemEstacionamento::new).collect(Collectors.toList()); + } } diff --git a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java index 7af3822..8e3314a 100644 --- a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java @@ -34,39 +34,34 @@ public Page listar(Pageable paginacao){ } - public ResponseEntity> cadastrar(List estacionamentosDTO) + public ResponseEntity cadastrar(EstacionamentoDTO estacionamentoDTO) throws CnpjFound, NomeFound { - boolean isCnpjPresent; - boolean isNomePresent; + boolean isCnpjPresent = validateCnpj(estacionamentoDTO.getCnpj()); + boolean isNomePresent = validateNome(estacionamentoDTO.getNome()); - for (EstacionamentoDTO estacionamentoDTO : estacionamentosDTO) { - isCnpjPresent = validateCnpj(estacionamentoDTO.getCnpj()); - isNomePresent = validateNome(estacionamentoDTO.getNome()); - - if (isCnpjPresent){ - throw new CnpjFound(); - } else if(isNomePresent){ + if (isCnpjPresent){ + throw new CnpjFound(); + } else if(isNomePresent){ throw new NomeFound(); - } } try { - List estacionamentos = estacionamentoRepository.saveAll(estacionamentoMAP.fromDTO(estacionamentosDTO)); - return ResponseEntity.ok(estacionamentos); + EstacionamentoDTO estacionamento = estacionamentoMAP.toDTO(estacionamentoRepository.save(estacionamentoMAP.fromDTO(estacionamentoDTO))); + return ResponseEntity.ok(estacionamento); } catch (Exception e){ return ResponseEntity.badRequest().build(); } } - public ResponseEntity atualizar(Long id, EstacionamentoDTO estacionamentoDTO) + public ResponseEntity atualizar(Long id, EstacionamentoDTO estacionamentoDTO) throws EstacionamentoNotFound { Optional checkEstacionamento = estacionamentoRepository.findById(id); if (checkEstacionamento.isPresent()){ - Estacionamento estacionamento = checkEstacionamento.get(); + Estacionamento estacionamento = estacionamentoRepository.getOne(id); estacionamento.setNome(estacionamentoDTO.getNome()); estacionamento.setCnpj(estacionamentoDTO.getCnpj()); @@ -76,8 +71,8 @@ public ResponseEntity atualizar(Long id, EstacionamentoDTO estac estacionamento.setVagasCarros(estacionamentoDTO.getVagasCarros()); estacionamento.setVagasMotos(estacionamentoDTO.getVagasMotos()); - return ResponseEntity.ok(estacionamento); - } else { + return ResponseEntity.ok(estacionamentoMAP.toDTO(estacionamento)); + } else{ throw new EstacionamentoNotFound(); } diff --git a/src/main/java/br/com/hackathonfc/park/service/VagaService.java b/src/main/java/br/com/hackathonfc/park/service/VagaService.java index e8935d0..d273f65 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VagaService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VagaService.java @@ -1,6 +1,7 @@ package br.com.hackathonfc.park.service; import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.dto.VagaDTOSemEstacionamento; import br.com.hackathonfc.park.mapper.VagaMAP; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.repository.VagaRepository; @@ -17,8 +18,8 @@ public class VagaService { private VagaMAP vagaMAP = new VagaMAP(); - public List listar(Long id){ + public List listar(Long id){ List vagas = vagaRepository.findAllFromEstacionamento(id); - return vagaMAP.toDTO(vagas); + return vagaMAP.toDTOSemEstacionamento(vagas); } } From b097aef538f2d50513c3b72c36cd06a99c76a864 Mon Sep 17 00:00:00 2001 From: Henrico Date: Fri, 27 Dec 2019 11:28:45 -0300 Subject: [PATCH 52/78] Add CorsConfiguration again and Disabel csrf() --- .../park/config/cors/CorsConfiguration.java | 20 +++++++++++++++++++ .../security/SecurityConfiguration.java | 18 ++++------------- .../controller/EstacionamentoController.java | 15 +++++--------- .../park/controller/VagaController.java | 4 ---- .../park/controller/VeiculoController.java | 4 ---- 5 files changed, 29 insertions(+), 32 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java diff --git a/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java new file mode 100644 index 0000000..e46fbf3 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/config/cors/CorsConfiguration.java @@ -0,0 +1,20 @@ +package br.com.hackathonfc.park.config.cors; + +import org.springframework.context.annotation.Bean; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@EnableWebMvc +public class CorsConfiguration implements WebMvcConfigurer{ + + @Bean + public WebMvcConfigurer corsConfigurer() { + return new WebMvcConfigurer() { + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedMethods("GET", "POST", "PUT", "DELETE"); + } + }; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java index f8cc147..556d1bd 100644 --- a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java +++ b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java @@ -2,12 +2,14 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpMethod; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration @@ -21,10 +23,9 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception { @Override protected void configure(HttpSecurity http) throws Exception { - http.authorizeRequests() - .antMatchers("/estacionamentos").permitAll() + http.csrf().disable().authorizeRequests() + .antMatchers("/**").permitAll() .anyRequest().authenticated(); - } @Override @@ -32,15 +33,4 @@ public void configure(WebSecurity web) throws Exception { web.ignoring() .antMatchers("/**.html", "/v2/api-docs", "/webjars/**", "/configuration/**", "/swagger-resources/**"); } - - @Bean - public WebMvcConfigurer corsConfigurer() { - return new WebMvcConfigurer() { - @Override - public void addCorsMappings(CorsRegistry registry) { - registry.addMapping("/**") - .allowedMethods("GET", "POST", "PUT", "DELETE"); - } - }; - } } diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index a924aaa..692da7c 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -36,33 +36,28 @@ public class EstacionamentoController { @Autowired private EstacionamentoBO estacionamentoBO; - @CrossOrigin @GetMapping("/{id}") public EstacionamentoDTO detalhar(@PathVariable Long id){ return estacionamentoBO.detalharEstacionamento(id); } - @CrossOrigin @GetMapping public Page listar(@PageableDefault(sort = "id", direction = Direction.ASC, page = 0, size = 10) Pageable paginacao){ return estacionamentoBO.listarEstacionamentos(paginacao); } - - @CrossOrigin + @GetMapping("/{id}/vagas") public List listarVagas(@PathVariable Long id) { return estacionamentoBO.listarVagas(id); } - - @CrossOrigin + @PostMapping - public ResponseEntity> cadastrar(@RequestBody List estacionamentoDTO) throws NomeFound, CnpjFound { + public ResponseEntity cadastrar(@RequestBody EstacionamentoDTO estacionamentoDTO) throws NomeFound, CnpjFound { return estacionamentoBO.cadastrar(estacionamentoDTO); } - @CrossOrigin - @PutMapping("/{id}") - public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid EstacionamentoDTO estacionamentoDTO) throws EstacionamentoNotFound { + @PutMapping("/{id}") + public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid EstacionamentoDTO estacionamentoDTO) throws EstacionamentoNotFound { return estacionamentoBO.atualizar(id, estacionamentoDTO); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index 114da55..fe6def8 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -35,25 +35,21 @@ public class VagaController { @Autowired private VeiculoService veiculoService; - @CrossOrigin @GetMapping("/{id}") public List listarVeiculo(@PathVariable Long id) { return veiculoService.listarVeiculo(id); } - @CrossOrigin @PostMapping public ResponseEntity> cadastrarVeiculo(@RequestBody @Valid List veiculoDTO) throws PlacaFound { return veiculoService.cadastrarVeiculo(veiculoDTO); } - @CrossOrigin @PutMapping("/{id}") public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoDTO veiculoDTO) throws VeiculoNotFound { return veiculoService.atualizarVeiculo(id, veiculoDTO); } - @CrossOrigin @DeleteMapping("/{id}") public ResponseEntity removerVeiculo(@PathVariable Long id) throws VeiculoNotFound { return veiculoService.removerVeiculo(id); diff --git a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java index 3a9f6ea..09113e4 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java @@ -19,25 +19,21 @@ public class VeiculoController { @Autowired private VeiculoService veiculoService; - @CrossOrigin @GetMapping("/{id}") public List listarVeiculo(@PathVariable Long id) { return veiculoService.listarVeiculo(id); } - @CrossOrigin @PostMapping public ResponseEntity> cadastrarVeiculo(@RequestBody @Valid List veiculoDTO) throws PlacaFound { return veiculoService.cadastrarVeiculo(veiculoDTO); } - @CrossOrigin @PutMapping("/{id}") public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoDTO veiculoDTO) throws VeiculoNotFound { return veiculoService.atualizarVeiculo(id, veiculoDTO); } - @CrossOrigin @DeleteMapping("/{id}") public ResponseEntity removerVeiculo(@PathVariable Long id) throws VeiculoNotFound { return veiculoService.removerVeiculo(id); From 7616f7f84032fd285c7c74a8ae69c07d066d515b Mon Sep 17 00:00:00 2001 From: Henrico Date: Fri, 27 Dec 2019 16:16:28 -0300 Subject: [PATCH 53/78] Fix PUT Estacionamento --- .../park/config/security/SecurityConfiguration.java | 7 ++++++- .../park/controller/EstacionamentoController.java | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java index 556d1bd..d0b1513 100644 --- a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java +++ b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java @@ -23,9 +23,14 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception { @Override protected void configure(HttpSecurity http) throws Exception { - http.csrf().disable().authorizeRequests() + http.authorizeRequests() .antMatchers("/**").permitAll() + .antMatchers("/h2-console/**").permitAll() .anyRequest().authenticated(); + + http.csrf().disable(); + + http.headers().frameOptions().disable(); } @Override diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 692da7c..0564d06 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -15,6 +15,7 @@ import org.springframework.data.domain.Sort.Direction; import org.springframework.data.web.PageableDefault; import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -57,6 +58,7 @@ public ResponseEntity cadastrar(@RequestBody EstacionamentoDT } @PutMapping("/{id}") + @Transactional public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid EstacionamentoDTO estacionamentoDTO) throws EstacionamentoNotFound { return estacionamentoBO.atualizar(id, estacionamentoDTO); } From a6964214278961dbe0192abdf6398b1be968f9ce Mon Sep 17 00:00:00 2001 From: Henrico Date: Mon, 30 Dec 2019 10:39:54 -0300 Subject: [PATCH 54/78] Fix Delete Estacionamento --- .../park/model/Estacionamento.java | 99 ++----------------- .../br/com/hackathonfc/park/model/Vaga.java | 67 +++---------- 2 files changed, 18 insertions(+), 148 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java index d309cc0..6c03973 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -1,6 +1,9 @@ package br.com.hackathonfc.park.model; import br.com.hackathonfc.park.dto.EstacionamentoDTO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; import java.util.ArrayList; import java.util.List; @@ -8,6 +11,9 @@ import javax.persistence.*; @Entity +@Data +@AllArgsConstructor +@NoArgsConstructor public class Estacionamento { @Id @@ -30,20 +36,6 @@ public class Estacionamento { @OneToMany(mappedBy = "estacionamento", cascade = CascadeType.ALL, orphanRemoval = true) private List vagas = new ArrayList<>(); - - public Estacionamento() { - - } - - public Estacionamento(String nome, int cnpj, String endereco, int telefone, int vagasMotos, int vagasCarros, Double precoHora) { - this.nome = nome; - this.cnpj = cnpj; - this.endereco = endereco; - this.telefone = telefone; - this.vagasMotos = vagasMotos; - this.vagasCarros = vagasCarros; - this.precoHora = precoHora; - } public Estacionamento(EstacionamentoDTO estacionamentoDTO) { this.nome = estacionamentoDTO.getNome(); @@ -54,83 +46,4 @@ public Estacionamento(EstacionamentoDTO estacionamentoDTO) { this.vagasMotos = estacionamentoDTO.getVagasMotos(); this.precoHora = estacionamentoDTO.getPrecoHora(); } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((id == null) ? 0 : id.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - Estacionamento other = (Estacionamento) obj; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - return true; - } - - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - public String getNome() { - return nome; - } - public void setNome(String nome) { - this.nome = nome; - } - public int getCnpj() { - return cnpj; - } - public void setCnpj(int cnpj) { - this.cnpj = cnpj; - } - public int getTelefone() { - return telefone; - } - public void setTelefone(int telefone) { - this.telefone = telefone; - } - public int getVagasMotos() { - return vagasMotos; - } - public void setVagasMotos(int vagasMotos) { - this.vagasMotos = vagasMotos; - } - public int getVagasCarros() { - return vagasCarros; - } - public void setVagasCarros(int vagasCarros) { - this.vagasCarros = vagasCarros; - } - - public String getEndereco() { - return endereco; - } - - public void setEndereco(String endereco) { - this.endereco = endereco; - } - - public Double getPrecoHora() { - return precoHora; - } - - public void setPrecoHora(Double precoHora) { - this.precoHora = precoHora; - } - } diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index 090b000..ae77d58 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -1,18 +1,24 @@ package br.com.hackathonfc.park.model; import br.com.hackathonfc.park.dto.VagaDTO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; import java.time.LocalDateTime; import javax.persistence.*; @Entity +@Data +@AllArgsConstructor +@NoArgsConstructor public class Vaga { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - - @ManyToOne(cascade = CascadeType.ALL) + + @ManyToOne private Estacionamento estacionamento; private LocalDateTime dataInicio; @@ -21,69 +27,20 @@ public class Vaga { private boolean livre; - @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true) + @OneToOne(mappedBy = "vaga", cascade = CascadeType.ALL, orphanRemoval = true) private Veiculo veiculo; - - public Vaga() { - } - public Vaga(Estacionamento estacionamento, LocalDateTime dataInicio, LocalDateTime dataSaida, boolean livre) { + public Vaga(Estacionamento estacionamento, LocalDateTime dataInicio, LocalDateTime dataSaida, boolean livre) { this.estacionamento = estacionamento; this.dataInicio = dataInicio; this.dataSaida = dataSaida; this.livre = livre; } - public Vaga(VagaDTO vagaDTO) { + public Vaga(VagaDTO vagaDTO) { this.estacionamento = vagaDTO.getEstacionamento(); this.dataInicio = vagaDTO.getDataInicio(); this.dataSaida = vagaDTO.getDataSaida(); this.livre = vagaDTO.isLivre(); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((id == null) ? 0 : id.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - Vaga other = (Vaga) obj; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - return true; - } - - public Long getId() { - return id; - } - - public Estacionamento getEstacionamento() { - return estacionamento; - } - - public LocalDateTime getDataInicio() { - return dataInicio; - } - - public LocalDateTime getDataSaida() { - return dataSaida; - } - - public boolean isLivre() { - return livre; - } - + } } From 8d203808b0b55cee51bb5fbe70186cfbf20a43a3 Mon Sep 17 00:00:00 2001 From: Henrico Date: Mon, 30 Dec 2019 11:12:11 -0300 Subject: [PATCH 55/78] Add VagaBO and Fix VagaController --- .../br/com/hackathonfc/park/bo/VagaBO.java | 36 +++++++++++++ .../controller/EstacionamentoController.java | 5 -- .../park/controller/VagaController.java | 26 ++++++---- .../br/com/hackathonfc/park/dto/VagaDTO.java | 3 ++ .../exception/GlobalExceptionHandler.java | 18 +++++-- .../park/exception/VagaNotFound.java | 8 +++ .../com/hackathonfc/park/mapper/VagaMAP.java | 8 +++ .../br/com/hackathonfc/park/model/Vaga.java | 7 --- .../hackathonfc/park/service/VagaService.java | 50 ++++++++++++++++++- 9 files changed, 134 insertions(+), 27 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/bo/VagaBO.java create mode 100644 src/main/java/br/com/hackathonfc/park/exception/VagaNotFound.java diff --git a/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java b/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java new file mode 100644 index 0000000..27b9ccf --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java @@ -0,0 +1,36 @@ +package br.com.hackathonfc.park.bo; + +import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.dto.VagaDTOSemEstacionamento; +import br.com.hackathonfc.park.dto.VeiculoDTO; +import br.com.hackathonfc.park.exception.EstacionamentoNotFound; +import br.com.hackathonfc.park.exception.VagaNotFound; +import br.com.hackathonfc.park.model.Vaga; +import br.com.hackathonfc.park.model.Veiculo; +import br.com.hackathonfc.park.service.VagaService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; + +import java.util.List; + +public class VagaBO { + + @Autowired + private VagaService vagaService; + + public List listarVagas(Long id) throws EstacionamentoNotFound { + return vagaService.listar(id); + } + + public ResponseEntity cadastrarVaga(VagaDTO vagaDTO) { + return vagaService.cadastrar(vagaDTO); + } + + public ResponseEntity atualizarVaga(Long id, VagaDTO vagaDTO) throws VagaNotFound { + return vagaService.atualizar(id, vagaDTO); + } + + public ResponseEntity removerVaga(Long id) throws VagaNotFound { + return vagaService.remover(id); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 0564d06..83a5d47 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -47,11 +47,6 @@ public Page listar(@PageableDefault(sort = "id", direction = return estacionamentoBO.listarEstacionamentos(paginacao); } - @GetMapping("/{id}/vagas") - public List listarVagas(@PathVariable Long id) { - return estacionamentoBO.listarVagas(id); - } - @PostMapping public ResponseEntity cadastrar(@RequestBody EstacionamentoDTO estacionamentoDTO) throws NomeFound, CnpjFound { return estacionamentoBO.cadastrar(estacionamentoDTO); diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index fe6def8..ed1fc68 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -5,9 +5,15 @@ import javax.validation.Valid; +import br.com.hackathonfc.park.bo.VagaBO; +import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.dto.VagaDTOSemEstacionamento; +import br.com.hackathonfc.park.exception.EstacionamentoNotFound; import br.com.hackathonfc.park.exception.PlacaFound; +import br.com.hackathonfc.park.exception.VagaNotFound; import br.com.hackathonfc.park.exception.VeiculoNotFound; import br.com.hackathonfc.park.mapper.VeiculoMAP; +import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.service.VeiculoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -33,25 +39,25 @@ public class VagaController { @Autowired - private VeiculoService veiculoService; + private VagaBO vagaBO; - @GetMapping("/{id}") - public List listarVeiculo(@PathVariable Long id) { - return veiculoService.listarVeiculo(id); + @GetMapping("/{id}/vagas") + public List listarVagas(@PathVariable Long id) throws EstacionamentoNotFound { + return vagaBO.listarVagas(id); } @PostMapping - public ResponseEntity> cadastrarVeiculo(@RequestBody @Valid List veiculoDTO) throws PlacaFound { - return veiculoService.cadastrarVeiculo(veiculoDTO); + public ResponseEntity cadastrarVaga(@RequestBody @Valid VagaDTO vagaDTO){ + return vagaBO.cadastrarVaga(vagaDTO); } @PutMapping("/{id}") - public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoDTO veiculoDTO) throws VeiculoNotFound { - return veiculoService.atualizarVeiculo(id, veiculoDTO); + public ResponseEntity atualizarVaga(@PathVariable Long id, @RequestBody @Valid VagaDTO vagaDTO) throws VeiculoNotFound, VagaNotFound { + return vagaBO.atualizarVaga(id, vagaDTO); } @DeleteMapping("/{id}") - public ResponseEntity removerVeiculo(@PathVariable Long id) throws VeiculoNotFound { - return veiculoService.removerVeiculo(id); + public ResponseEntity removerVaga(@PathVariable Long id) throws VeiculoNotFound, VagaNotFound { + return vagaBO.removerVaga(id); } } diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java index 4627674..045d10f 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java @@ -6,6 +6,7 @@ import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.model.Vaga; +import br.com.hackathonfc.park.model.Veiculo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -31,6 +32,8 @@ public class VagaDTO { @NotNull private boolean livre; + private Veiculo veiculo; + public VagaDTO(Vaga vaga) { this.estacionamento = vaga.getEstacionamento(); this.dataInicio = vaga.getDataInicio(); diff --git a/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java b/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java index 9b5d048..56dfbd5 100644 --- a/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java +++ b/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java @@ -21,7 +21,8 @@ public class GlobalExceptionHandler { EstacionamentoNotFound.class, NomeFound.class, PlacaFound.class, - VeiculoNotFound.class + VeiculoNotFound.class, + VagaNotFound.class }) @Nullable @@ -50,12 +51,17 @@ public final ResponseEntity handleException(Exception ex, WebRequest r PlacaFound cpffe = (PlacaFound) ex; return handlePlacaFound(cpffe, headers, status, request); - } if (ex instanceof VeiculoNotFound) { + }else if (ex instanceof VeiculoNotFound) { HttpStatus status = HttpStatus.CONFLICT; VeiculoNotFound cnpjfe = (VeiculoNotFound) ex; return handleVeiculoNotFound(cnpjfe, headers, status, request); - } else { + } else if (ex instanceof VagaNotFound){ + HttpStatus status = HttpStatus.CONFLICT; + VagaNotFound cnpjfe = (VagaNotFound) ex; + return handleVagaNotFound(cnpjfe, headers, status, request); + } + else { if (LOGGER.isWarnEnabled()) { LOGGER.warn("Exceção desconhecida: " + ex.getClass().getName()); } @@ -94,6 +100,12 @@ protected final ResponseEntity handleVeiculoNotFound(VeiculoNotFound e return handleExceptionInternal(ex, new ApiError(error), headers, status, request); } + protected final ResponseEntity handleVagaNotFound(VagaNotFound ex, HttpHeaders headers, + HttpStatus status, WebRequest request) { + String error = ex.getMessage(); + return handleExceptionInternal(ex, new ApiError(error), headers, status, request); + } + protected ResponseEntity handleExceptionInternal(Exception ex, @Nullable ApiError body, HttpHeaders headers, HttpStatus status, WebRequest request) { diff --git a/src/main/java/br/com/hackathonfc/park/exception/VagaNotFound.java b/src/main/java/br/com/hackathonfc/park/exception/VagaNotFound.java new file mode 100644 index 0000000..52aaaa3 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/exception/VagaNotFound.java @@ -0,0 +1,8 @@ +package br.com.hackathonfc.park.exception; + +public class VagaNotFound extends Exception { + @Override + public String getMessage() { + return "Vaga não encontrada no sistema!"; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java index b2d64c8..70576f1 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java @@ -16,10 +16,18 @@ public static List fromDTO(List vagas){ return vagas.stream().map(Vaga::new).collect(Collectors.toList()); } + public static Vaga fromDTO(VagaDTO vagaDTO){ + return new Vaga(vagaDTO); + } + public static List toDTO(List vagas){ return vagas.stream().map(VagaDTO::new).collect(Collectors.toList()); } + public static VagaDTO toDTO(Vaga vaga){ + return new VagaDTO(vaga); + } + public static List toDTOSemEstacionamento(List vagas){ return vagas.stream().map(VagaDTOSemEstacionamento::new).collect(Collectors.toList()); } diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index ae77d58..f193330 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -30,13 +30,6 @@ public class Vaga { @OneToOne(mappedBy = "vaga", cascade = CascadeType.ALL, orphanRemoval = true) private Veiculo veiculo; - public Vaga(Estacionamento estacionamento, LocalDateTime dataInicio, LocalDateTime dataSaida, boolean livre) { - this.estacionamento = estacionamento; - this.dataInicio = dataInicio; - this.dataSaida = dataSaida; - this.livre = livre; - } - public Vaga(VagaDTO vagaDTO) { this.estacionamento = vagaDTO.getEstacionamento(); this.dataInicio = vagaDTO.getDataInicio(); diff --git a/src/main/java/br/com/hackathonfc/park/service/VagaService.java b/src/main/java/br/com/hackathonfc/park/service/VagaService.java index d273f65..19c0f90 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VagaService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VagaService.java @@ -2,13 +2,18 @@ import br.com.hackathonfc.park.dto.VagaDTO; import br.com.hackathonfc.park.dto.VagaDTOSemEstacionamento; +import br.com.hackathonfc.park.exception.EstacionamentoNotFound; +import br.com.hackathonfc.park.exception.VagaNotFound; import br.com.hackathonfc.park.mapper.VagaMAP; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.repository.VagaRepository; +import org.apache.coyote.Response; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Optional; @Service public class VagaService { @@ -16,10 +21,51 @@ public class VagaService { @Autowired private VagaRepository vagaRepository; - private VagaMAP vagaMAP = new VagaMAP(); + private VagaMAP vagaMAP; - public List listar(Long id){ + public List listar(Long id) throws EstacionamentoNotFound { List vagas = vagaRepository.findAllFromEstacionamento(id); return vagaMAP.toDTOSemEstacionamento(vagas); } + + public ResponseEntity cadastrar(VagaDTO vagaDTO) { + try { + Vaga vaga = vagaRepository.save(vagaMAP.fromDTO(vagaDTO)); + return ResponseEntity.ok(vagaMAP.toDTO(vaga)); + } + catch (Exception e) { + return ResponseEntity.badRequest().build(); + } + } + + public ResponseEntity atualizar(Long id, VagaDTO vagaDTO) throws VagaNotFound{ + Optional checkVaga = vagaRepository.findById(id); + + if(checkVaga.isPresent()){ + Vaga vaga = vagaRepository.getOne(id); + + vaga.setLivre(vagaDTO.isLivre()); + vaga.setDataInicio(vagaDTO.getDataInicio()); + vaga.setDataSaida(vagaDTO.getDataSaida()); + vaga.setVeiculo(vagaDTO.getVeiculo()); + + return ResponseEntity.ok(vagaMAP.toDTO(vaga)); + } + else { + throw new VagaNotFound(); + } + } + + public ResponseEntity remover(Long id) throws VagaNotFound{ + Optional checkVaga = vagaRepository.findById(id); + + if(checkVaga.isPresent()){ + vagaRepository.deleteById(id); + + return ResponseEntity.ok().build(); + } + else { + throw new VagaNotFound(); + } + } } From 3cdfe55b38111f06bfa00721d8228340ba69015c Mon Sep 17 00:00:00 2001 From: Henrico Date: Mon, 30 Dec 2019 16:22:59 -0300 Subject: [PATCH 56/78] Sei la --- .../hackathonfc/park/bo/EstacionamentoBO.java | 2 +- .../br/com/hackathonfc/park/bo/VagaBO.java | 9 ++++ .../park/controller/VagaController.java | 2 +- .../park/controller/VeiculoController.java | 36 ++++++++----- .../br/com/hackathonfc/park/dto/VagaDTO.java | 11 ++-- .../com/hackathonfc/park/dto/VeiculoDTO.java | 7 ++- .../com/hackathonfc/park/mapper/VagaMAP.java | 13 ++++- .../hackathonfc/park/mapper/VeiculoMAP.java | 15 ++++-- .../br/com/hackathonfc/park/model/Vaga.java | 17 +++---- .../com/hackathonfc/park/model/Veiculo.java | 7 ++- .../hackathonfc/park/service/VagaService.java | 8 +-- .../park/service/VeiculoService.java | 50 ++++++++++++------- 12 files changed, 117 insertions(+), 60 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java index 9491082..f9746ba 100644 --- a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java +++ b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java @@ -30,7 +30,7 @@ public Page listarEstacionamentos(Pageable paginacao){ return estacionamentoService.listar(paginacao); } - public List listarVagas(Long id){ + public List listarVagas(Long id) throws EstacionamentoNotFound { return vagaService.listar(id); } diff --git a/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java b/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java index 27b9ccf..d42e2de 100644 --- a/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java +++ b/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java @@ -8,16 +8,25 @@ import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.service.VagaService; +import br.com.hackathonfc.park.service.VeiculoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; import java.util.List; +@Service public class VagaBO { @Autowired private VagaService vagaService; + @Autowired + private VeiculoService veiculoService; + + public List listarVeiculos(Long id) { + return veiculoService.listarVeiculos(id); + } public List listarVagas(Long id) throws EstacionamentoNotFound { return vagaService.listar(id); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index ed1fc68..dadb32d 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -41,7 +41,7 @@ public class VagaController { @Autowired private VagaBO vagaBO; - @GetMapping("/{id}/vagas") + @GetMapping public List listarVagas(@PathVariable Long id) throws EstacionamentoNotFound { return vagaBO.listarVagas(id); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java index 09113e4..687452f 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java @@ -7,35 +7,47 @@ import br.com.hackathonfc.park.service.VeiculoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; @RestController -@RequestMapping("/estacionamentos/{id}/veiculos") +@RequestMapping("/estacionamentos") public class VeiculoController { @Autowired private VeiculoService veiculoService; - @GetMapping("/{id}") - public List listarVeiculo(@PathVariable Long id) { - return veiculoService.listarVeiculo(id); + @GetMapping("/{id}/veiculos") + public List listarVeiculos(@PathVariable Long id){ + return veiculoService.listarVeiculos(id); } - @PostMapping - public ResponseEntity> cadastrarVeiculo(@RequestBody @Valid List veiculoDTO) throws PlacaFound { + @GetMapping("/{id}/veiculos/todos") + public List listarTodosOsVeiculos(@PathVariable Long id){ + return veiculoService.listarTodosOsVeiculos(id); + } + + @GetMapping("/{id}/veiculos/{id2}") + public List listarVeiculosDeUmaVaga(@PathVariable Long id2) { + return veiculoService.listarVeiculosDeUmaVaga(id2); + } + + @PostMapping("/{id}/veiculos") + public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoDTO veiculoDTO) throws PlacaFound { return veiculoService.cadastrarVeiculo(veiculoDTO); } - @PutMapping("/{id}") - public ResponseEntity atualizarVeiculo(@PathVariable Long id, @RequestBody @Valid VeiculoDTO veiculoDTO) throws VeiculoNotFound { - return veiculoService.atualizarVeiculo(id, veiculoDTO); + @PutMapping("/{id}/veiculos/{id2}") + @Transactional + public ResponseEntity atualizarVeiculo(@PathVariable Long id2, @RequestBody @Valid VeiculoDTO veiculoDTO) throws VeiculoNotFound { + return veiculoService.atualizarVeiculo(id2, veiculoDTO); } - @DeleteMapping("/{id}") - public ResponseEntity removerVeiculo(@PathVariable Long id) throws VeiculoNotFound { - return veiculoService.removerVeiculo(id); + @DeleteMapping("/{id}/veiculos/{id2}") + public ResponseEntity removerVeiculo(@PathVariable Long id2) throws VeiculoNotFound { + return veiculoService.removerVeiculo(id2); } } diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java index 045d10f..6835f72 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java @@ -7,6 +7,7 @@ import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -21,7 +22,9 @@ public class VagaDTO { private Long id; @NotNull - private Estacionamento estacionamento; + private Long estacionamento_id; + + private Long veiculo_id; @NotNull private LocalDateTime dataInicio; @@ -32,12 +35,10 @@ public class VagaDTO { @NotNull private boolean livre; - private Veiculo veiculo; public VagaDTO(Vaga vaga) { - this.estacionamento = vaga.getEstacionamento(); - this.dataInicio = vaga.getDataInicio(); - this.dataSaida = vaga.getDataSaida(); + this.estacionamento_id = vaga.getEstacionamento().getId(); this.livre = vaga.isLivre(); + this.veiculo_id = vaga.getVeiculo().getId(); } } diff --git a/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java index 13b4f38..3deb216 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java @@ -21,17 +21,16 @@ public class VeiculoDTO { private Long id; - @NotNull @NotEmpty private String marca; - @NotNull @NotEmpty + @NotEmpty private String modelo; - @NotNull @NotEmpty + @NotEmpty private String cor; - @NotNull @NotEmpty + @NotEmpty private String placa; @NotNull diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java index 70576f1..7416e73 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java @@ -4,6 +4,9 @@ import br.com.hackathonfc.park.dto.VagaDTOSemEstacionamento; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; +import br.com.hackathonfc.park.repository.EstacionamentoRepository; +import br.com.hackathonfc.park.repository.VeiculoRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; @@ -12,12 +15,18 @@ @Component public class VagaMAP { + @Autowired + private static EstacionamentoRepository estacionamentoRepository; + + @Autowired + private static VeiculoRepository veiculoRepository; + public static List fromDTO(List vagas){ - return vagas.stream().map(Vaga::new).collect(Collectors.toList()); + return vagas.stream().map(v -> {return new Vaga(v, estacionamentoRepository, veiculoRepository);} ).collect(Collectors.toList()); } public static Vaga fromDTO(VagaDTO vagaDTO){ - return new Vaga(vagaDTO); + return new Vaga(vagaDTO, estacionamentoRepository, veiculoRepository); } public static List toDTO(List vagas){ diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java index 0b8d8ad..ba9449a 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java @@ -2,6 +2,8 @@ import br.com.hackathonfc.park.dto.VeiculoDTO; import br.com.hackathonfc.park.model.Veiculo; +import br.com.hackathonfc.park.repository.VagaRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; @@ -10,15 +12,22 @@ @Component public class VeiculoMAP { + @Autowired + private static VagaRepository vagaRepository; + public static List toDTO(List veiculos) { return veiculos.stream().map(VeiculoDTO::new).collect(Collectors.toList()); } + public static VeiculoDTO toDTO(Veiculo veiculo){ + return new VeiculoDTO(veiculo); + } + public static List fromDTO(List veiculos){ - return veiculos.stream().map(Veiculo::new).collect(Collectors.toList()); + return veiculos.stream().map(v -> {return new Veiculo(v, vagaRepository);} ).collect(Collectors.toList()); } - public static VeiculoDTO toDTO(Veiculo veiculo) { - return new VeiculoDTO(veiculo); + public static Veiculo fromDTO(VeiculoDTO veiculoDTO){ + return new Veiculo(veiculoDTO, vagaRepository); } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index f193330..7bb2449 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -1,9 +1,13 @@ package br.com.hackathonfc.park.model; import br.com.hackathonfc.park.dto.VagaDTO; +import br.com.hackathonfc.park.repository.EstacionamentoRepository; +import br.com.hackathonfc.park.repository.VagaRepository; +import br.com.hackathonfc.park.repository.VeiculoRepository; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import java.time.LocalDateTime; @@ -20,20 +24,15 @@ public class Vaga { @ManyToOne private Estacionamento estacionamento; - - private LocalDateTime dataInicio; - - private LocalDateTime dataSaida; - + private boolean livre; @OneToOne(mappedBy = "vaga", cascade = CascadeType.ALL, orphanRemoval = true) private Veiculo veiculo; - public Vaga(VagaDTO vagaDTO) { - this.estacionamento = vagaDTO.getEstacionamento(); - this.dataInicio = vagaDTO.getDataInicio(); - this.dataSaida = vagaDTO.getDataSaida(); + public Vaga(VagaDTO vagaDTO, EstacionamentoRepository estacionamentoRepository, VeiculoRepository veiculoRepository) { + this.estacionamento = estacionamentoRepository.findById(vagaDTO.getEstacionamento_id()).get(); + this.veiculo = veiculoRepository.findById(vagaDTO.getVeiculo_id()).get(); this.livre = vagaDTO.isLivre(); } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java index 8bdf810..a039f2d 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java +++ b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java @@ -1,9 +1,13 @@ package br.com.hackathonfc.park.model; import br.com.hackathonfc.park.dto.VeiculoDTO; +import br.com.hackathonfc.park.exception.EstacionamentoNotFound; +import br.com.hackathonfc.park.repository.VagaRepository; +import br.com.hackathonfc.park.service.VagaService; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import javax.persistence.*; @@ -31,11 +35,12 @@ public class Veiculo { @OneToOne private Vaga vaga; - public Veiculo(VeiculoDTO veiculoDTO) { + public Veiculo(VeiculoDTO veiculoDTO, VagaRepository vagaRepository){ this.marca = veiculoDTO.getMarca(); this.modelo = veiculoDTO.getModelo(); this.cor = veiculoDTO.getCor(); this.placa = veiculoDTO.getPlaca(); this.tipoVeiculo = veiculoDTO.getTipoVeiculo(); + this.vaga = vagaRepository.findById(veiculoDTO.getVagaId()).get(); } } diff --git a/src/main/java/br/com/hackathonfc/park/service/VagaService.java b/src/main/java/br/com/hackathonfc/park/service/VagaService.java index 19c0f90..b52d134 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VagaService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VagaService.java @@ -7,6 +7,7 @@ import br.com.hackathonfc.park.mapper.VagaMAP; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.repository.VagaRepository; +import br.com.hackathonfc.park.repository.VeiculoRepository; import org.apache.coyote.Response; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -21,6 +22,9 @@ public class VagaService { @Autowired private VagaRepository vagaRepository; + @Autowired + private VeiculoRepository veiculoRepository; + private VagaMAP vagaMAP; public List listar(Long id) throws EstacionamentoNotFound { @@ -45,9 +49,7 @@ public ResponseEntity atualizar(Long id, VagaDTO vagaDTO) throws VagaNo Vaga vaga = vagaRepository.getOne(id); vaga.setLivre(vagaDTO.isLivre()); - vaga.setDataInicio(vagaDTO.getDataInicio()); - vaga.setDataSaida(vagaDTO.getDataSaida()); - vaga.setVeiculo(vagaDTO.getVeiculo()); + vaga.setVeiculo(veiculoRepository.findById(vagaDTO.getVeiculo_id()).get()); return ResponseEntity.ok(vagaMAP.toDTO(vaga)); } diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java index 9a9962a..82bb529 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -7,6 +7,7 @@ import br.com.hackathonfc.park.exception.PlacaFound; import br.com.hackathonfc.park.exception.VeiculoNotFound; import br.com.hackathonfc.park.mapper.VeiculoMAP; +import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.repository.VagaRepository; import br.com.hackathonfc.park.repository.VeiculoRepository; @@ -32,28 +33,43 @@ public class VeiculoService { private VeiculoMAP veiculoMAP = new VeiculoMAP(); - public List listarVeiculo(@PathVariable Long id) { - return veiculoMAP.toDTO(veiculoRepository.findByVagaId(id)); + public List listarTodosOsVeiculos(Long id){ + List vagas = vagaRepository.findAllFromEstacionamento(id); + + List veiculos = null; + + for (Vaga vaga : vagas) { + veiculos.addAll(veiculoMAP.toDTO(veiculoRepository.findByVagaId(id))); + } + + return veiculos; } - public ResponseEntity> cadastrarVeiculo(List veiculosDTO) - throws PlacaFound { - - boolean isPlacaPresent; + public List listarVeiculos(Long id){ + List vagas = vagaRepository.findAllFromEstacionamento(id); + + List veiculos = null; - for (VeiculoDTO veiculoDTO : veiculosDTO) { - isPlacaPresent = validatePlaca(veiculoDTO.getPlaca()); + Veiculo veiculo; - if (isPlacaPresent) { - throw new PlacaFound(); - } + for (Vaga vaga : vagas) { + veiculo = vaga.getVeiculo(); + veiculos.add(veiculoMAP.toDTO(veiculo)); } - - List veiculos = veiculoMAP.fromDTO(veiculosDTO); + + return veiculos; + } + + public List listarVeiculosDeUmaVaga(Long id) { + return veiculoMAP.toDTO(veiculoRepository.findByVagaId(id)); + } + + public ResponseEntity cadastrarVeiculo(VeiculoDTO veiculoDTO) + throws PlacaFound { try{ - veiculoRepository.saveAll(veiculos); - return ResponseEntity.ok(veiculos); + Veiculo veiculo = veiculoRepository.save(veiculoMAP.fromDTO(veiculoDTO)); + return ResponseEntity.ok(veiculoMAP.toDTO(veiculo)); } catch (Exception e){ return ResponseEntity.badRequest().build(); @@ -92,8 +108,4 @@ public ResponseEntity removerVeiculo(@PathVariable Long id) throw new VeiculoNotFound(); } } - - private boolean validatePlaca(String placa) { - return veiculoRepository.findByPlaca(placa).isPresent(); - } } From 1f4815fab7e433c5090b999174aac601995a4f15 Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 2 Jan 2020 14:50:23 -0300 Subject: [PATCH 57/78] Add TipoVaga and Fix a lot of things --- .../br/com/hackathonfc/park/bo/VagaBO.java | 8 ++- .../controller/EstacionamentoController.java | 2 +- .../park/controller/VagaController.java | 28 +++++---- .../park/dto/EstacionamentoDTO.java | 4 +- .../br/com/hackathonfc/park/dto/VagaDTO.java | 25 +++----- .../park/dto/VagaDTOSemEstacionamento.java | 13 ++--- .../com/hackathonfc/park/mapper/VagaMAP.java | 33 ++++++----- .../com/hackathonfc/park/model/TipoVaga.java | 8 +++ .../br/com/hackathonfc/park/model/Vaga.java | 9 ++- .../hackathonfc/park/service/VagaService.java | 57 +++++++++++++++++-- src/main/resources/data.sql | 14 +++-- 11 files changed, 134 insertions(+), 67 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/model/TipoVaga.java diff --git a/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java b/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java index d42e2de..f58f5e6 100644 --- a/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java +++ b/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java @@ -31,8 +31,8 @@ public List listarVagas(Long id) throws Estacionamento return vagaService.listar(id); } - public ResponseEntity cadastrarVaga(VagaDTO vagaDTO) { - return vagaService.cadastrar(vagaDTO); + public ResponseEntity cadastrarVaga(VagaDTO vagaDTO, Long id) { + return vagaService.cadastrar(vagaDTO, id); } public ResponseEntity atualizarVaga(Long id, VagaDTO vagaDTO) throws VagaNotFound { @@ -42,4 +42,8 @@ public ResponseEntity atualizarVaga(Long id, VagaDTO vagaDTO) throws Va public ResponseEntity removerVaga(Long id) throws VagaNotFound { return vagaService.remover(id); } + + public VagaDTO detalharVaga(Long id) throws VagaNotFound { + return vagaService.detalhar(id); + } } diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 83a5d47..442e591 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -48,7 +48,7 @@ public Page listar(@PageableDefault(sort = "id", direction = } @PostMapping - public ResponseEntity cadastrar(@RequestBody EstacionamentoDTO estacionamentoDTO) throws NomeFound, CnpjFound { + public ResponseEntity cadastrar(@RequestBody @Valid EstacionamentoDTO estacionamentoDTO) throws NomeFound, CnpjFound { return estacionamentoBO.cadastrar(estacionamentoDTO); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index dadb32d..ef6efe3 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -35,29 +35,35 @@ import br.com.hackathonfc.park.repository.VeiculoRepository; @RestController -@RequestMapping("/estacionamentos/{id}/vagas") +@RequestMapping("/estacionamentos") public class VagaController { @Autowired private VagaBO vagaBO; - @GetMapping + @GetMapping("/{id}/vagas/{id2}") + public VagaDTO detalharVaga(@PathVariable Long id2) throws VagaNotFound{ + return vagaBO.detalharVaga(id2); + } + + @GetMapping("/{id}/vagas") public List listarVagas(@PathVariable Long id) throws EstacionamentoNotFound { return vagaBO.listarVagas(id); } - @PostMapping - public ResponseEntity cadastrarVaga(@RequestBody @Valid VagaDTO vagaDTO){ - return vagaBO.cadastrarVaga(vagaDTO); + @PostMapping("/{id}/vagas") + public ResponseEntity cadastrarVaga(@RequestBody @Valid VagaDTO vagaDTO, @PathVariable Long id){ + return vagaBO.cadastrarVaga(vagaDTO, id); } - @PutMapping("/{id}") - public ResponseEntity atualizarVaga(@PathVariable Long id, @RequestBody @Valid VagaDTO vagaDTO) throws VeiculoNotFound, VagaNotFound { - return vagaBO.atualizarVaga(id, vagaDTO); + @PutMapping("/{id}/vagas/{id2}") + @Transactional + public ResponseEntity atualizarVaga(@PathVariable Long id2, @RequestBody @Valid VagaDTO vagaDTO) throws VagaNotFound { + return vagaBO.atualizarVaga(id2, vagaDTO); } - @DeleteMapping("/{id}") - public ResponseEntity removerVaga(@PathVariable Long id) throws VeiculoNotFound, VagaNotFound { - return vagaBO.removerVaga(id); + @DeleteMapping("/{id}/vagas/{id2}") + public ResponseEntity removerVaga(@PathVariable Long id2) throws VeiculoNotFound, VagaNotFound { + return vagaBO.removerVaga(id2); } } diff --git a/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java b/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java index c2f6295..8eed4f4 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java @@ -16,13 +16,13 @@ public class EstacionamentoDTO { private Long id; - @NotNull @NotEmpty + @NotEmpty private String nome; @NotNull private int cnpj; - @NotNull @NotEmpty + @NotEmpty private String endereco; @NotNull diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java index 6835f72..2bdca72 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java @@ -1,17 +1,11 @@ package br.com.hackathonfc.park.dto; -import java.time.LocalDateTime; -import java.util.List; -import java.util.stream.Collectors; - -import br.com.hackathonfc.park.model.Estacionamento; -import br.com.hackathonfc.park.model.Vaga; -import br.com.hackathonfc.park.model.Veiculo; -import com.fasterxml.jackson.annotation.JsonIgnore; +import br.com.hackathonfc.park.model.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import javax.persistence.Id; import javax.validation.constraints.NotNull; @Data @@ -19,26 +13,21 @@ @NoArgsConstructor public class VagaDTO { + @Id private Long id; @NotNull - private Long estacionamento_id; + private boolean livre; private Long veiculo_id; @NotNull - private LocalDateTime dataInicio; - - @NotNull - private LocalDateTime dataSaida; - - @NotNull - private boolean livre; - + private TipoVaga tipoVaga; public VagaDTO(Vaga vaga) { - this.estacionamento_id = vaga.getEstacionamento().getId(); + this.id = vaga.getId(); this.livre = vaga.isLivre(); this.veiculo_id = vaga.getVeiculo().getId(); + this.tipoVaga = vaga.getTipoVaga(); } } diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java index cc264d6..a1aff11 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java @@ -1,12 +1,11 @@ package br.com.hackathonfc.park.dto; -import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.model.Vaga; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotNull; +import javax.persistence.Id; import java.time.LocalDateTime; @Data @@ -14,18 +13,16 @@ @NoArgsConstructor public class VagaDTOSemEstacionamento { + @Id private Long id; - private LocalDateTime dataInicio; - - private LocalDateTime dataSaida; - private boolean livre; + private Long veiculo_id; + public VagaDTOSemEstacionamento(Vaga vaga){ this.id = vaga.getId(); - this.dataInicio = vaga.getDataInicio(); - this.dataSaida = vaga.getDataSaida(); this.livre = vaga.isLivre(); + this.veiculo_id = vaga.getVeiculo().getId(); } } diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java index 7416e73..0e3d454 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java @@ -2,6 +2,7 @@ import br.com.hackathonfc.park.dto.VagaDTO; import br.com.hackathonfc.park.dto.VagaDTOSemEstacionamento; +import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.repository.EstacionamentoRepository; @@ -15,18 +16,8 @@ @Component public class VagaMAP { - @Autowired - private static EstacionamentoRepository estacionamentoRepository; - - @Autowired - private static VeiculoRepository veiculoRepository; - - public static List fromDTO(List vagas){ - return vagas.stream().map(v -> {return new Vaga(v, estacionamentoRepository, veiculoRepository);} ).collect(Collectors.toList()); - } - - public static Vaga fromDTO(VagaDTO vagaDTO){ - return new Vaga(vagaDTO, estacionamentoRepository, veiculoRepository); + public static Vaga fromDTO(VagaDTO vagaDTO, Estacionamento estacionamento, Veiculo veiculo){ + return new Vaga(vagaDTO, veiculo, estacionamento); } public static List toDTO(List vagas){ @@ -34,10 +25,24 @@ public static List toDTO(List vagas){ } public static VagaDTO toDTO(Vaga vaga){ - return new VagaDTO(vaga); + try { + return new VagaDTO(vaga); + } + catch(Exception e){ + return new VagaDTO(vaga.getId(), vaga.isLivre(), null); + } } public static List toDTOSemEstacionamento(List vagas){ - return vagas.stream().map(VagaDTOSemEstacionamento::new).collect(Collectors.toList()); + return vagas.stream().map(v -> { + Long id; + if (v.getVeiculo() == null){ + id = null; + } else { + id = v.getVeiculo().getId(); + } + + return new VagaDTOSemEstacionamento(v.getId(), v.isLivre(), id); + }).collect(Collectors.toList()); } } diff --git a/src/main/java/br/com/hackathonfc/park/model/TipoVaga.java b/src/main/java/br/com/hackathonfc/park/model/TipoVaga.java new file mode 100644 index 0000000..31cca95 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/model/TipoVaga.java @@ -0,0 +1,8 @@ +package br.com.hackathonfc.park.model; + +public enum TipoVaga { + + MOTO, + CARRO; + +} diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index 7bb2449..ee2e6bd 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -27,12 +27,15 @@ public class Vaga { private boolean livre; + @Enumerated(EnumType.STRING) + private TipoVaga tipoVaga = TipoVaga.CARRO; + @OneToOne(mappedBy = "vaga", cascade = CascadeType.ALL, orphanRemoval = true) private Veiculo veiculo; - public Vaga(VagaDTO vagaDTO, EstacionamentoRepository estacionamentoRepository, VeiculoRepository veiculoRepository) { - this.estacionamento = estacionamentoRepository.findById(vagaDTO.getEstacionamento_id()).get(); - this.veiculo = veiculoRepository.findById(vagaDTO.getVeiculo_id()).get(); + public Vaga(VagaDTO vagaDTO, Veiculo veiculo, Estacionamento estacionamento) { + this.veiculo = veiculo; this.livre = vagaDTO.isLivre(); + this.estacionamento = estacionamento; } } diff --git a/src/main/java/br/com/hackathonfc/park/service/VagaService.java b/src/main/java/br/com/hackathonfc/park/service/VagaService.java index b52d134..0f6778f 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VagaService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VagaService.java @@ -5,7 +5,10 @@ import br.com.hackathonfc.park.exception.EstacionamentoNotFound; import br.com.hackathonfc.park.exception.VagaNotFound; import br.com.hackathonfc.park.mapper.VagaMAP; +import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.model.Vaga; +import br.com.hackathonfc.park.model.Veiculo; +import br.com.hackathonfc.park.repository.EstacionamentoRepository; import br.com.hackathonfc.park.repository.VagaRepository; import br.com.hackathonfc.park.repository.VeiculoRepository; import org.apache.coyote.Response; @@ -13,6 +16,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import javax.swing.text.html.Option; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -25,16 +30,37 @@ public class VagaService { @Autowired private VeiculoRepository veiculoRepository; + @Autowired + private EstacionamentoRepository estacionamentoRepository; + private VagaMAP vagaMAP; public List listar(Long id) throws EstacionamentoNotFound { - List vagas = vagaRepository.findAllFromEstacionamento(id); + Optional checkEstacionamento = estacionamentoRepository.findById(id); + List vagas; + + if(checkEstacionamento.isPresent()){ + vagas = vagaRepository.findAllFromEstacionamento(id); + } else{ + throw new EstacionamentoNotFound(); + } + return vagaMAP.toDTOSemEstacionamento(vagas); } - public ResponseEntity cadastrar(VagaDTO vagaDTO) { + public ResponseEntity cadastrar(VagaDTO vagaDTO, Long id) { try { - Vaga vaga = vagaRepository.save(vagaMAP.fromDTO(vagaDTO)); + Estacionamento estacionamento = estacionamentoRepository.findById(id).get(); + Optional checkVeiculo = veiculoRepository.findById(vagaDTO.getVeiculo_id()); + Veiculo veiculo; + + if (!checkVeiculo.isPresent()) { + veiculo = null; + } else{ + veiculo = veiculoRepository.getOne(vagaDTO.getVeiculo_id()); + } + + Vaga vaga = vagaRepository.save(vagaMAP.fromDTO(vagaDTO, estacionamento, veiculo)); return ResponseEntity.ok(vagaMAP.toDTO(vaga)); } catch (Exception e) { @@ -44,12 +70,22 @@ public ResponseEntity cadastrar(VagaDTO vagaDTO) { public ResponseEntity atualizar(Long id, VagaDTO vagaDTO) throws VagaNotFound{ Optional checkVaga = vagaRepository.findById(id); + Veiculo veiculo = new Veiculo(); if(checkVaga.isPresent()){ Vaga vaga = vagaRepository.getOne(id); + if (vagaDTO.getVeiculo_id() != null) { + + Optional checkVeiculo = veiculoRepository.findById(vagaDTO.getVeiculo_id()); + + if (checkVeiculo.isPresent()){ + veiculo = veiculoRepository.getOne(vagaDTO.getVeiculo_id()); + } + } + vaga.setLivre(vagaDTO.isLivre()); - vaga.setVeiculo(veiculoRepository.findById(vagaDTO.getVeiculo_id()).get()); + vaga.setVeiculo(veiculo); return ResponseEntity.ok(vagaMAP.toDTO(vaga)); } @@ -70,4 +106,17 @@ public ResponseEntity remover(Long id) throws VagaNotFound{ throw new VagaNotFound(); } } + + public VagaDTO detalhar(Long id) throws VagaNotFound{ + Optional checkVaga = vagaRepository.findById(id); + Vaga vaga; + + if (checkVaga.isPresent()){ + vaga = checkVaga.get(); + } else { + throw new VagaNotFound(); + } + + return vagaMAP.toDTO(vaga); + } } diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 69925db..0f176df 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -2,10 +2,16 @@ INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco, telefone, vagas_motos, vaga INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(2, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano 2, 403 - Embaré, Santos/SP', '123456', '10', '20', '7.80') INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(3, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano 3, 306 - Mocca, São Paulo/SP', '123456', '10', '20', '9.50') -INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES(1, '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) -INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES(1, null, null, true) -INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES(1, '2019-11-24 12:00:00', '2019-11-24 13:00:00', false) -INSERT INTO VAGA(estacionamento_id, data_inicio, data_saida, livre) VALUES(2, null, null, true) +INSERT INTO VAGA(estacionamento_id, livre) VALUES(1, false) +INSERT INTO VAGA(estacionamento_id, livre) VALUES(1, true) +INSERT INTO VAGA(estacionamento_id, livre) VALUES(1, false) +INSERT INTO VAGA(estacionamento_id, livre) VALUES(2, true) +INSERT INTO VAGA(estacionamento_id, livre) VALUES(2, true) +INSERT INTO VAGA(estacionamento_id, livre) VALUES(2, true) +INSERT INTO VAGA(estacionamento_id, livre) VALUES(3, true) +INSERT INTO VAGA(estacionamento_id, livre) VALUES(3, true) +INSERT INTO VAGA(estacionamento_id, livre) VALUES(3, true) + INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 1', 'Preto', 'FFFF-4444', 'MOTO', 1) INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 2', 'Preto', 'FFFF-4444', 'MOTO', 2) From ea305256f23852d3816c69588ff20e3294cc6c04 Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 2 Jan 2020 15:06:27 -0300 Subject: [PATCH 58/78] Fix data.sql and Add TipoVaga in VagaDTOs --- .../park/dto/VagaDTOSemEstacionamento.java | 6 ++++++ .../com/hackathonfc/park/mapper/VagaMAP.java | 4 ++-- .../br/com/hackathonfc/park/model/Vaga.java | 1 + src/main/resources/data.sql | 18 +++++++++--------- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java index a1aff11..42f0ca5 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java @@ -1,11 +1,14 @@ package br.com.hackathonfc.park.dto; +import br.com.hackathonfc.park.model.TipoVaga; +import br.com.hackathonfc.park.model.TipoVeiculo; import br.com.hackathonfc.park.model.Vaga; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import javax.persistence.Id; +import javax.validation.constraints.NotNull; import java.time.LocalDateTime; @Data @@ -20,9 +23,12 @@ public class VagaDTOSemEstacionamento { private Long veiculo_id; + private TipoVaga tipoVaga; + public VagaDTOSemEstacionamento(Vaga vaga){ this.id = vaga.getId(); this.livre = vaga.isLivre(); this.veiculo_id = vaga.getVeiculo().getId(); + this.tipoVaga = vaga.getTipoVaga(); } } diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java index 0e3d454..2322e8f 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java @@ -29,7 +29,7 @@ public static VagaDTO toDTO(Vaga vaga){ return new VagaDTO(vaga); } catch(Exception e){ - return new VagaDTO(vaga.getId(), vaga.isLivre(), null); + return new VagaDTO(vaga.getId(), vaga.isLivre(), null, vaga.getTipoVaga()); } } @@ -42,7 +42,7 @@ public static List toDTOSemEstacionamento(List v id = v.getVeiculo().getId(); } - return new VagaDTOSemEstacionamento(v.getId(), v.isLivre(), id); + return new VagaDTOSemEstacionamento(v.getId(), v.isLivre(), id, v.getTipoVaga()); }).collect(Collectors.toList()); } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index ee2e6bd..f8d12ff 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -37,5 +37,6 @@ public Vaga(VagaDTO vagaDTO, Veiculo veiculo, Estacionamento estacionamento) { this.veiculo = veiculo; this.livre = vagaDTO.isLivre(); this.estacionamento = estacionamento; + this.tipoVaga = vagaDTO.getTipoVaga(); } } diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 0f176df..4bcc999 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -2,15 +2,15 @@ INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco, telefone, vagas_motos, vaga INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(2, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano 2, 403 - Embaré, Santos/SP', '123456', '10', '20', '7.80') INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(3, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano 3, 306 - Mocca, São Paulo/SP', '123456', '10', '20', '9.50') -INSERT INTO VAGA(estacionamento_id, livre) VALUES(1, false) -INSERT INTO VAGA(estacionamento_id, livre) VALUES(1, true) -INSERT INTO VAGA(estacionamento_id, livre) VALUES(1, false) -INSERT INTO VAGA(estacionamento_id, livre) VALUES(2, true) -INSERT INTO VAGA(estacionamento_id, livre) VALUES(2, true) -INSERT INTO VAGA(estacionamento_id, livre) VALUES(2, true) -INSERT INTO VAGA(estacionamento_id, livre) VALUES(3, true) -INSERT INTO VAGA(estacionamento_id, livre) VALUES(3, true) -INSERT INTO VAGA(estacionamento_id, livre) VALUES(3, true) +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(1, false, 'CARRO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(1, true, 'CARRO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(1, false, 'MOTO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(2, true, 'CARRO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(2, true, 'MOTO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(2, true, 'CARRO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, true, 'CARRO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, true, 'MOTO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, true, 'MOTO') INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 1', 'Preto', 'FFFF-4444', 'MOTO', 1) From 5f2d987aef70ff5e66a192cd89175f298a77d20a Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 2 Jan 2020 15:21:44 -0300 Subject: [PATCH 59/78] Add more veicules in data.sql --- src/main/resources/data.sql | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 4bcc999..ba73b70 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -1,6 +1,6 @@ -INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco, telefone, vagas_motos, vagas_carros, preco_hora) VALUES(1, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano, 505 - Aparecida, Santos/SP', '123456', '10', '20', '8.50') -INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(2, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano 2, 403 - Embaré, Santos/SP', '123456', '10', '20', '7.80') -INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(3, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano 3, 306 - Mocca, São Paulo/SP', '123456', '10', '20', '9.50') +INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco, telefone, vagas_motos, vagas_carros, preco_hora) VALUES(1, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano, 505 - Aparecida, Santos/SP', '123456', '4', '4', '8.50') +INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(2, 'Estacionamento 2', '1234556', 'Rua Doutor Fulano 2, 403 - Embaré, Santos/SP', '123456', '8', '8', '7.80') +INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(3, 'Estacionamento 3', '1234556', 'Rua Doutor Fulano 3, 306 - Mocca, São Paulo/SP', '123456', '5', '5', '9.50') INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(1, false, 'CARRO') INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(1, true, 'CARRO') @@ -13,7 +13,12 @@ INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, true, 'MOTO') INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, true, 'MOTO') -INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 1', 'Preto', 'FFFF-4444', 'MOTO', 1) -INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 2', 'Preto', 'FFFF-4444', 'MOTO', 2) -INSERT INTO VEICULO(marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES('Marca 1', 'Modelo 3', 'Preto', 'FFFF-4444', 'CARRO', 4) +INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(1, 'Ford', 'Mustang', 'Preto', 'FORD-4444', 'CARRO', 1) +INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(2, 'BMW', 'S1000RR', 'Vermelho', 'MALB-6666', 'MOTO', 3) + +INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(3, 'Chevrolet', 'Cruze', 'Prata', 'VVVV-6969', 'CARRO', 4) +INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(4, 'Honda', 'PCX', 'Branco', 'HOND-6372', 'MOTO', 5) + +INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(5, 'Fiat', 'Punto', 'Branco', 'FIAT-6666', 'CARRO', 7) +INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(6, 'Harley Davidson', 'Fat Boy 2014', 'Vermelho', 'HARL-1882', 'MOTO', 8) From 9201f0850bc6b37dbb90314a539a6d0db338e33d Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 2 Jan 2020 15:41:09 -0300 Subject: [PATCH 60/78] Add UnmatchedTypeException and Fix VeiculoThings --- .../park/controller/VeiculoController.java | 3 ++- .../com/hackathonfc/park/dto/VeiculoDTO.java | 2 ++ .../exception/GlobalExceptionHandler.java | 14 ++++++++++++- .../park/exception/UnmatchedType.java | 11 ++++++++++ .../hackathonfc/park/mapper/VeiculoMAP.java | 7 ++++--- .../com/hackathonfc/park/model/Veiculo.java | 5 +++-- .../park/service/VeiculoService.java | 21 +++++++++++++------ 7 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/exception/UnmatchedType.java diff --git a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java index 687452f..e50b5c9 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java @@ -2,6 +2,7 @@ import br.com.hackathonfc.park.dto.VeiculoDTO; import br.com.hackathonfc.park.exception.PlacaFound; +import br.com.hackathonfc.park.exception.UnmatchedType; import br.com.hackathonfc.park.exception.VeiculoNotFound; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.service.VeiculoService; @@ -36,7 +37,7 @@ public List listarVeiculosDeUmaVaga(@PathVariable Long id2) { } @PostMapping("/{id}/veiculos") - public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoDTO veiculoDTO) throws PlacaFound { + public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoDTO veiculoDTO) throws PlacaFound, UnmatchedType { return veiculoService.cadastrarVeiculo(veiculoDTO); } diff --git a/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java index 3deb216..3fbfc9f 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java @@ -19,6 +19,7 @@ @NoArgsConstructor public class VeiculoDTO { + @Id private Long id; @NotEmpty @@ -40,6 +41,7 @@ public class VeiculoDTO { private Long vagaId; public VeiculoDTO(Veiculo veiculo) { + this.id = veiculo.getId(); this.marca = veiculo.getMarca(); this.modelo = veiculo.getModelo(); this.cor = veiculo.getCor(); diff --git a/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java b/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java index 56dfbd5..460a538 100644 --- a/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java +++ b/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java @@ -22,7 +22,8 @@ public class GlobalExceptionHandler { NomeFound.class, PlacaFound.class, VeiculoNotFound.class, - VagaNotFound.class + VagaNotFound.class, + UnmatchedType.class }) @Nullable @@ -61,6 +62,11 @@ public final ResponseEntity handleException(Exception ex, WebRequest r VagaNotFound cnpjfe = (VagaNotFound) ex; return handleVagaNotFound(cnpjfe, headers, status, request); } + else if (ex instanceof UnmatchedType){ + HttpStatus status = HttpStatus.CONFLICT; + UnmatchedType cnpjfe = (UnmatchedType) ex; + return handleUnmatchedType(cnpjfe, headers, status, request); + } else { if (LOGGER.isWarnEnabled()) { LOGGER.warn("Exceção desconhecida: " + ex.getClass().getName()); @@ -76,6 +82,12 @@ protected final ResponseEntity handleCnpjFound(CnpjFound ex, HttpHeade return handleExceptionInternal(ex, new ApiError(error), headers, status, request); } + protected final ResponseEntity handleUnmatchedType(UnmatchedType ex, HttpHeaders headers, + HttpStatus status, WebRequest request) { + String error = ex.getMessage(); + return handleExceptionInternal(ex, new ApiError(error), headers, status, request); + } + protected final ResponseEntity handleEstacionamentoNotFound(EstacionamentoNotFound ex, HttpHeaders headers, HttpStatus status, WebRequest request) { String error = ex.getMessage(); diff --git a/src/main/java/br/com/hackathonfc/park/exception/UnmatchedType.java b/src/main/java/br/com/hackathonfc/park/exception/UnmatchedType.java new file mode 100644 index 0000000..48fc8ed --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/exception/UnmatchedType.java @@ -0,0 +1,11 @@ +package br.com.hackathonfc.park.exception; + +import lombok.AllArgsConstructor; + +@AllArgsConstructor +public class UnmatchedType extends Exception{ + @Override + public String getMessage() { + return "Este veículo não pode estacionar nesta vaga!"; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java index ba9449a..4be0767 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VeiculoMAP.java @@ -1,6 +1,7 @@ package br.com.hackathonfc.park.mapper; import br.com.hackathonfc.park.dto.VeiculoDTO; +import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.repository.VagaRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -24,10 +25,10 @@ public static VeiculoDTO toDTO(Veiculo veiculo){ } public static List fromDTO(List veiculos){ - return veiculos.stream().map(v -> {return new Veiculo(v, vagaRepository);} ).collect(Collectors.toList()); + return veiculos.stream().map(v -> {return new Veiculo(v, vagaRepository.findById(v.getVagaId()).get());} ).collect(Collectors.toList()); } - public static Veiculo fromDTO(VeiculoDTO veiculoDTO){ - return new Veiculo(veiculoDTO, vagaRepository); + public static Veiculo fromDTO(VeiculoDTO veiculoDTO, Vaga vaga){ + return new Veiculo(veiculoDTO, vaga); } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java index a039f2d..84f24f0 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java +++ b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java @@ -35,12 +35,13 @@ public class Veiculo { @OneToOne private Vaga vaga; - public Veiculo(VeiculoDTO veiculoDTO, VagaRepository vagaRepository){ + public Veiculo(VeiculoDTO veiculoDTO, Vaga vaga){ + this.id = veiculoDTO.getId(); this.marca = veiculoDTO.getMarca(); this.modelo = veiculoDTO.getModelo(); this.cor = veiculoDTO.getCor(); this.placa = veiculoDTO.getPlaca(); this.tipoVeiculo = veiculoDTO.getTipoVeiculo(); - this.vaga = vagaRepository.findById(veiculoDTO.getVagaId()).get(); + this.vaga = vaga; } } diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java index 82bb529..545097b 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -2,10 +2,7 @@ import br.com.hackathonfc.park.dto.EstacionamentoDTO; import br.com.hackathonfc.park.dto.VeiculoDTO; -import br.com.hackathonfc.park.exception.CnpjFound; -import br.com.hackathonfc.park.exception.NomeFound; -import br.com.hackathonfc.park.exception.PlacaFound; -import br.com.hackathonfc.park.exception.VeiculoNotFound; +import br.com.hackathonfc.park.exception.*; import br.com.hackathonfc.park.mapper.VeiculoMAP; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; @@ -65,10 +62,22 @@ public List listarVeiculosDeUmaVaga(Long id) { } public ResponseEntity cadastrarVeiculo(VeiculoDTO veiculoDTO) - throws PlacaFound { + throws PlacaFound, UnmatchedType { + + Vaga vaga = new Vaga(); + Optional checkVaga = vagaRepository.findById(veiculoDTO.getVagaId()); + + if (checkVaga.isPresent()) { + if (veiculoDTO.getTipoVeiculo().toString().equals(checkVaga.get().getTipoVaga().toString())) { + vaga = checkVaga.get(); + } + else { + throw new UnmatchedType(); + } + } try{ - Veiculo veiculo = veiculoRepository.save(veiculoMAP.fromDTO(veiculoDTO)); + Veiculo veiculo = veiculoRepository.save(veiculoMAP.fromDTO(veiculoDTO, vaga)); return ResponseEntity.ok(veiculoMAP.toDTO(veiculo)); } catch (Exception e){ From c847ba73f1856d761d2062ff2057c82f4ad0f4a6 Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 2 Jan 2020 16:45:43 -0300 Subject: [PATCH 61/78] Change Relanshionship OneToOne(Vaga-Veiculo) to OneToMany --- .../park/controller/VeiculoController.java | 1 + .../br/com/hackathonfc/park/dto/VagaDTO.java | 4 ++-- .../park/dto/VagaDTOSemEstacionamento.java | 2 +- .../com/hackathonfc/park/mapper/VagaMAP.java | 18 +++++++++++++++--- .../br/com/hackathonfc/park/model/Vaga.java | 8 +++++--- .../park/service/EstacionamentoService.java | 2 +- .../hackathonfc/park/service/VagaService.java | 5 ++++- .../park/service/VeiculoService.java | 19 ++++++++++++++++++- 8 files changed, 47 insertions(+), 12 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java index e50b5c9..1da110a 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java @@ -48,6 +48,7 @@ public ResponseEntity atualizarVeiculo(@PathVariable Long id2, @Requ } @DeleteMapping("/{id}/veiculos/{id2}") + @Transactional public ResponseEntity removerVeiculo(@PathVariable Long id2) throws VeiculoNotFound { return veiculoService.removerVeiculo(id2); } diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java index 2bdca72..0a3a555 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java @@ -24,10 +24,10 @@ public class VagaDTO { @NotNull private TipoVaga tipoVaga; - public VagaDTO(Vaga vaga) { + public VagaDTO(Vaga vaga, Long veiculo_id) { this.id = vaga.getId(); this.livre = vaga.isLivre(); - this.veiculo_id = vaga.getVeiculo().getId(); + this.veiculo_id = veiculo_id; this.tipoVaga = vaga.getTipoVaga(); } } diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java index 42f0ca5..aaaa7cd 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java @@ -28,7 +28,7 @@ public class VagaDTOSemEstacionamento { public VagaDTOSemEstacionamento(Vaga vaga){ this.id = vaga.getId(); this.livre = vaga.isLivre(); - this.veiculo_id = vaga.getVeiculo().getId(); + this.veiculo_id = vaga.getVeiculo().get(vaga.getVeiculo().size() - 1).getId(); this.tipoVaga = vaga.getTipoVaga(); } } diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java index 2322e8f..e84fe1c 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java @@ -16,17 +16,24 @@ @Component public class VagaMAP { + @Autowired + private static VeiculoRepository veiculoRepository; + public static Vaga fromDTO(VagaDTO vagaDTO, Estacionamento estacionamento, Veiculo veiculo){ return new Vaga(vagaDTO, veiculo, estacionamento); } public static List toDTO(List vagas){ - return vagas.stream().map(VagaDTO::new).collect(Collectors.toList()); + return vagas.stream().map(v -> { + Long id = retornarVeiculoId(v.getId()); + return new VagaDTO(v, id); + }).collect(Collectors.toList()); } public static VagaDTO toDTO(Vaga vaga){ try { - return new VagaDTO(vaga); + Long id = retornarVeiculoId(vaga.getId()); + return new VagaDTO(vaga, id); } catch(Exception e){ return new VagaDTO(vaga.getId(), vaga.isLivre(), null, vaga.getTipoVaga()); @@ -39,10 +46,15 @@ public static List toDTOSemEstacionamento(List v if (v.getVeiculo() == null){ id = null; } else { - id = v.getVeiculo().getId(); + id = retornarVeiculoId(v.getId()); } return new VagaDTOSemEstacionamento(v.getId(), v.isLivre(), id, v.getTipoVaga()); }).collect(Collectors.toList()); } + + private static Long retornarVeiculoId(Long id){ + List veiculos = veiculoRepository.findByVagaId(id); + return veiculos.get(veiculos.size()-1).getId(); + } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index f8d12ff..aff8a6e 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -10,6 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired; import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.List; import javax.persistence.*; @@ -30,11 +32,11 @@ public class Vaga { @Enumerated(EnumType.STRING) private TipoVaga tipoVaga = TipoVaga.CARRO; - @OneToOne(mappedBy = "vaga", cascade = CascadeType.ALL, orphanRemoval = true) - private Veiculo veiculo; + @OneToMany(mappedBy = "vaga", cascade = CascadeType.ALL, orphanRemoval = true) + private List veiculo = Arrays.asList(); public Vaga(VagaDTO vagaDTO, Veiculo veiculo, Estacionamento estacionamento) { - this.veiculo = veiculo; + this.veiculo.add(veiculo); this.livre = vagaDTO.isLivre(); this.estacionamento = estacionamento; this.tipoVaga = vagaDTO.getTipoVaga(); diff --git a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java index 8e3314a..6035dd8 100644 --- a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java @@ -102,7 +102,7 @@ public EstacionamentoDTO detalhar(Long id) { return estacionamentoMAP.toDTO(estacionamentoRepository.findById(id).get()); } - public boolean validateCnpj(@NotNull int cnpj){ + public boolean validateCnpj(int cnpj){ return estacionamentoRepository.findByCnpj(cnpj).isPresent(); } diff --git a/src/main/java/br/com/hackathonfc/park/service/VagaService.java b/src/main/java/br/com/hackathonfc/park/service/VagaService.java index 0f6778f..dfe1ebb 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VagaService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VagaService.java @@ -84,8 +84,11 @@ public ResponseEntity atualizar(Long id, VagaDTO vagaDTO) throws VagaNo } } + List veiculos = vaga.getVeiculo(); + veiculos.add(veiculo); + vaga.setLivre(vagaDTO.isLivre()); - vaga.setVeiculo(veiculo); + vaga.setVeiculo(veiculos); return ResponseEntity.ok(vagaMAP.toDTO(vaga)); } diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java index 545097b..3b4ffcc 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -4,6 +4,8 @@ import br.com.hackathonfc.park.dto.VeiculoDTO; import br.com.hackathonfc.park.exception.*; import br.com.hackathonfc.park.mapper.VeiculoMAP; +import br.com.hackathonfc.park.model.TipoVaga; +import br.com.hackathonfc.park.model.TipoVeiculo; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.repository.VagaRepository; @@ -65,10 +67,15 @@ public ResponseEntity cadastrarVeiculo(VeiculoDTO veiculoDTO) throws PlacaFound, UnmatchedType { Vaga vaga = new Vaga(); + Optional checkVaga = vagaRepository.findById(veiculoDTO.getVagaId()); + boolean isPlacaFound = ValidatePlaca(veiculoDTO.getPlaca()); + if (checkVaga.isPresent()) { - if (veiculoDTO.getTipoVeiculo().toString().equals(checkVaga.get().getTipoVaga().toString())) { + boolean isTypeValid = ValidadeType(veiculoDTO.getTipoVeiculo(), checkVaga.get().getTipoVaga()); + + if (isTypeValid) { vaga = checkVaga.get(); } else { @@ -76,6 +83,8 @@ public ResponseEntity cadastrarVeiculo(VeiculoDTO veiculoDTO) } } + if (isPlacaFound == true) throw new PlacaFound(); + try{ Veiculo veiculo = veiculoRepository.save(veiculoMAP.fromDTO(veiculoDTO, vaga)); return ResponseEntity.ok(veiculoMAP.toDTO(veiculo)); @@ -117,4 +126,12 @@ public ResponseEntity removerVeiculo(@PathVariable Long id) throw new VeiculoNotFound(); } } + + private boolean ValidatePlaca(String placa){ + return veiculoRepository.findByPlaca(placa).isPresent(); + } + + private boolean ValidadeType(TipoVeiculo tipoVeiculo, TipoVaga tipoVaga) { + return tipoVeiculo.toString().equals(tipoVaga.toString()); + } } From 78ef0fefd2049c21cf04a1c2fe72408fb94742a3 Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 2 Jan 2020 16:55:25 -0300 Subject: [PATCH 62/78] Att --- .../com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java | 7 ------- .../br/com/hackathonfc/park/service/VeiculoService.java | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java index aaaa7cd..76b33c4 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java @@ -24,11 +24,4 @@ public class VagaDTOSemEstacionamento { private Long veiculo_id; private TipoVaga tipoVaga; - - public VagaDTOSemEstacionamento(Vaga vaga){ - this.id = vaga.getId(); - this.livre = vaga.isLivre(); - this.veiculo_id = vaga.getVeiculo().get(vaga.getVeiculo().size() - 1).getId(); - this.tipoVaga = vaga.getTipoVaga(); - } } diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java index 3b4ffcc..7360d85 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -52,7 +52,7 @@ public List listarVeiculos(Long id){ Veiculo veiculo; for (Vaga vaga : vagas) { - veiculo = vaga.getVeiculo(); + veiculo = vaga.getVeiculo().get(vaga.getVeiculo().size()-1); veiculos.add(veiculoMAP.toDTO(veiculo)); } From 77d8f07db328ec5465a28800ddac15dac5aa85e1 Mon Sep 17 00:00:00 2001 From: Henrico Date: Fri, 3 Jan 2020 12:29:39 -0300 Subject: [PATCH 63/78] Remove Att OneToMany --- .../java/br/com/hackathonfc/park/dto/VagaDTO.java | 4 ++-- .../br/com/hackathonfc/park/mapper/VagaMAP.java | 13 +++---------- .../java/br/com/hackathonfc/park/model/Vaga.java | 6 +++--- .../com/hackathonfc/park/service/VagaService.java | 5 +---- .../hackathonfc/park/service/VeiculoService.java | 2 +- 5 files changed, 10 insertions(+), 20 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java index 0a3a555..2bdca72 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java @@ -24,10 +24,10 @@ public class VagaDTO { @NotNull private TipoVaga tipoVaga; - public VagaDTO(Vaga vaga, Long veiculo_id) { + public VagaDTO(Vaga vaga) { this.id = vaga.getId(); this.livre = vaga.isLivre(); - this.veiculo_id = veiculo_id; + this.veiculo_id = vaga.getVeiculo().getId(); this.tipoVaga = vaga.getTipoVaga(); } } diff --git a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java index e84fe1c..fb250a7 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/VagaMAP.java @@ -25,15 +25,13 @@ public static Vaga fromDTO(VagaDTO vagaDTO, Estacionamento estacionamento, Veicu public static List toDTO(List vagas){ return vagas.stream().map(v -> { - Long id = retornarVeiculoId(v.getId()); - return new VagaDTO(v, id); + return new VagaDTO(v); }).collect(Collectors.toList()); } public static VagaDTO toDTO(Vaga vaga){ try { - Long id = retornarVeiculoId(vaga.getId()); - return new VagaDTO(vaga, id); + return new VagaDTO(vaga); } catch(Exception e){ return new VagaDTO(vaga.getId(), vaga.isLivre(), null, vaga.getTipoVaga()); @@ -46,15 +44,10 @@ public static List toDTOSemEstacionamento(List v if (v.getVeiculo() == null){ id = null; } else { - id = retornarVeiculoId(v.getId()); + id = v.getVeiculo().getId(); } return new VagaDTOSemEstacionamento(v.getId(), v.isLivre(), id, v.getTipoVaga()); }).collect(Collectors.toList()); } - - private static Long retornarVeiculoId(Long id){ - List veiculos = veiculoRepository.findByVagaId(id); - return veiculos.get(veiculos.size()-1).getId(); - } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index aff8a6e..abfe75e 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -32,11 +32,11 @@ public class Vaga { @Enumerated(EnumType.STRING) private TipoVaga tipoVaga = TipoVaga.CARRO; - @OneToMany(mappedBy = "vaga", cascade = CascadeType.ALL, orphanRemoval = true) - private List veiculo = Arrays.asList(); + @OneToOne(mappedBy = "vaga", cascade = CascadeType.ALL, orphanRemoval = true) + private Veiculo veiculo; public Vaga(VagaDTO vagaDTO, Veiculo veiculo, Estacionamento estacionamento) { - this.veiculo.add(veiculo); + this.veiculo = veiculo; this.livre = vagaDTO.isLivre(); this.estacionamento = estacionamento; this.tipoVaga = vagaDTO.getTipoVaga(); diff --git a/src/main/java/br/com/hackathonfc/park/service/VagaService.java b/src/main/java/br/com/hackathonfc/park/service/VagaService.java index dfe1ebb..0f6778f 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VagaService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VagaService.java @@ -84,11 +84,8 @@ public ResponseEntity atualizar(Long id, VagaDTO vagaDTO) throws VagaNo } } - List veiculos = vaga.getVeiculo(); - veiculos.add(veiculo); - vaga.setLivre(vagaDTO.isLivre()); - vaga.setVeiculo(veiculos); + vaga.setVeiculo(veiculo); return ResponseEntity.ok(vagaMAP.toDTO(vaga)); } diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java index 7360d85..3b4ffcc 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -52,7 +52,7 @@ public List listarVeiculos(Long id){ Veiculo veiculo; for (Vaga vaga : vagas) { - veiculo = vaga.getVeiculo().get(vaga.getVeiculo().size()-1); + veiculo = vaga.getVeiculo(); veiculos.add(veiculoMAP.toDTO(veiculo)); } From ec79bcd02b2283208d5c5b0f0bf2db617d869588 Mon Sep 17 00:00:00 2001 From: Henrico Date: Fri, 3 Jan 2020 16:40:43 -0300 Subject: [PATCH 64/78] 03/01/2020 final --- .../hackathonfc/park/bo/EstacionamentoBO.java | 4 --- .../br/com/hackathonfc/park/model/Vaga.java | 9 ++++++- .../park/service/EstacionamentoService.java | 27 ++++++++++++++++++- .../park/service/VeiculoService.java | 5 +++- 4 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java index f9746ba..292d4cb 100644 --- a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java +++ b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java @@ -30,10 +30,6 @@ public Page listarEstacionamentos(Pageable paginacao){ return estacionamentoService.listar(paginacao); } - public List listarVagas(Long id) throws EstacionamentoNotFound { - return vagaService.listar(id); - } - public ResponseEntity cadastrar(EstacionamentoDTO estacionamento) throws NomeFound, CnpjFound { return estacionamentoService.cadastrar(estacionamento); } diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index abfe75e..754b8d0 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -27,7 +27,7 @@ public class Vaga { @ManyToOne private Estacionamento estacionamento; - private boolean livre; + private boolean livre = true; @Enumerated(EnumType.STRING) private TipoVaga tipoVaga = TipoVaga.CARRO; @@ -41,4 +41,11 @@ public Vaga(VagaDTO vagaDTO, Veiculo veiculo, Estacionamento estacionamento) { this.estacionamento = estacionamento; this.tipoVaga = vagaDTO.getTipoVaga(); } + + public Vaga(Estacionamento estacionamento, TipoVaga tipoVaga){ + this.veiculo = null; + this.livre = true; + this.estacionamento = estacionamento; + this.tipoVaga = tipoVaga; + } } diff --git a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java index 6035dd8..545b939 100644 --- a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java @@ -6,24 +6,33 @@ import br.com.hackathonfc.park.exception.NomeFound; import br.com.hackathonfc.park.mapper.EstacionamentoMAP; import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.model.TipoVaga; +import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.repository.EstacionamentoRepository; +import br.com.hackathonfc.park.repository.VagaRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import javax.validation.constraints.NotNull; import java.util.List; import java.util.Optional; +import static br.com.hackathonfc.park.model.TipoVaga.*; +import static br.com.hackathonfc.park.model.TipoVaga.MOTO; + @Service public class EstacionamentoService { @Autowired private EstacionamentoRepository estacionamentoRepository; + @Autowired + private VagaRepository vagaRepository; + private EstacionamentoMAP estacionamentoMAP = new EstacionamentoMAP(); public Page listar(Pageable paginacao){ @@ -48,6 +57,7 @@ public ResponseEntity cadastrar(EstacionamentoDTO estacioname try { EstacionamentoDTO estacionamento = estacionamentoMAP.toDTO(estacionamentoRepository.save(estacionamentoMAP.fromDTO(estacionamentoDTO))); + //cadastrarVagas(estacionamentoDTO.getVagasMotos(), estacionamentoDTO.getVagasCarros(), estacionamentoDTO); return ResponseEntity.ok(estacionamento); } catch (Exception e){ @@ -109,4 +119,19 @@ public boolean validateCnpj(int cnpj){ private boolean validateNome(String nome) { return estacionamentoRepository.findByNome(nome).isPresent(); } + + private void cadastrarVagas(int vagasMoto, int vagasCarro, EstacionamentoDTO estacionamentoDTO){ + TipoVaga tipoMoto = MOTO; + TipoVaga tipoCarro = CARRO; + Vaga vagaMoto = new Vaga(estacionamentoMAP.fromDTO(estacionamentoDTO), tipoMoto); + Vaga vagaCarro = new Vaga(estacionamentoMAP.fromDTO(estacionamentoDTO), tipoCarro); + + for (int i = 0; i < vagasMoto; i++) { + vagaRepository.save(vagaMoto); + } + + for (int i = 0; i < vagasCarro; i++) { + vagaRepository.save(vagaCarro); + } + } } diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java index 3b4ffcc..c83b7c4 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -76,7 +76,7 @@ public ResponseEntity cadastrarVeiculo(VeiculoDTO veiculoDTO) boolean isTypeValid = ValidadeType(veiculoDTO.getTipoVeiculo(), checkVaga.get().getTipoVaga()); if (isTypeValid) { - vaga = checkVaga.get(); + vaga = vagaRepository.getOne(veiculoDTO.getVagaId()); } else { throw new UnmatchedType(); @@ -86,6 +86,7 @@ public ResponseEntity cadastrarVeiculo(VeiculoDTO veiculoDTO) if (isPlacaFound == true) throw new PlacaFound(); try{ + vaga.setLivre(false); Veiculo veiculo = veiculoRepository.save(veiculoMAP.fromDTO(veiculoDTO, vaga)); return ResponseEntity.ok(veiculoMAP.toDTO(veiculo)); } @@ -120,6 +121,8 @@ public ResponseEntity removerVeiculo(@PathVariable Long id) Optional optional = veiculoRepository.findById(id); if(optional.isPresent()) { + Vaga vaga = vagaRepository.findById(optional.get().getVaga().getId()).get(); + vaga.setLivre(true); veiculoRepository.deleteById(id); return ResponseEntity.ok().build(); } else { From 01085b670bac148dd935c8bffe95e2e2fc26a067 Mon Sep 17 00:00:00 2001 From: Henrico Date: Mon, 6 Jan 2020 10:30:23 -0300 Subject: [PATCH 65/78] Fix VeiculoService DELETE --- src/main/java/br/com/hackathonfc/park/model/Vaga.java | 2 +- src/main/resources/data.sql | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index 754b8d0..7dd473d 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -32,7 +32,7 @@ public class Vaga { @Enumerated(EnumType.STRING) private TipoVaga tipoVaga = TipoVaga.CARRO; - @OneToOne(mappedBy = "vaga", cascade = CascadeType.ALL, orphanRemoval = true) + @OneToOne(mappedBy = "vaga", cascade = {CascadeType.REMOVE, CascadeType.REFRESH}, orphanRemoval = true) private Veiculo veiculo; public Vaga(VagaDTO vagaDTO, Veiculo veiculo, Estacionamento estacionamento) { diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index ba73b70..3cc0c41 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -5,11 +5,11 @@ INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vaga INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(1, false, 'CARRO') INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(1, true, 'CARRO') INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(1, false, 'MOTO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(2, false, 'CARRO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(2, false, 'MOTO') INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(2, true, 'CARRO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(2, true, 'MOTO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(2, true, 'CARRO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, true, 'CARRO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, true, 'MOTO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, false, 'CARRO') +INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, false, 'MOTO') INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, true, 'MOTO') From 18e7c034bd60d668437177629968ceecdc2bddd7 Mon Sep 17 00:00:00 2001 From: Henrico Date: Mon, 6 Jan 2020 13:52:17 -0300 Subject: [PATCH 66/78] Fix Put @Transactional and Fix Repositorys Bad Use --- .../br/com/hackathonfc/park/bo/VagaBO.java | 7 +- .../controller/EstacionamentoController.java | 1 - .../park/controller/VagaController.java | 3 +- .../park/controller/VeiculoController.java | 16 ++--- .../park/model/Estacionamento.java | 2 +- .../park/service/EstacionamentoService.java | 39 +++++++---- .../hackathonfc/park/service/VagaService.java | 66 +++++++++++++++---- .../park/service/VeiculoService.java | 43 ++++++++---- 8 files changed, 121 insertions(+), 56 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java b/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java index f58f5e6..da6e9bf 100644 --- a/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java +++ b/src/main/java/br/com/hackathonfc/park/bo/VagaBO.java @@ -5,6 +5,7 @@ import br.com.hackathonfc.park.dto.VeiculoDTO; import br.com.hackathonfc.park.exception.EstacionamentoNotFound; import br.com.hackathonfc.park.exception.VagaNotFound; +import br.com.hackathonfc.park.exception.VeiculoNotFound; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.service.VagaService; @@ -24,8 +25,8 @@ public class VagaBO { @Autowired private VeiculoService veiculoService; - public List listarVeiculos(Long id) { - return veiculoService.listarVeiculos(id); + public List listarVeiculos(Long id) throws EstacionamentoNotFound { + return veiculoService.listarVeiculosDoEstacionamento(id); } public List listarVagas(Long id) throws EstacionamentoNotFound { return vagaService.listar(id); @@ -35,7 +36,7 @@ public ResponseEntity cadastrarVaga(VagaDTO vagaDTO, Long id) { return vagaService.cadastrar(vagaDTO, id); } - public ResponseEntity atualizarVaga(Long id, VagaDTO vagaDTO) throws VagaNotFound { + public ResponseEntity atualizarVaga(Long id, VagaDTO vagaDTO) throws VagaNotFound, VeiculoNotFound { return vagaService.atualizar(id, vagaDTO); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 442e591..6d40ea3 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -53,7 +53,6 @@ public ResponseEntity cadastrar(@RequestBody @Valid Estaciona } @PutMapping("/{id}") - @Transactional public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid EstacionamentoDTO estacionamentoDTO) throws EstacionamentoNotFound { return estacionamentoBO.atualizar(id, estacionamentoDTO); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java index ef6efe3..b9a4f0e 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VagaController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VagaController.java @@ -57,8 +57,7 @@ public ResponseEntity cadastrarVaga(@RequestBody @Valid VagaDTO vagaDTO } @PutMapping("/{id}/vagas/{id2}") - @Transactional - public ResponseEntity atualizarVaga(@PathVariable Long id2, @RequestBody @Valid VagaDTO vagaDTO) throws VagaNotFound { + public ResponseEntity atualizarVaga(@PathVariable Long id2, @RequestBody @Valid VagaDTO vagaDTO) throws VagaNotFound, VeiculoNotFound { return vagaBO.atualizarVaga(id2, vagaDTO); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java index 1da110a..53c2f41 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java @@ -1,9 +1,7 @@ package br.com.hackathonfc.park.controller; import br.com.hackathonfc.park.dto.VeiculoDTO; -import br.com.hackathonfc.park.exception.PlacaFound; -import br.com.hackathonfc.park.exception.UnmatchedType; -import br.com.hackathonfc.park.exception.VeiculoNotFound; +import br.com.hackathonfc.park.exception.*; import br.com.hackathonfc.park.model.Veiculo; import br.com.hackathonfc.park.service.VeiculoService; import org.springframework.beans.factory.annotation.Autowired; @@ -22,12 +20,12 @@ public class VeiculoController { private VeiculoService veiculoService; @GetMapping("/{id}/veiculos") - public List listarVeiculos(@PathVariable Long id){ - return veiculoService.listarVeiculos(id); + public List listarVeiculos(@PathVariable Long id) throws EstacionamentoNotFound { + return veiculoService.listarVeiculosDoEstacionamento(id); } @GetMapping("/{id}/veiculos/todos") - public List listarTodosOsVeiculos(@PathVariable Long id){ + public List listarTodosOsVeiculos(@PathVariable Long id) throws EstacionamentoNotFound { return veiculoService.listarTodosOsVeiculos(id); } @@ -37,19 +35,19 @@ public List listarVeiculosDeUmaVaga(@PathVariable Long id2) { } @PostMapping("/{id}/veiculos") - public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoDTO veiculoDTO) throws PlacaFound, UnmatchedType { + public ResponseEntity cadastrarVeiculo(@RequestBody @Valid VeiculoDTO veiculoDTO) throws PlacaFound, UnmatchedType, VagaNotFound { return veiculoService.cadastrarVeiculo(veiculoDTO); } @PutMapping("/{id}/veiculos/{id2}") @Transactional - public ResponseEntity atualizarVeiculo(@PathVariable Long id2, @RequestBody @Valid VeiculoDTO veiculoDTO) throws VeiculoNotFound { + public ResponseEntity atualizarVeiculo(@PathVariable Long id2, @RequestBody @Valid VeiculoDTO veiculoDTO) throws VeiculoNotFound, VagaNotFound { return veiculoService.atualizarVeiculo(id2, veiculoDTO); } @DeleteMapping("/{id}/veiculos/{id2}") @Transactional - public ResponseEntity removerVeiculo(@PathVariable Long id2) throws VeiculoNotFound { + public ResponseEntity removerVeiculo(@PathVariable Long id2) throws VeiculoNotFound, VagaNotFound { return veiculoService.removerVeiculo(id2); } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java index 6c03973..a452042 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -34,7 +34,7 @@ public class Estacionamento { private Double precoHora; - @OneToMany(mappedBy = "estacionamento", cascade = CascadeType.ALL, orphanRemoval = true) + @OneToMany(mappedBy = "estacionamento", cascade = CascadeType.REMOVE, orphanRemoval = true) private List vagas = new ArrayList<>(); public Estacionamento(EstacionamentoDTO estacionamentoDTO) { diff --git a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java index 545b939..528e786 100644 --- a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java @@ -1,5 +1,6 @@ package br.com.hackathonfc.park.service; +import br.com.hackathonfc.park.controller.EstacionamentoController; import br.com.hackathonfc.park.dto.EstacionamentoDTO; import br.com.hackathonfc.park.exception.CnpjFound; import br.com.hackathonfc.park.exception.EstacionamentoNotFound; @@ -10,6 +11,7 @@ import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.repository.EstacionamentoRepository; import br.com.hackathonfc.park.repository.VagaRepository; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; @@ -25,13 +27,14 @@ import static br.com.hackathonfc.park.model.TipoVaga.MOTO; @Service +@Slf4j public class EstacionamentoService { @Autowired private EstacionamentoRepository estacionamentoRepository; @Autowired - private VagaRepository vagaRepository; + private VagaService vagaService; private EstacionamentoMAP estacionamentoMAP = new EstacionamentoMAP(); @@ -56,11 +59,12 @@ public ResponseEntity cadastrar(EstacionamentoDTO estacioname } try { - EstacionamentoDTO estacionamento = estacionamentoMAP.toDTO(estacionamentoRepository.save(estacionamentoMAP.fromDTO(estacionamentoDTO))); - //cadastrarVagas(estacionamentoDTO.getVagasMotos(), estacionamentoDTO.getVagasCarros(), estacionamentoDTO); - return ResponseEntity.ok(estacionamento); + Estacionamento estacionamento = estacionamentoRepository.save(estacionamentoMAP.fromDTO(estacionamentoDTO)); + cadastrarVagas(estacionamentoDTO.getVagasMotos(), estacionamentoDTO.getVagasCarros(), estacionamento); + return ResponseEntity.ok(estacionamentoMAP.toDTO(estacionamento)); } catch (Exception e){ + log.error(e.toString()); return ResponseEntity.badRequest().build(); } } @@ -81,7 +85,7 @@ public ResponseEntity atualizar(Long id, EstacionamentoDTO es estacionamento.setVagasCarros(estacionamentoDTO.getVagasCarros()); estacionamento.setVagasMotos(estacionamentoDTO.getVagasMotos()); - return ResponseEntity.ok(estacionamentoMAP.toDTO(estacionamento)); + return ResponseEntity.ok(estacionamentoMAP.toDTO(estacionamentoRepository.save(estacionamento))); } else{ throw new EstacionamentoNotFound(); } @@ -108,8 +112,21 @@ public ResponseEntity deletar(Long id) return ResponseEntity.notFound().build(); } - public EstacionamentoDTO detalhar(Long id) { - return estacionamentoMAP.toDTO(estacionamentoRepository.findById(id).get()); + public EstacionamentoDTO detalhar(Long id) throws EstacionamentoNotFound{ + Optional estacionamento = estacionamentoRepository.findById(id); + if(estacionamento.isPresent()) + return estacionamentoMAP.toDTO(estacionamento.get()); + else + throw new EstacionamentoNotFound(); + } + + public Optional retornarEstacionamento(Long id) throws EstacionamentoNotFound { + Optional estacionamento = estacionamentoRepository.findById(id); + + if (estacionamento.isPresent()) + return estacionamento; + else + throw new EstacionamentoNotFound(); } public boolean validateCnpj(int cnpj){ @@ -120,18 +137,16 @@ private boolean validateNome(String nome) { return estacionamentoRepository.findByNome(nome).isPresent(); } - private void cadastrarVagas(int vagasMoto, int vagasCarro, EstacionamentoDTO estacionamentoDTO){ + private void cadastrarVagas(int vagasMoto, int vagasCarro, Estacionamento estacionamento){ TipoVaga tipoMoto = MOTO; TipoVaga tipoCarro = CARRO; - Vaga vagaMoto = new Vaga(estacionamentoMAP.fromDTO(estacionamentoDTO), tipoMoto); - Vaga vagaCarro = new Vaga(estacionamentoMAP.fromDTO(estacionamentoDTO), tipoCarro); for (int i = 0; i < vagasMoto; i++) { - vagaRepository.save(vagaMoto); + vagaService.cadastrarVaga(new Vaga(estacionamento, tipoMoto), estacionamento.getId()); } for (int i = 0; i < vagasCarro; i++) { - vagaRepository.save(vagaCarro); + vagaService.cadastrarVaga(new Vaga(estacionamento, tipoCarro), estacionamento.getId()); } } } diff --git a/src/main/java/br/com/hackathonfc/park/service/VagaService.java b/src/main/java/br/com/hackathonfc/park/service/VagaService.java index 0f6778f..8a032cd 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VagaService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VagaService.java @@ -4,39 +4,37 @@ import br.com.hackathonfc.park.dto.VagaDTOSemEstacionamento; import br.com.hackathonfc.park.exception.EstacionamentoNotFound; import br.com.hackathonfc.park.exception.VagaNotFound; +import br.com.hackathonfc.park.exception.VeiculoNotFound; import br.com.hackathonfc.park.mapper.VagaMAP; import br.com.hackathonfc.park.model.Estacionamento; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; -import br.com.hackathonfc.park.repository.EstacionamentoRepository; import br.com.hackathonfc.park.repository.VagaRepository; -import br.com.hackathonfc.park.repository.VeiculoRepository; -import org.apache.coyote.Response; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; -import javax.swing.text.html.Option; -import java.util.Arrays; import java.util.List; import java.util.Optional; @Service +@Slf4j public class VagaService { @Autowired private VagaRepository vagaRepository; @Autowired - private VeiculoRepository veiculoRepository; + private VeiculoService veiculoService; @Autowired - private EstacionamentoRepository estacionamentoRepository; + private EstacionamentoService estacionamentoService; private VagaMAP vagaMAP; public List listar(Long id) throws EstacionamentoNotFound { - Optional checkEstacionamento = estacionamentoRepository.findById(id); + Optional checkEstacionamento = estacionamentoService.retornarEstacionamento(id); List vagas; if(checkEstacionamento.isPresent()){ @@ -50,14 +48,14 @@ public List listar(Long id) throws EstacionamentoNotFo public ResponseEntity cadastrar(VagaDTO vagaDTO, Long id) { try { - Estacionamento estacionamento = estacionamentoRepository.findById(id).get(); - Optional checkVeiculo = veiculoRepository.findById(vagaDTO.getVeiculo_id()); + Estacionamento estacionamento = estacionamentoService.retornarEstacionamento(id).get(); + Optional checkVeiculo = veiculoService.retornarVeiculo(vagaDTO.getVeiculo_id()); Veiculo veiculo; if (!checkVeiculo.isPresent()) { veiculo = null; } else{ - veiculo = veiculoRepository.getOne(vagaDTO.getVeiculo_id()); + veiculo = checkVeiculo.get(); } Vaga vaga = vagaRepository.save(vagaMAP.fromDTO(vagaDTO, estacionamento, veiculo)); @@ -68,7 +66,7 @@ public ResponseEntity cadastrar(VagaDTO vagaDTO, Long id) { } } - public ResponseEntity atualizar(Long id, VagaDTO vagaDTO) throws VagaNotFound{ + public ResponseEntity atualizar(Long id, VagaDTO vagaDTO) throws VagaNotFound, VeiculoNotFound { Optional checkVaga = vagaRepository.findById(id); Veiculo veiculo = new Veiculo(); @@ -77,16 +75,18 @@ public ResponseEntity atualizar(Long id, VagaDTO vagaDTO) throws VagaNo if (vagaDTO.getVeiculo_id() != null) { - Optional checkVeiculo = veiculoRepository.findById(vagaDTO.getVeiculo_id()); + Optional checkVeiculo = veiculoService.retornarVeiculo(vagaDTO.getVeiculo_id()); if (checkVeiculo.isPresent()){ - veiculo = veiculoRepository.getOne(vagaDTO.getVeiculo_id()); + veiculo = checkVeiculo.get(); } } vaga.setLivre(vagaDTO.isLivre()); vaga.setVeiculo(veiculo); + vagaRepository.save(vaga); + return ResponseEntity.ok(vagaMAP.toDTO(vaga)); } else { @@ -119,4 +119,42 @@ public VagaDTO detalhar(Long id) throws VagaNotFound{ return vagaMAP.toDTO(vaga); } + + public List listarDeUmEstacionamento(Long id) throws EstacionamentoNotFound{ + Optional estacionamento = estacionamentoService.retornarEstacionamento(id); + + if (estacionamento.isPresent()){ + return vagaRepository.findAllFromEstacionamento(id); + } + else { + throw new EstacionamentoNotFound(); + } + } + + public Optional retornarVaga(Long id) throws VagaNotFound{ + Optional vaga = vagaRepository.findById(id); + + if (vaga.isPresent()){ + return vagaRepository.findById(id); + } + else { + throw new VagaNotFound(); + } + } + + public Vaga cadastrarVaga(Vaga vaga, Long id){ + try { + Optional estacionamento = estacionamentoService.retornarEstacionamento(id); + + if (estacionamento.isPresent()) { + return vagaRepository.save(vaga); + } else { + throw new EstacionamentoNotFound(); + } + } + catch (Exception e) { + log.error(e.toString()); + return null; + } + } } diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java index c83b7c4..483edea 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -18,6 +18,7 @@ import org.springframework.web.util.UriComponentsBuilder; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -28,12 +29,12 @@ public class VeiculoService { private VeiculoRepository veiculoRepository; @Autowired - private VagaRepository vagaRepository; + private VagaService vagaService; private VeiculoMAP veiculoMAP = new VeiculoMAP(); - public List listarTodosOsVeiculos(Long id){ - List vagas = vagaRepository.findAllFromEstacionamento(id); + public List listarTodosOsVeiculos(Long id) throws EstacionamentoNotFound { + List vagas = vagaService.listarDeUmEstacionamento(id); List veiculos = null; @@ -44,16 +45,21 @@ public List listarTodosOsVeiculos(Long id){ return veiculos; } - public List listarVeiculos(Long id){ - List vagas = vagaRepository.findAllFromEstacionamento(id); + public List listarVeiculosDoEstacionamento(Long id) throws EstacionamentoNotFound { + List vagas = vagaService.listarDeUmEstacionamento(id); - List veiculos = null; + List veiculos = Arrays.asList(); Veiculo veiculo; for (Vaga vaga : vagas) { veiculo = vaga.getVeiculo(); - veiculos.add(veiculoMAP.toDTO(veiculo)); + if (veiculos == null){ + + } + else { + veiculos.add(veiculoMAP.toDTO(veiculo)); + } } return veiculos; @@ -64,11 +70,11 @@ public List listarVeiculosDeUmaVaga(Long id) { } public ResponseEntity cadastrarVeiculo(VeiculoDTO veiculoDTO) - throws PlacaFound, UnmatchedType { + throws PlacaFound, UnmatchedType, VagaNotFound { Vaga vaga = new Vaga(); - Optional checkVaga = vagaRepository.findById(veiculoDTO.getVagaId()); + Optional checkVaga = vagaService.retornarVaga(veiculoDTO.getVagaId()); boolean isPlacaFound = ValidatePlaca(veiculoDTO.getPlaca()); @@ -76,7 +82,7 @@ public ResponseEntity cadastrarVeiculo(VeiculoDTO veiculoDTO) boolean isTypeValid = ValidadeType(veiculoDTO.getTipoVeiculo(), checkVaga.get().getTipoVaga()); if (isTypeValid) { - vaga = vagaRepository.getOne(veiculoDTO.getVagaId()); + vaga = checkVaga.get(); } else { throw new UnmatchedType(); @@ -96,7 +102,7 @@ public ResponseEntity cadastrarVeiculo(VeiculoDTO veiculoDTO) } public ResponseEntity atualizarVeiculo(Long id, VeiculoDTO veiculoDTO) - throws VeiculoNotFound { + throws VeiculoNotFound, VagaNotFound { Optional optional = veiculoRepository.findById(id); @@ -108,7 +114,7 @@ public ResponseEntity atualizarVeiculo(Long id, VeiculoDTO veiculoDT veiculo.setModelo(veiculoDTO.getModelo()); veiculo.setPlaca(veiculoDTO.getPlaca()); veiculo.setTipoVeiculo(veiculoDTO.getTipoVeiculo()); - veiculo.setVaga(vagaRepository.findById(veiculoDTO.getVagaId()).get()); + veiculo.setVaga(vagaService.retornarVaga(veiculoDTO.getVagaId()).get()); return ResponseEntity.ok(veiculoMAP.toDTO(veiculo)); } else { @@ -117,11 +123,11 @@ public ResponseEntity atualizarVeiculo(Long id, VeiculoDTO veiculoDT } public ResponseEntity removerVeiculo(@PathVariable Long id) - throws VeiculoNotFound { + throws VeiculoNotFound, VagaNotFound { Optional optional = veiculoRepository.findById(id); if(optional.isPresent()) { - Vaga vaga = vagaRepository.findById(optional.get().getVaga().getId()).get(); + Vaga vaga = vagaService.retornarVaga(optional.get().getVaga().getId()).get(); vaga.setLivre(true); veiculoRepository.deleteById(id); return ResponseEntity.ok().build(); @@ -130,6 +136,15 @@ public ResponseEntity removerVeiculo(@PathVariable Long id) } } + public Optional retornarVeiculo(Long id) throws VeiculoNotFound{ + Optional veiculo = veiculoRepository.findById(id); + + if(veiculo.isPresent()) + return veiculo; + else + throw new VeiculoNotFound(); + } + private boolean ValidatePlaca(String placa){ return veiculoRepository.findByPlaca(placa).isPresent(); } From 0980dfc19443c9e4da1802ee0940589bdda5242c Mon Sep 17 00:00:00 2001 From: Henrico Date: Mon, 6 Jan 2020 16:33:30 -0300 Subject: [PATCH 67/78] Add Security --- pom.xml | 12 ++-- .../hackathonfc/park/bo/EstacionamentoBO.java | 2 +- .../security/SecurityConfiguration.java | 38 +++++++++- .../controller/EstacionamentoController.java | 2 +- .../park/controller/UserController.java | 25 +++++++ .../br/com/hackathonfc/park/dto/TokenDTO.java | 13 ++++ .../br/com/hackathonfc/park/dto/UserDTO.java | 28 ++++++++ .../exception/GlobalExceptionHandler.java | 24 ++++++- .../park/exception/PasswordNotValid.java | 12 ++++ .../park/exception/UsernameNotValid.java | 9 +++ .../com/hackathonfc/park/mapper/UserMAP.java | 17 +++++ .../com/hackathonfc/park/model/Profile.java | 29 ++++++++ .../br/com/hackathonfc/park/model/User.java | 72 +++++++++++++++++++ .../park/repository/UserRepository.java | 10 +++ .../park/service/AuthenticationService.java | 29 ++++++++ .../park/service/TokenService.java | 63 ++++++++++++++++ .../hackathonfc/park/service/UserService.java | 39 ++++++++++ .../park/util/AuthenticationFilter.java | 55 ++++++++++++++ .../park/util/AuthorizationFilter.java | 54 ++++++++++++++ src/main/resources/application.properties | 4 ++ src/main/resources/data.sql | 1 + 21 files changed, 526 insertions(+), 12 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/UserController.java create mode 100644 src/main/java/br/com/hackathonfc/park/dto/TokenDTO.java create mode 100644 src/main/java/br/com/hackathonfc/park/dto/UserDTO.java create mode 100644 src/main/java/br/com/hackathonfc/park/exception/PasswordNotValid.java create mode 100644 src/main/java/br/com/hackathonfc/park/exception/UsernameNotValid.java create mode 100644 src/main/java/br/com/hackathonfc/park/mapper/UserMAP.java create mode 100644 src/main/java/br/com/hackathonfc/park/model/Profile.java create mode 100644 src/main/java/br/com/hackathonfc/park/model/User.java create mode 100644 src/main/java/br/com/hackathonfc/park/repository/UserRepository.java create mode 100644 src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java create mode 100644 src/main/java/br/com/hackathonfc/park/service/TokenService.java create mode 100644 src/main/java/br/com/hackathonfc/park/service/UserService.java create mode 100644 src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java create mode 100644 src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java diff --git a/pom.xml b/pom.xml index 0ea69b2..b151b4c 100644 --- a/pom.xml +++ b/pom.xml @@ -43,12 +43,6 @@ runtime - - org.modelmapper - modelmapper - 2.3.0 - - org.springframework.boot spring-boot-devtools @@ -60,6 +54,12 @@ spring-boot-starter-security + + io.jsonwebtoken + jjwt + 0.9.1 + + io.springfox springfox-swagger2 diff --git a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java index 292d4cb..74bd03b 100644 --- a/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java +++ b/src/main/java/br/com/hackathonfc/park/bo/EstacionamentoBO.java @@ -42,7 +42,7 @@ public ResponseEntity deletar(Long id) throws EstacionamentoNotF return estacionamentoService.deletar(id); } - public EstacionamentoDTO detalharEstacionamento(Long id) { + public EstacionamentoDTO detalharEstacionamento(Long id) throws EstacionamentoNotFound { return estacionamentoService.detalhar(id); } } diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java index d0b1513..362d32f 100644 --- a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java +++ b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java @@ -1,13 +1,23 @@ package br.com.hackathonfc.park.config.security; +import br.com.hackathonfc.park.repository.UserRepository; +import br.com.hackathonfc.park.service.AuthenticationService; +import br.com.hackathonfc.park.service.TokenService; +import br.com.hackathonfc.park.util.AuthenticationFilter; +import br.com.hackathonfc.park.util.AuthorizationFilter; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpMethod; +import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -16,21 +26,43 @@ @EnableWebSecurity public class SecurityConfiguration extends WebSecurityConfigurerAdapter { + @Autowired + private AuthenticationService authenticationService; + + @Autowired + private TokenService tokenService; + + @Autowired + private UserRepository userRepository; + + @Autowired + private UserDetailsService userDetailsService; + + @Override + @Bean + protected AuthenticationManager authenticationManager() throws Exception { + return super.authenticationManager(); + } + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { - super.configure(auth); + auth.userDetailsService(authenticationService).passwordEncoder(new BCryptPasswordEncoder()); } @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() - .antMatchers("/**").permitAll() + .antMatchers(HttpMethod.GET, "/estacionamentos/**").permitAll() .antMatchers("/h2-console/**").permitAll() + .antMatchers("/login").permitAll() .anyRequest().authenticated(); - http.csrf().disable(); + http.csrf().disable().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); http.headers().frameOptions().disable(); + + http.addFilter(new AuthenticationFilter(authenticationManager(), tokenService)); + http.addFilter(new AuthorizationFilter(authenticationManager(), tokenService, userDetailsService, userRepository)); } @Override diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 6d40ea3..2b117ca 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -38,7 +38,7 @@ public class EstacionamentoController { private EstacionamentoBO estacionamentoBO; @GetMapping("/{id}") - public EstacionamentoDTO detalhar(@PathVariable Long id){ + public EstacionamentoDTO detalhar(@PathVariable Long id) throws EstacionamentoNotFound { return estacionamentoBO.detalharEstacionamento(id); } diff --git a/src/main/java/br/com/hackathonfc/park/controller/UserController.java b/src/main/java/br/com/hackathonfc/park/controller/UserController.java new file mode 100644 index 0000000..b17bd46 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/UserController.java @@ -0,0 +1,25 @@ +package br.com.hackathonfc.park.controller; + +import br.com.hackathonfc.park.dto.UserDTO; +import br.com.hackathonfc.park.exception.PasswordNotValid; +import br.com.hackathonfc.park.exception.UsernameNotValid; +import br.com.hackathonfc.park.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +@RestController +@RequestMapping("/signup") +public class UserController { + + @Autowired + private UserService userService; + + @PostMapping + public ResponseEntity register(@RequestBody @Valid UserDTO userDTO) throws UsernameNotValid, PasswordNotValid { + return userService.cadastrar(userDTO); + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/dto/TokenDTO.java b/src/main/java/br/com/hackathonfc/park/dto/TokenDTO.java new file mode 100644 index 0000000..e55337c --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/dto/TokenDTO.java @@ -0,0 +1,13 @@ +package br.com.hackathonfc.park.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class TokenDTO { + + private String token; + + private String type; +} diff --git a/src/main/java/br/com/hackathonfc/park/dto/UserDTO.java b/src/main/java/br/com/hackathonfc/park/dto/UserDTO.java new file mode 100644 index 0000000..3cfeaec --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/dto/UserDTO.java @@ -0,0 +1,28 @@ +package br.com.hackathonfc.park.dto; + +import br.com.hackathonfc.park.model.User; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class UserDTO { + + private Long id; + + @NotEmpty + private String username; + + @NotEmpty + private String password; + + public UserDTO(User user) { + this.id = user.getId(); + this.username = user.getUsername(); + this.password = user.getPassword(); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java b/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java index 460a538..e23c411 100644 --- a/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java +++ b/src/main/java/br/com/hackathonfc/park/exception/GlobalExceptionHandler.java @@ -23,7 +23,9 @@ public class GlobalExceptionHandler { PlacaFound.class, VeiculoNotFound.class, VagaNotFound.class, - UnmatchedType.class + UnmatchedType.class, + PasswordNotValid.class, + UsernameNotValid.class }) @Nullable @@ -67,6 +69,16 @@ else if (ex instanceof UnmatchedType){ UnmatchedType cnpjfe = (UnmatchedType) ex; return handleUnmatchedType(cnpjfe, headers, status, request); } + else if (ex instanceof PasswordNotValid){ + HttpStatus status = HttpStatus.CONFLICT; + PasswordNotValid cnpjfe = (PasswordNotValid) ex; + return handlePasswordNotValid(cnpjfe, headers, status, request); + } + else if (ex instanceof UsernameNotValid){ + HttpStatus status = HttpStatus.CONFLICT; + UsernameNotValid cnpjfe = (UsernameNotValid) ex; + return handleUsernameNotValid(cnpjfe, headers, status, request); + } else { if (LOGGER.isWarnEnabled()) { LOGGER.warn("Exceção desconhecida: " + ex.getClass().getName()); @@ -76,6 +88,16 @@ else if (ex instanceof UnmatchedType){ } } + private ResponseEntity handlePasswordNotValid(PasswordNotValid ex, HttpHeaders headers, HttpStatus status, WebRequest request) { + String error = ex.getMessage(); + return handleExceptionInternal(ex, new ApiError(error), headers, status, request); + } + + private ResponseEntity handleUsernameNotValid(UsernameNotValid ex, HttpHeaders headers, HttpStatus status, WebRequest request) { + String error = ex.getMessage(); + return handleExceptionInternal(ex, new ApiError(error), headers, status, request); + } + protected final ResponseEntity handleCnpjFound(CnpjFound ex, HttpHeaders headers, HttpStatus status, WebRequest request) { String error = ex.getMessage(); diff --git a/src/main/java/br/com/hackathonfc/park/exception/PasswordNotValid.java b/src/main/java/br/com/hackathonfc/park/exception/PasswordNotValid.java new file mode 100644 index 0000000..fd19a0f --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/exception/PasswordNotValid.java @@ -0,0 +1,12 @@ +package br.com.hackathonfc.park.exception; + +import lombok.AllArgsConstructor; + +@AllArgsConstructor +public class PasswordNotValid extends Exception{ + + @Override + public String getMessage() { + return "Senha de usuário inválida!"; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/exception/UsernameNotValid.java b/src/main/java/br/com/hackathonfc/park/exception/UsernameNotValid.java new file mode 100644 index 0000000..d49a9a3 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/exception/UsernameNotValid.java @@ -0,0 +1,9 @@ +package br.com.hackathonfc.park.exception; + +public class UsernameNotValid extends Exception { + + @Override + public String getMessage() { + return "Nome de usuário inválido!"; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/mapper/UserMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/UserMAP.java new file mode 100644 index 0000000..7dc6239 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/mapper/UserMAP.java @@ -0,0 +1,17 @@ +package br.com.hackathonfc.park.mapper; + +import br.com.hackathonfc.park.dto.UserDTO; +import br.com.hackathonfc.park.model.User; +import org.springframework.stereotype.Component; + +@Component +public class UserMAP { + + public User fromDTO(UserDTO userDTO){ + return new User(userDTO); + } + + public UserDTO toDTO(User user) { + return new UserDTO(user); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/model/Profile.java b/src/main/java/br/com/hackathonfc/park/model/Profile.java new file mode 100644 index 0000000..7b1fe25 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/model/Profile.java @@ -0,0 +1,29 @@ +package br.com.hackathonfc.park.model; + +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.security.core.GrantedAuthority; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Data +@NoArgsConstructor +public class Profile implements GrantedAuthority { + + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String name; + + @Override + public String getAuthority() { + return this.name; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/model/User.java b/src/main/java/br/com/hackathonfc/park/model/User.java new file mode 100644 index 0000000..35d8af8 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/model/User.java @@ -0,0 +1,72 @@ +package br.com.hackathonfc.park.model; + +import br.com.hackathonfc.park.dto.UserDTO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +@Entity +@Data +@NoArgsConstructor +@AllArgsConstructor +public class User implements UserDetails { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + private String username; + + private String password; + + @ManyToMany(fetch = FetchType.EAGER) + private List profiles = new ArrayList<>(); + + public User(UserDTO userDTO) { + this.username = userDTO.getUsername(); + this.password = userDTO.getPassword(); + } + + + @Override + public Collection getAuthorities() { + return this.profiles; + } + + @Override + public String getPassword() { + return password; + } + + @Override + public String getUsername() { + return username; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/repository/UserRepository.java b/src/main/java/br/com/hackathonfc/park/repository/UserRepository.java new file mode 100644 index 0000000..600e217 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/repository/UserRepository.java @@ -0,0 +1,10 @@ +package br.com.hackathonfc.park.repository; + +import br.com.hackathonfc.park.model.User; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + +public interface UserRepository extends JpaRepository { + Optional findByUsername(String username); +} diff --git a/src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java b/src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java new file mode 100644 index 0000000..3d9c5e9 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java @@ -0,0 +1,29 @@ +package br.com.hackathonfc.park.service; + +import br.com.hackathonfc.park.model.User; +import br.com.hackathonfc.park.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +public class AuthenticationService implements UserDetailsService { + + @Autowired + private UserRepository repository; + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + Optional user = repository.findByUsername(username); + + if (user.isPresent()) { + return user.get(); + } + + throw new UsernameNotFoundException("Dados inválidos!"); + } +} \ No newline at end of file diff --git a/src/main/java/br/com/hackathonfc/park/service/TokenService.java b/src/main/java/br/com/hackathonfc/park/service/TokenService.java new file mode 100644 index 0000000..261f909 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/service/TokenService.java @@ -0,0 +1,63 @@ +package br.com.hackathonfc.park.service; + +import br.com.hackathonfc.park.model.User; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; + +@Service +public class TokenService { + + @Value("${jwt.expiration}") + private String expiration; + + @Value("${jwt.secret}") + private String secret; + + public static final String AUTHORIZATION = "Authorization"; + public static final String BEARER_ = "Bearer "; + + public String generateToken(Authentication authentication){ + User user= (User) authentication.getPrincipal(); + Date today = new Date(System.currentTimeMillis()); + + Date expirationDate = new Date(today.getTime() + Long.parseLong(expiration)); + + return Jwts.builder() + .setSubject(user.getUsername()) + .signWith(SignatureAlgorithm.HS256, secret.getBytes()) + .setExpiration(expirationDate) + .compact(); + } + + public boolean isTokenValid(String token) { + try { + Jwts.parser().setSigningKey(secret.getBytes()).parseClaimsJws(token); + return true; + } catch (Exception e) { + System.out.println(e); + return false; + } + } + + public String recuperarToken(HttpServletRequest request) { + String token = request.getHeader(AUTHORIZATION); + + if (token == null || token.isEmpty() || !token.startsWith(BEARER_)) { + return null; + } + + return token.substring(7, token.length()); + } + + public String getUsername(String token) { + Claims body = Jwts.parser().setSigningKey(secret.getBytes()).parseClaimsJws(token).getBody(); + return body.getSubject(); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/service/UserService.java b/src/main/java/br/com/hackathonfc/park/service/UserService.java new file mode 100644 index 0000000..d45bb25 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/service/UserService.java @@ -0,0 +1,39 @@ +package br.com.hackathonfc.park.service; + +import br.com.hackathonfc.park.dto.UserDTO; +import br.com.hackathonfc.park.exception.PasswordNotValid; +import br.com.hackathonfc.park.exception.UsernameNotValid; +import br.com.hackathonfc.park.mapper.UserMAP; +import br.com.hackathonfc.park.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +@Service +public class UserService { + + @Autowired + private UserRepository userRepository; + + private UserMAP userMAP; + + + public ResponseEntity cadastrar(UserDTO userDTO) throws UsernameNotValid, PasswordNotValid { + if(ValidatePassword(userDTO.getPassword()) != true) { + throw new PasswordNotValid(); + } else if(ValidateUsername(userDTO.getUsername()) != true){ + throw new UsernameNotValid(); + } else{ + return ResponseEntity.ok(userMAP.toDTO(userRepository.save(userMAP.fromDTO(userDTO)))); + + } + } + + private boolean ValidateUsername(String username){ + return true; + } + + private boolean ValidatePassword(String password){ + return true; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java b/src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java new file mode 100644 index 0000000..6fd7832 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java @@ -0,0 +1,55 @@ +package br.com.hackathonfc.park.util; + +import br.com.hackathonfc.park.dto.UserDTO; +import br.com.hackathonfc.park.model.User; +import br.com.hackathonfc.park.service.TokenService; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; + +public class AuthenticationFilter extends UsernamePasswordAuthenticationFilter { + + private TokenService tokenService; + + private AuthenticationManager authenticationManager; + + public AuthenticationFilter(AuthenticationManager authenticationManager, TokenService tokenService){ + this.authenticationManager = authenticationManager; + this.tokenService = tokenService; + } + + @Override + public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException { + try{ + UserDTO userDTO = new ObjectMapper().readValue(request.getInputStream(), UserDTO.class); + + UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(userDTO.getUsername(), userDTO.getPassword(), new ArrayList<>()); + + Authentication auth = authenticationManager.authenticate(authToken); + + return auth; + + } catch (IOException e){ + throw new RuntimeException(); + } + } + + @Override + protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult) throws IOException, ServletException { + String username = ((User) authResult.getPrincipal()).getUsername(); + + String token = tokenService.generateToken(authResult); + + response.addHeader("Authorization", "Bearer " + token); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java b/src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java new file mode 100644 index 0000000..197298b --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java @@ -0,0 +1,54 @@ +package br.com.hackathonfc.park.util; + +import br.com.hackathonfc.park.model.User; +import br.com.hackathonfc.park.repository.UserRepository; +import br.com.hackathonfc.park.service.TokenService; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.web.authentication.www.BasicAuthenticationFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +public class AuthorizationFilter extends BasicAuthenticationFilter { + + private TokenService tokenService; + + private UserDetailsService userDetailsService; + + private UserRepository userRepository; + + public AuthorizationFilter(AuthenticationManager authenticationManager, TokenService tokenService, UserDetailsService userDetailsService, UserRepository userRepository) { + super(authenticationManager); + this.tokenService = tokenService; + this.userDetailsService = userDetailsService; + this.userRepository = userRepository; + } + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { + String token = tokenService.recuperarToken(request); + + boolean valid = tokenService.isTokenValid(token); + + if (valid) { + UsernamePasswordAuthenticationToken auth = getAuthentication(request, token); + if (auth != null) + SecurityContextHolder.getContext().setAuthentication(auth); + } + + chain.doFilter(request, response); + } + + private UsernamePasswordAuthenticationToken getAuthentication(HttpServletRequest request, String token){ + String username = tokenService.getUsername(token); + UserDetails user = userDetailsService.loadUserByUsername(username); + return new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities()); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 5bed9b2..feef8d3 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -12,4 +12,8 @@ spring.jpa.hibernate.ddl-auto=update spring.h2.console.enabled=true spring.h2.console.path=/h2-console +# jwt +jwt.secret=rm'!@N=Ke!~p8VTA2ZRK~nMDQX5Uvm!m'D&]{@Vr?G;2?XhbC:Qa#9#eMLN\}x3?JR3.2zr~v)gYF^8\:8>:XfB:Ww75N/emt9Yj[bQMNCWwW\J?N,nvH.<2\.r~w]*e~vgak)X"v8H`MH/7"2E`,^k@nL/zBq`}C6tT*cCSVC^c]-L}&/ +jwt.expiration=3600000 + diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 3cc0c41..a1dfea6 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -22,3 +22,4 @@ INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(5, 'Fiat', 'Punto', 'Branco', 'FIAT-6666', 'CARRO', 7) INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(6, 'Harley Davidson', 'Fat Boy 2014', 'Vermelho', 'HARL-1882', 'MOTO', 8) +INSERT INTO USER(id, username, password) VALUES(1, 'admin', '$2a$10$ytMUsX0w0LYTgx5pmonSyugG4ETZJV8n.c.rbBPDbDSAn2.LmMX6S') \ No newline at end of file From 7b156e618385b8a2cee38bb6d47c44517a54f71e Mon Sep 17 00:00:00 2001 From: Henrico Date: Tue, 7 Jan 2020 10:27:24 -0300 Subject: [PATCH 68/78] Add AuthController and Refresh_Token Logic --- .../security/SecurityConfiguration.java | 2 +- .../park/controller/AuthController.java | 28 +++++++++++++++++++ .../park/service/TokenService.java | 5 ++-- .../hackathonfc/park/service/UserService.java | 10 +++++++ .../park/util/AuthenticationFilter.java | 2 +- .../park/util/AuthorizationFilter.java | 5 +--- 6 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/AuthController.java diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java index 362d32f..a6f9f3a 100644 --- a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java +++ b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java @@ -62,7 +62,7 @@ protected void configure(HttpSecurity http) throws Exception { http.headers().frameOptions().disable(); http.addFilter(new AuthenticationFilter(authenticationManager(), tokenService)); - http.addFilter(new AuthorizationFilter(authenticationManager(), tokenService, userDetailsService, userRepository)); + http.addFilter(new AuthorizationFilter(authenticationManager(), tokenService, userDetailsService)); } @Override diff --git a/src/main/java/br/com/hackathonfc/park/controller/AuthController.java b/src/main/java/br/com/hackathonfc/park/controller/AuthController.java new file mode 100644 index 0000000..cfcfd14 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/AuthController.java @@ -0,0 +1,28 @@ +package br.com.hackathonfc.park.controller; + +import br.com.hackathonfc.park.model.User; +import br.com.hackathonfc.park.service.TokenService; +import br.com.hackathonfc.park.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/auth") +public class AuthController { + + @Autowired + private TokenService tokenService; + + @PostMapping("/refresh_token") + public ResponseEntity refreshToken(HttpServletResponse httpServletResponse){ + User user = UserService.authenticated(); + String token = tokenService.generateToken(user.getUsername()); + httpServletResponse.addHeader("Authorization", "Bearer " + token); + return ResponseEntity.noContent().build(); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/service/TokenService.java b/src/main/java/br/com/hackathonfc/park/service/TokenService.java index 261f909..3ce4f8f 100644 --- a/src/main/java/br/com/hackathonfc/park/service/TokenService.java +++ b/src/main/java/br/com/hackathonfc/park/service/TokenService.java @@ -23,14 +23,13 @@ public class TokenService { public static final String AUTHORIZATION = "Authorization"; public static final String BEARER_ = "Bearer "; - public String generateToken(Authentication authentication){ - User user= (User) authentication.getPrincipal(); + public String generateToken(String username){ Date today = new Date(System.currentTimeMillis()); Date expirationDate = new Date(today.getTime() + Long.parseLong(expiration)); return Jwts.builder() - .setSubject(user.getUsername()) + .setSubject(username) .signWith(SignatureAlgorithm.HS256, secret.getBytes()) .setExpiration(expirationDate) .compact(); diff --git a/src/main/java/br/com/hackathonfc/park/service/UserService.java b/src/main/java/br/com/hackathonfc/park/service/UserService.java index d45bb25..899fe6d 100644 --- a/src/main/java/br/com/hackathonfc/park/service/UserService.java +++ b/src/main/java/br/com/hackathonfc/park/service/UserService.java @@ -4,9 +4,11 @@ import br.com.hackathonfc.park.exception.PasswordNotValid; import br.com.hackathonfc.park.exception.UsernameNotValid; import br.com.hackathonfc.park.mapper.UserMAP; +import br.com.hackathonfc.park.model.User; import br.com.hackathonfc.park.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; @Service @@ -29,6 +31,14 @@ public ResponseEntity cadastrar(UserDTO userDTO) throws UsernameNotVali } } + public static User authenticated(){ + try { + return (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + } catch (Exception e){ + return null; + } + } + private boolean ValidateUsername(String username){ return true; } diff --git a/src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java b/src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java index 6fd7832..8e39e56 100644 --- a/src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java +++ b/src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java @@ -48,7 +48,7 @@ public Authentication attemptAuthentication(HttpServletRequest request, HttpServ protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult) throws IOException, ServletException { String username = ((User) authResult.getPrincipal()).getUsername(); - String token = tokenService.generateToken(authResult); + String token = tokenService.generateToken(username); response.addHeader("Authorization", "Bearer " + token); } diff --git a/src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java b/src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java index 197298b..4e9c688 100644 --- a/src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java +++ b/src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java @@ -22,13 +22,10 @@ public class AuthorizationFilter extends BasicAuthenticationFilter { private UserDetailsService userDetailsService; - private UserRepository userRepository; - - public AuthorizationFilter(AuthenticationManager authenticationManager, TokenService tokenService, UserDetailsService userDetailsService, UserRepository userRepository) { + public AuthorizationFilter(AuthenticationManager authenticationManager, TokenService tokenService, UserDetailsService userDetailsService) { super(authenticationManager); this.tokenService = tokenService; this.userDetailsService = userDetailsService; - this.userRepository = userRepository; } @Override From 526fc4d454e767724dd3f7b708bfd19decdd0eb7 Mon Sep 17 00:00:00 2001 From: Henrico Date: Tue, 7 Jan 2020 11:19:49 -0300 Subject: [PATCH 69/78] Add AuthService --- .../security/SecurityConfiguration.java | 6 ++ .../park/controller/AuthController.java | 18 ++++-- .../br/com/hackathonfc/park/dto/EmailDTO.java | 12 ++++ .../br/com/hackathonfc/park/dto/UserDTO.java | 4 +- .../br/com/hackathonfc/park/model/User.java | 6 +- .../park/repository/UserRepository.java | 2 +- .../hackathonfc/park/service/AuthService.java | 60 +++++++++++++++++++ .../park/service/AuthenticationService.java | 4 +- .../park/service/TokenService.java | 9 +++ .../hackathonfc/park/service/UserService.java | 8 +-- .../park/util/AuthenticationFilter.java | 2 +- src/main/resources/data.sql | 2 +- 12 files changed, 115 insertions(+), 18 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/dto/EmailDTO.java create mode 100644 src/main/java/br/com/hackathonfc/park/service/AuthService.java diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java index a6f9f3a..397fafe 100644 --- a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java +++ b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java @@ -18,6 +18,7 @@ import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -44,6 +45,11 @@ protected AuthenticationManager authenticationManager() throws Exception { return super.authenticationManager(); } + @Bean + public BCryptPasswordEncoder bCryptPasswordEncoder() { + return new BCryptPasswordEncoder(); + } + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(authenticationService).passwordEncoder(new BCryptPasswordEncoder()); diff --git a/src/main/java/br/com/hackathonfc/park/controller/AuthController.java b/src/main/java/br/com/hackathonfc/park/controller/AuthController.java index cfcfd14..8f6ccc9 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/AuthController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/AuthController.java @@ -1,11 +1,14 @@ package br.com.hackathonfc.park.controller; +import br.com.hackathonfc.park.dto.EmailDTO; import br.com.hackathonfc.park.model.User; +import br.com.hackathonfc.park.service.AuthService; import br.com.hackathonfc.park.service.TokenService; import br.com.hackathonfc.park.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -18,11 +21,18 @@ public class AuthController { @Autowired private TokenService tokenService; + @Autowired + private AuthService authService; + @PostMapping("/refresh_token") public ResponseEntity refreshToken(HttpServletResponse httpServletResponse){ - User user = UserService.authenticated(); - String token = tokenService.generateToken(user.getUsername()); - httpServletResponse.addHeader("Authorization", "Bearer " + token); - return ResponseEntity.noContent().build(); + return tokenService.refreshToken(httpServletResponse); + } + + @PostMapping("/forgot") + public ResponseEntity forgot(@RequestBody EmailDTO emailDTO){ + return authService.sendNewPassword(emailDTO.getEmail()); } + + } diff --git a/src/main/java/br/com/hackathonfc/park/dto/EmailDTO.java b/src/main/java/br/com/hackathonfc/park/dto/EmailDTO.java new file mode 100644 index 0000000..fd3f0fb --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/dto/EmailDTO.java @@ -0,0 +1,12 @@ +package br.com.hackathonfc.park.dto; + +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +public class EmailDTO { + + private String email; + +} diff --git a/src/main/java/br/com/hackathonfc/park/dto/UserDTO.java b/src/main/java/br/com/hackathonfc/park/dto/UserDTO.java index 3cfeaec..c22bd47 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/UserDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/UserDTO.java @@ -15,14 +15,14 @@ public class UserDTO { private Long id; @NotEmpty - private String username; + private String email; @NotEmpty private String password; public UserDTO(User user) { this.id = user.getId(); - this.username = user.getUsername(); + this.email = user.getUsername(); this.password = user.getPassword(); } } diff --git a/src/main/java/br/com/hackathonfc/park/model/User.java b/src/main/java/br/com/hackathonfc/park/model/User.java index 35d8af8..5495ab9 100644 --- a/src/main/java/br/com/hackathonfc/park/model/User.java +++ b/src/main/java/br/com/hackathonfc/park/model/User.java @@ -22,7 +22,7 @@ public class User implements UserDetails { @GeneratedValue(strategy = GenerationType.AUTO) private Long id; - private String username; + private String email; private String password; @@ -30,7 +30,7 @@ public class User implements UserDetails { private List profiles = new ArrayList<>(); public User(UserDTO userDTO) { - this.username = userDTO.getUsername(); + this.email = userDTO.getEmail(); this.password = userDTO.getPassword(); } @@ -47,7 +47,7 @@ public String getPassword() { @Override public String getUsername() { - return username; + return email; } @Override diff --git a/src/main/java/br/com/hackathonfc/park/repository/UserRepository.java b/src/main/java/br/com/hackathonfc/park/repository/UserRepository.java index 600e217..eaa8c38 100644 --- a/src/main/java/br/com/hackathonfc/park/repository/UserRepository.java +++ b/src/main/java/br/com/hackathonfc/park/repository/UserRepository.java @@ -6,5 +6,5 @@ import java.util.Optional; public interface UserRepository extends JpaRepository { - Optional findByUsername(String username); + Optional findByEmail(String email); } diff --git a/src/main/java/br/com/hackathonfc/park/service/AuthService.java b/src/main/java/br/com/hackathonfc/park/service/AuthService.java new file mode 100644 index 0000000..85d482d --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/service/AuthService.java @@ -0,0 +1,60 @@ +package br.com.hackathonfc.park.service; + +import br.com.hackathonfc.park.model.User; +import br.com.hackathonfc.park.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.stereotype.Service; + +import java.util.Optional; +import java.util.Random; + +@Service +public class AuthService { + + @Autowired + private UserRepository userRepository; + + @Autowired + private BCryptPasswordEncoder bCryptPasswordEncoder; + + private Random random = new Random(); + + public ResponseEntity sendNewPassword(String email) throws UsernameNotFoundException { + Optional checkUser = userRepository.findByEmail(email); + + if (checkUser.isPresent()){ + User user = checkUser.get(); + String newPassword = newPassword(); + System.out.println(newPassword); + user.setPassword(bCryptPasswordEncoder.encode(newPassword)); + userRepository.save(user); + return ResponseEntity.ok(user); + } else { + throw new UsernameNotFoundException("No user found with email " + email); + } + } + + private String newPassword() { + char[] vet = new char[8]; + for (int i = 0; i< 8; i++){ + vet[i] = randomChar(); + } + return new String(vet); + } + + private char randomChar() { + int opt = random.nextInt(3); + + if (opt == 0){ + return (char) (random.nextInt(10) + 48); + } else if (opt == 1){ + return (char) (random.nextInt(26) + 65); + } else { + return (char) (random.nextInt(26) + 97); + } + } + +} diff --git a/src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java b/src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java index 3d9c5e9..24f4c5d 100644 --- a/src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java +++ b/src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java @@ -17,8 +17,8 @@ public class AuthenticationService implements UserDetailsService { private UserRepository repository; @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - Optional user = repository.findByUsername(username); + public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { + Optional user = repository.findByEmail(email); if (user.isPresent()) { return user.get(); diff --git a/src/main/java/br/com/hackathonfc/park/service/TokenService.java b/src/main/java/br/com/hackathonfc/park/service/TokenService.java index 3ce4f8f..29fee21 100644 --- a/src/main/java/br/com/hackathonfc/park/service/TokenService.java +++ b/src/main/java/br/com/hackathonfc/park/service/TokenService.java @@ -5,10 +5,12 @@ import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; import org.springframework.security.core.Authentication; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Date; @Service @@ -35,6 +37,13 @@ public String generateToken(String username){ .compact(); } + public ResponseEntity refreshToken (HttpServletResponse httpServletResponse){ + User user = UserService.authenticated(); + String token = generateToken(user.getUsername()); + httpServletResponse.addHeader("Authorization", "Bearer " + token); + return ResponseEntity.noContent().build(); + } + public boolean isTokenValid(String token) { try { Jwts.parser().setSigningKey(secret.getBytes()).parseClaimsJws(token); diff --git a/src/main/java/br/com/hackathonfc/park/service/UserService.java b/src/main/java/br/com/hackathonfc/park/service/UserService.java index 899fe6d..11bd626 100644 --- a/src/main/java/br/com/hackathonfc/park/service/UserService.java +++ b/src/main/java/br/com/hackathonfc/park/service/UserService.java @@ -21,9 +21,9 @@ public class UserService { public ResponseEntity cadastrar(UserDTO userDTO) throws UsernameNotValid, PasswordNotValid { - if(ValidatePassword(userDTO.getPassword()) != true) { + if(validatePassword(userDTO.getPassword()) != true) { throw new PasswordNotValid(); - } else if(ValidateUsername(userDTO.getUsername()) != true){ + } else if(validateEmail(userDTO.getEmail()) != true){ throw new UsernameNotValid(); } else{ return ResponseEntity.ok(userMAP.toDTO(userRepository.save(userMAP.fromDTO(userDTO)))); @@ -39,11 +39,11 @@ public static User authenticated(){ } } - private boolean ValidateUsername(String username){ + private boolean validateEmail(String email){ return true; } - private boolean ValidatePassword(String password){ + private boolean validatePassword(String password){ return true; } } diff --git a/src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java b/src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java index 8e39e56..bda1f2d 100644 --- a/src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java +++ b/src/main/java/br/com/hackathonfc/park/util/AuthenticationFilter.java @@ -33,7 +33,7 @@ public Authentication attemptAuthentication(HttpServletRequest request, HttpServ try{ UserDTO userDTO = new ObjectMapper().readValue(request.getInputStream(), UserDTO.class); - UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(userDTO.getUsername(), userDTO.getPassword(), new ArrayList<>()); + UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(userDTO.getEmail(), userDTO.getPassword(), new ArrayList<>()); Authentication auth = authenticationManager.authenticate(authToken); diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index a1dfea6..629606d 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -22,4 +22,4 @@ INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(5, 'Fiat', 'Punto', 'Branco', 'FIAT-6666', 'CARRO', 7) INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(6, 'Harley Davidson', 'Fat Boy 2014', 'Vermelho', 'HARL-1882', 'MOTO', 8) -INSERT INTO USER(id, username, password) VALUES(1, 'admin', '$2a$10$ytMUsX0w0LYTgx5pmonSyugG4ETZJV8n.c.rbBPDbDSAn2.LmMX6S') \ No newline at end of file +INSERT INTO USER(id, email, password) VALUES(1, 'admin', '$2a$10$ytMUsX0w0LYTgx5pmonSyugG4ETZJV8n.c.rbBPDbDSAn2.LmMX6S') \ No newline at end of file From ef1b713a4f1551a8410762d9a50d454489942131 Mon Sep 17 00:00:00 2001 From: Henrico Date: Tue, 7 Jan 2020 16:41:13 -0300 Subject: [PATCH 70/78] Add Perfil, DbService, Application-test.properties --- .../com/hackathonfc/park/ParkApplication.java | 1 - .../park/config/profiles/TestConfig.java | 22 ++++++++ .../security/SecurityConfiguration.java | 4 ++ .../park/controller/AuthController.java | 1 - .../controller/EstacionamentoController.java | 3 +- .../park/controller/UserController.java | 18 ++++++- .../park/dto/EstacionamentoDTO.java | 2 +- .../br/com/hackathonfc/park/dto/VagaDTO.java | 1 + .../park/dto/VagaDTOSemEstacionamento.java | 6 +-- .../com/hackathonfc/park/dto/VeiculoDTO.java | 6 +-- .../park/{model => enums}/TipoVaga.java | 2 +- .../park/{model => enums}/TipoVeiculo.java | 2 +- .../park/model/Estacionamento.java | 12 ++++- .../park/model/{Profile.java => Perfil.java} | 15 +++--- .../br/com/hackathonfc/park/model/User.java | 25 ++++----- .../br/com/hackathonfc/park/model/Vaga.java | 16 +++--- .../com/hackathonfc/park/model/Veiculo.java | 14 +++-- .../repository/EstacionamentoRepository.java | 2 +- .../park/repository/PerfilRepository.java | 7 +++ .../hackathonfc/park/service/AuthService.java | 2 +- .../park/service/AuthenticationService.java | 16 ++++-- .../hackathonfc/park/service/DbService.java | 54 +++++++++++++++++++ .../park/service/EstacionamentoService.java | 11 ++-- .../park/service/TokenService.java | 1 - .../hackathonfc/park/service/UserService.java | 54 +++++++++++++++++-- .../park/service/VeiculoService.java | 9 +--- .../park/util/AuthorizationFilter.java | 2 - src/main/resources/application-dev.properties | 14 +++++ .../resources/application-test.properties | 19 +++++++ src/main/resources/application.properties | 18 +------ src/main/resources/data.sql | 14 +++-- 31 files changed, 276 insertions(+), 97 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/config/profiles/TestConfig.java rename src/main/java/br/com/hackathonfc/park/{model => enums}/TipoVaga.java (53%) rename src/main/java/br/com/hackathonfc/park/{model => enums}/TipoVeiculo.java (54%) rename src/main/java/br/com/hackathonfc/park/model/{Profile.java => Perfil.java} (69%) create mode 100644 src/main/java/br/com/hackathonfc/park/repository/PerfilRepository.java create mode 100644 src/main/java/br/com/hackathonfc/park/service/DbService.java create mode 100644 src/main/resources/application-dev.properties create mode 100644 src/main/resources/application-test.properties diff --git a/src/main/java/br/com/hackathonfc/park/ParkApplication.java b/src/main/java/br/com/hackathonfc/park/ParkApplication.java index e46c23e..c464f74 100644 --- a/src/main/java/br/com/hackathonfc/park/ParkApplication.java +++ b/src/main/java/br/com/hackathonfc/park/ParkApplication.java @@ -9,5 +9,4 @@ public class ParkApplication { public static void main(String[] args) { SpringApplication.run(ParkApplication.class, args); } - } diff --git a/src/main/java/br/com/hackathonfc/park/config/profiles/TestConfig.java b/src/main/java/br/com/hackathonfc/park/config/profiles/TestConfig.java new file mode 100644 index 0000000..faa131b --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/config/profiles/TestConfig.java @@ -0,0 +1,22 @@ +package br.com.hackathonfc.park.config.profiles; + +import br.com.hackathonfc.park.service.DbService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; + +@Configuration +@Profile("test") +public class TestConfig { + + @Autowired + private DbService dbService; + + @Bean + public boolean instantiateDatebase(){ + dbService.instantiateTestDatabase(); + + return true; + } +} diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java index 397fafe..38d0932 100644 --- a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java +++ b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java @@ -11,6 +11,7 @@ import org.springframework.http.HttpMethod; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; @@ -25,6 +26,7 @@ @Configuration @EnableWebSecurity +@EnableGlobalMethodSecurity(prePostEnabled = true) public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Autowired @@ -61,6 +63,8 @@ protected void configure(HttpSecurity http) throws Exception { .antMatchers(HttpMethod.GET, "/estacionamentos/**").permitAll() .antMatchers("/h2-console/**").permitAll() .antMatchers("/login").permitAll() + .antMatchers("/signup").permitAll() + .antMatchers("/auth/**").permitAll() .anyRequest().authenticated(); http.csrf().disable().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); diff --git a/src/main/java/br/com/hackathonfc/park/controller/AuthController.java b/src/main/java/br/com/hackathonfc/park/controller/AuthController.java index 8f6ccc9..6296977 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/AuthController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/AuthController.java @@ -4,7 +4,6 @@ import br.com.hackathonfc.park.model.User; import br.com.hackathonfc.park.service.AuthService; import br.com.hackathonfc.park.service.TokenService; -import br.com.hackathonfc.park.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 2b117ca..156947b 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -15,6 +15,7 @@ import org.springframework.data.domain.Sort.Direction; import org.springframework.data.web.PageableDefault; import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; @@ -56,7 +57,7 @@ public ResponseEntity cadastrar(@RequestBody @Valid Estaciona public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid EstacionamentoDTO estacionamentoDTO) throws EstacionamentoNotFound { return estacionamentoBO.atualizar(id, estacionamentoDTO); } - + @DeleteMapping("/{id}") public ResponseEntity remover(@PathVariable Long id) throws EstacionamentoNotFound { return estacionamentoBO.deletar(id); diff --git a/src/main/java/br/com/hackathonfc/park/controller/UserController.java b/src/main/java/br/com/hackathonfc/park/controller/UserController.java index b17bd46..ebb1b6a 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/UserController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/UserController.java @@ -6,12 +6,13 @@ import br.com.hackathonfc.park.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @RestController -@RequestMapping("/signup") +@RequestMapping("/user") public class UserController { @Autowired @@ -22,4 +23,19 @@ public ResponseEntity register(@RequestBody @Valid UserDTO userDTO) thr return userService.cadastrar(userDTO); } + @GetMapping("/{id}") + public ResponseEntity detalhar(@PathVariable Long id){ + return userService.detalhar(id); + } + + @PutMapping("/{id}") + public ResponseEntity atualizar(@PathVariable Long id, @RequestBody UserDTO userDTO){ + return userService.atualizar(id, userDTO); + } + + @DeleteMapping("/{id}") + public ResponseEntity deletar(@PathVariable Long id){ + return userService.remover(id); + } + } diff --git a/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java b/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java index 8eed4f4..2ff7c18 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java @@ -20,7 +20,7 @@ public class EstacionamentoDTO { private String nome; @NotNull - private int cnpj; + private String cnpj; @NotEmpty private String endereco; diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java index 2bdca72..a890c8d 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTO.java @@ -1,5 +1,6 @@ package br.com.hackathonfc.park.dto; +import br.com.hackathonfc.park.enums.TipoVaga; import br.com.hackathonfc.park.model.*; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java index 76b33c4..01f5e87 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VagaDTOSemEstacionamento.java @@ -1,15 +1,11 @@ package br.com.hackathonfc.park.dto; -import br.com.hackathonfc.park.model.TipoVaga; -import br.com.hackathonfc.park.model.TipoVeiculo; -import br.com.hackathonfc.park.model.Vaga; +import br.com.hackathonfc.park.enums.TipoVaga; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import javax.persistence.Id; -import javax.validation.constraints.NotNull; -import java.time.LocalDateTime; @Data @AllArgsConstructor diff --git a/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java b/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java index 3fbfc9f..10aa94d 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/VeiculoDTO.java @@ -1,15 +1,11 @@ package br.com.hackathonfc.park.dto; -import java.util.List; -import java.util.stream.Collectors; - -import br.com.hackathonfc.park.model.TipoVeiculo; +import br.com.hackathonfc.park.enums.TipoVeiculo; import br.com.hackathonfc.park.model.Veiculo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; diff --git a/src/main/java/br/com/hackathonfc/park/model/TipoVaga.java b/src/main/java/br/com/hackathonfc/park/enums/TipoVaga.java similarity index 53% rename from src/main/java/br/com/hackathonfc/park/model/TipoVaga.java rename to src/main/java/br/com/hackathonfc/park/enums/TipoVaga.java index 31cca95..879553c 100644 --- a/src/main/java/br/com/hackathonfc/park/model/TipoVaga.java +++ b/src/main/java/br/com/hackathonfc/park/enums/TipoVaga.java @@ -1,4 +1,4 @@ -package br.com.hackathonfc.park.model; +package br.com.hackathonfc.park.enums; public enum TipoVaga { diff --git a/src/main/java/br/com/hackathonfc/park/model/TipoVeiculo.java b/src/main/java/br/com/hackathonfc/park/enums/TipoVeiculo.java similarity index 54% rename from src/main/java/br/com/hackathonfc/park/model/TipoVeiculo.java rename to src/main/java/br/com/hackathonfc/park/enums/TipoVeiculo.java index 0e32258..af58cdc 100644 --- a/src/main/java/br/com/hackathonfc/park/model/TipoVeiculo.java +++ b/src/main/java/br/com/hackathonfc/park/enums/TipoVeiculo.java @@ -1,4 +1,4 @@ -package br.com.hackathonfc.park.model; +package br.com.hackathonfc.park.enums; public enum TipoVeiculo { diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java index a452042..d108c87 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -22,7 +22,7 @@ public class Estacionamento { private String nome; - private int cnpj; + private String cnpj; private String endereco; @@ -46,4 +46,14 @@ public Estacionamento(EstacionamentoDTO estacionamentoDTO) { this.vagasMotos = estacionamentoDTO.getVagasMotos(); this.precoHora = estacionamentoDTO.getPrecoHora(); } + + public Estacionamento(String s, String s1, String s2, int i, int i1, int i2, double v) { + this.nome = s; + this.cnpj = s1; + this.endereco = s2; + this.telefone = i; + this.vagasMotos = i1; + this.vagasCarros = i2; + this.precoHora = v; + } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Profile.java b/src/main/java/br/com/hackathonfc/park/model/Perfil.java similarity index 69% rename from src/main/java/br/com/hackathonfc/park/model/Profile.java rename to src/main/java/br/com/hackathonfc/park/model/Perfil.java index 7b1fe25..aa89cd3 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Profile.java +++ b/src/main/java/br/com/hackathonfc/park/model/Perfil.java @@ -10,20 +10,21 @@ import javax.persistence.Id; @Entity -@Data @NoArgsConstructor -public class Profile implements GrantedAuthority { - - private static final long serialVersionUID = 1L; +@Data +public class Perfil implements GrantedAuthority { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @Override public String getAuthority() { - return this.name; + return name; + } + + public Perfil(String name){ + this.name = name; } } diff --git a/src/main/java/br/com/hackathonfc/park/model/User.java b/src/main/java/br/com/hackathonfc/park/model/User.java index 5495ab9..97394b9 100644 --- a/src/main/java/br/com/hackathonfc/park/model/User.java +++ b/src/main/java/br/com/hackathonfc/park/model/User.java @@ -1,25 +1,19 @@ package br.com.hackathonfc.park.model; import br.com.hackathonfc.park.dto.UserDTO; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import javax.persistence.*; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; +import java.util.*; -@Entity @Data +@Entity @NoArgsConstructor -@AllArgsConstructor public class User implements UserDetails { - @Id - @GeneratedValue(strategy = GenerationType.AUTO) + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String email; @@ -27,17 +21,23 @@ public class User implements UserDetails { private String password; @ManyToMany(fetch = FetchType.EAGER) - private List profiles = new ArrayList<>(); + private List perfis = new ArrayList<>(); public User(UserDTO userDTO) { + this.id = userDTO.getId(); this.email = userDTO.getEmail(); this.password = userDTO.getPassword(); } + public User(String email, String password, List perfis) { + this.email = email; + this.password = password; + this.perfis = perfis; + } @Override public Collection getAuthorities() { - return this.profiles; + return this.perfis; } @Override @@ -69,4 +69,5 @@ public boolean isCredentialsNonExpired() { public boolean isEnabled() { return true; } + } diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index 7dd473d..219013b 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -1,17 +1,10 @@ package br.com.hackathonfc.park.model; import br.com.hackathonfc.park.dto.VagaDTO; -import br.com.hackathonfc.park.repository.EstacionamentoRepository; -import br.com.hackathonfc.park.repository.VagaRepository; -import br.com.hackathonfc.park.repository.VeiculoRepository; +import br.com.hackathonfc.park.enums.TipoVaga; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; - -import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.List; import javax.persistence.*; @@ -48,4 +41,11 @@ public Vaga(Estacionamento estacionamento, TipoVaga tipoVaga){ this.estacionamento = estacionamento; this.tipoVaga = tipoVaga; } + + public Vaga(Estacionamento estacionamento, Boolean livre, TipoVaga tipoVaga, Veiculo veiculo){ + this.estacionamento = estacionamento; + this.livre = livre; + this.tipoVaga = tipoVaga; + this.veiculo = veiculo; + } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java index 84f24f0..68035fd 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Veiculo.java +++ b/src/main/java/br/com/hackathonfc/park/model/Veiculo.java @@ -1,13 +1,10 @@ package br.com.hackathonfc.park.model; import br.com.hackathonfc.park.dto.VeiculoDTO; -import br.com.hackathonfc.park.exception.EstacionamentoNotFound; -import br.com.hackathonfc.park.repository.VagaRepository; -import br.com.hackathonfc.park.service.VagaService; +import br.com.hackathonfc.park.enums.TipoVeiculo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; import javax.persistence.*; @@ -44,4 +41,13 @@ public Veiculo(VeiculoDTO veiculoDTO, Vaga vaga){ this.tipoVeiculo = veiculoDTO.getTipoVeiculo(); this.vaga = vaga; } + + public Veiculo(String marca, String modelo, String cor, String placa, TipoVeiculo tipoVeiculo, Vaga vaga){ + this.marca = marca; + this.modelo = modelo; + this.cor = cor; + this.placa = placa; + this.tipoVeiculo = tipoVeiculo; + this.vaga = vaga; + } } diff --git a/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java b/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java index a793ab5..5fe2cde 100644 --- a/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java +++ b/src/main/java/br/com/hackathonfc/park/repository/EstacionamentoRepository.java @@ -12,7 +12,7 @@ public interface EstacionamentoRepository extends JpaRepository findByCnpj(Integer cnpj); + Optional findByCnpj(String cnpj); Optional findByNome(String nome); } diff --git a/src/main/java/br/com/hackathonfc/park/repository/PerfilRepository.java b/src/main/java/br/com/hackathonfc/park/repository/PerfilRepository.java new file mode 100644 index 0000000..e5e7aa7 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/repository/PerfilRepository.java @@ -0,0 +1,7 @@ +package br.com.hackathonfc.park.repository; + +import br.com.hackathonfc.park.model.Perfil; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface PerfilRepository extends JpaRepository { +} diff --git a/src/main/java/br/com/hackathonfc/park/service/AuthService.java b/src/main/java/br/com/hackathonfc/park/service/AuthService.java index 85d482d..c29d401 100644 --- a/src/main/java/br/com/hackathonfc/park/service/AuthService.java +++ b/src/main/java/br/com/hackathonfc/park/service/AuthService.java @@ -22,7 +22,7 @@ public class AuthService { private Random random = new Random(); - public ResponseEntity sendNewPassword(String email) throws UsernameNotFoundException { + public ResponseEntitysendNewPassword(String email) throws UsernameNotFoundException { Optional checkUser = userRepository.findByEmail(email); if (checkUser.isPresent()){ diff --git a/src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java b/src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java index 24f4c5d..25b4fd9 100644 --- a/src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java +++ b/src/main/java/br/com/hackathonfc/park/service/AuthenticationService.java @@ -1,6 +1,8 @@ package br.com.hackathonfc.park.service; +import br.com.hackathonfc.park.model.Perfil; import br.com.hackathonfc.park.model.User; +import br.com.hackathonfc.park.repository.PerfilRepository; import br.com.hackathonfc.park.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UserDetails; @@ -8,20 +10,26 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Optional; @Service public class AuthenticationService implements UserDetailsService { @Autowired - private UserRepository repository; + private UserRepository userRepository; + + @Autowired + private PerfilRepository perfilRepository; @Override public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { - Optional user = repository.findByEmail(email); + Optional checkUser= userRepository.findByEmail(email); + List perfis = perfilRepository.findAll(); - if (user.isPresent()) { - return user.get(); + if (checkUser.isPresent()) { + User user = checkUser.get(); + return new User(user.getEmail(), user.getPassword(), perfis); } throw new UsernameNotFoundException("Dados inválidos!"); diff --git a/src/main/java/br/com/hackathonfc/park/service/DbService.java b/src/main/java/br/com/hackathonfc/park/service/DbService.java new file mode 100644 index 0000000..fc82265 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/service/DbService.java @@ -0,0 +1,54 @@ +package br.com.hackathonfc.park.service; + +import br.com.hackathonfc.park.enums.TipoVaga; +import br.com.hackathonfc.park.enums.TipoVeiculo; +import br.com.hackathonfc.park.model.*; +import br.com.hackathonfc.park.repository.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class DbService { + + @Autowired + private EstacionamentoRepository estacionamentoRepository; + + @Autowired + private VagaRepository vagaRepository; + + @Autowired + private VeiculoRepository veiculoRepository; + + @Autowired + private UserRepository userRepository; + + @Autowired + private PerfilRepository perfilRepository; + + public void instantiateTestDatabase(){ + Estacionamento estacionamento = new Estacionamento("Estacionamento Instânciado", "1234556", "Rua Doutor Fulano, 505 - Aparecida, Santos/SP", 123456, 4, 4, 8.50); + + Perfil perfil1 = new Perfil("ROLE_ADMIN"); + Perfil perfil2 = new Perfil("ROLE_USER"); + + Vaga vaga = new Vaga(estacionamento, true, TipoVaga.CARRO, null); + Vaga vaga2 = new Vaga(estacionamento, true, TipoVaga.MOTO, null); + + Veiculo veiculo = new Veiculo("Ford", "Focus", "Preto", "XXXX-4444", TipoVeiculo.CARRO, vaga); + Veiculo veiculo2 = new Veiculo("BMW", "Tiger", "Preto", "XXXX-5555", TipoVeiculo.MOTO, vaga2); + + List perfis = perfilRepository.findAll(); + User user = new User("henrico@gmail.com", "admin", perfis); + + estacionamentoRepository.save(estacionamento); + perfilRepository.save(perfil1); + perfilRepository.save(perfil2); + vagaRepository.save(vaga); + vagaRepository.save(vaga2); + veiculoRepository.save(veiculo); + veiculoRepository.save(veiculo2); + userRepository.save(user); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java index 528e786..bb12f18 100644 --- a/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/EstacionamentoService.java @@ -1,16 +1,14 @@ package br.com.hackathonfc.park.service; -import br.com.hackathonfc.park.controller.EstacionamentoController; import br.com.hackathonfc.park.dto.EstacionamentoDTO; import br.com.hackathonfc.park.exception.CnpjFound; import br.com.hackathonfc.park.exception.EstacionamentoNotFound; import br.com.hackathonfc.park.exception.NomeFound; import br.com.hackathonfc.park.mapper.EstacionamentoMAP; import br.com.hackathonfc.park.model.Estacionamento; -import br.com.hackathonfc.park.model.TipoVaga; +import br.com.hackathonfc.park.enums.TipoVaga; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.repository.EstacionamentoRepository; -import br.com.hackathonfc.park.repository.VagaRepository; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; @@ -18,13 +16,12 @@ import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; -import static br.com.hackathonfc.park.model.TipoVaga.*; -import static br.com.hackathonfc.park.model.TipoVaga.MOTO; +import static br.com.hackathonfc.park.enums.TipoVaga.*; +import static br.com.hackathonfc.park.enums.TipoVaga.MOTO; @Service @Slf4j @@ -129,7 +126,7 @@ public Optional retornarEstacionamento(Long id) throws Estaciona throw new EstacionamentoNotFound(); } - public boolean validateCnpj(int cnpj){ + public boolean validateCnpj(String cnpj){ return estacionamentoRepository.findByCnpj(cnpj).isPresent(); } diff --git a/src/main/java/br/com/hackathonfc/park/service/TokenService.java b/src/main/java/br/com/hackathonfc/park/service/TokenService.java index 29fee21..c532b8c 100644 --- a/src/main/java/br/com/hackathonfc/park/service/TokenService.java +++ b/src/main/java/br/com/hackathonfc/park/service/TokenService.java @@ -6,7 +6,6 @@ import io.jsonwebtoken.SignatureAlgorithm; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; -import org.springframework.security.core.Authentication; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; diff --git a/src/main/java/br/com/hackathonfc/park/service/UserService.java b/src/main/java/br/com/hackathonfc/park/service/UserService.java index 11bd626..6c47e23 100644 --- a/src/main/java/br/com/hackathonfc/park/service/UserService.java +++ b/src/main/java/br/com/hackathonfc/park/service/UserService.java @@ -9,8 +9,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; +import java.util.Optional; + @Service public class UserService { @@ -19,7 +22,6 @@ public class UserService { private UserMAP userMAP; - public ResponseEntity cadastrar(UserDTO userDTO) throws UsernameNotValid, PasswordNotValid { if(validatePassword(userDTO.getPassword()) != true) { throw new PasswordNotValid(); @@ -27,7 +29,41 @@ public ResponseEntity cadastrar(UserDTO userDTO) throws UsernameNotVali throw new UsernameNotValid(); } else{ return ResponseEntity.ok(userMAP.toDTO(userRepository.save(userMAP.fromDTO(userDTO)))); + } + } + + public ResponseEntity detalhar(Long id) throws UsernameNotFoundException{ + Optional checkUser = userRepository.findById(id); + + if(checkUser.isPresent()){ + return ResponseEntity.ok(userMAP.toDTO(checkUser.get())); + } else { + throw new UsernameNotFoundException("Usuário não encontrado no sistema!"); + } + } + + public ResponseEntity atualizar(Long id, UserDTO userDTO) throws UsernameNotFoundException{ + Optional checkUser = userRepository.findById(id); + if(checkUser.isPresent()){ + User user = checkUser.get(); + user.setEmail(userDTO.getEmail()); + user.setPassword(userDTO.getPassword()); + userRepository.save(user); + return ResponseEntity.ok(userMAP.toDTO(user)); + } else { + throw new UsernameNotFoundException("Usuário não encontrado no sistema!"); + } + } + + public ResponseEntity remover(Long id) throws UsernameNotFoundException{ + Optional checkUser = userRepository.findById(id); + + if (checkUser.isPresent()){ + userRepository.deleteById(id); + return ResponseEntity.ok().build(); + } else{ + throw new UsernameNotFoundException("Usuário não encontrado no sistema!"); } } @@ -39,11 +75,21 @@ public static User authenticated(){ } } - private boolean validateEmail(String email){ - return true; + private boolean validateEmail(String email) throws UsernameNotValid { + Optional checkUser = userRepository.findByEmail(email); + + if (checkUser.isPresent()){ + return false; + } else { + return true; + } } private boolean validatePassword(String password){ - return true; + if (password == null || password.isEmpty() || password.length() < 8){ + return false; + } else { + return true; + } } } diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java index 483edea..7b769ab 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -1,23 +1,18 @@ package br.com.hackathonfc.park.service; -import br.com.hackathonfc.park.dto.EstacionamentoDTO; import br.com.hackathonfc.park.dto.VeiculoDTO; import br.com.hackathonfc.park.exception.*; import br.com.hackathonfc.park.mapper.VeiculoMAP; -import br.com.hackathonfc.park.model.TipoVaga; -import br.com.hackathonfc.park.model.TipoVeiculo; +import br.com.hackathonfc.park.enums.TipoVaga; +import br.com.hackathonfc.park.enums.TipoVeiculo; import br.com.hackathonfc.park.model.Vaga; import br.com.hackathonfc.park.model.Veiculo; -import br.com.hackathonfc.park.repository.VagaRepository; import br.com.hackathonfc.park.repository.VeiculoRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.util.UriComponentsBuilder; -import javax.validation.Valid; import java.util.Arrays; import java.util.List; import java.util.Optional; diff --git a/src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java b/src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java index 4e9c688..09e71c1 100644 --- a/src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java +++ b/src/main/java/br/com/hackathonfc/park/util/AuthorizationFilter.java @@ -1,7 +1,5 @@ package br.com.hackathonfc.park.util; -import br.com.hackathonfc.park.model.User; -import br.com.hackathonfc.park.repository.UserRepository; import br.com.hackathonfc.park.service.TokenService; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties new file mode 100644 index 0000000..b56eaa0 --- /dev/null +++ b/src/main/resources/application-dev.properties @@ -0,0 +1,14 @@ +# data source +spring.datasource.url=jdbc:mysql://localhost:3306/curso_spring +spring.datasource.username=root +spring.datasource.password= + +#jpa +spring.jpa.hibernate.ddl-auto=create +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.format_sql=true +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect + +# jwt +jwt.secret=rm'!@N=Ke!~p8VTA2ZRK~nMDQX5Uvm!m'D&]{@Vr?G;2?XhbC:Qa#9#eMLN\}x3?JR3.2zr~v)gYF^8\:8>:XfB:Ww75N/emt9Yj[bQMNCWwW\J?N,nvH.<2\.r~w]*e~vgak)X"v8H`MH/7"2E`,^k@nL/zBq`}C6tT*cCSVC^c]-L}&/ +jwt.expiration=3600000 \ No newline at end of file diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties new file mode 100644 index 0000000..dc9b168 --- /dev/null +++ b/src/main/resources/application-test.properties @@ -0,0 +1,19 @@ +# data source +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.url=jdbc:h2:mem:parkDb +spring.datasource.username=sa +spring.datasource.password= + +# jpa +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.format_sql=true +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.hibernate.ddl-auto=update + +# h2 +spring.h2.console.enabled=true +spring.h2.console.path=/h2-console + +# jwt +jwt.secret=rm'!@N=Ke!~p8VTA2ZRK~nMDQX5Uvm!m'D&]{@Vr?G;2?XhbC:Qa#9#eMLN\}x3?JR3.2zr~v)gYF^8\:8>:XfB:Ww75N/emt9Yj[bQMNCWwW\J?N,nvH.<2\.r~w]*e~vgak)X"v8H`MH/7"2E`,^k@nL/zBq`}C6tT*cCSVC^c]-L}&/ +jwt.expiration=3600000 \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index feef8d3..ff95ca4 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,19 +1,3 @@ -# data source -spring.datasource.driverClassName=org.h2.Driver -spring.datasource.url=jdbc:h2:mem:parkDb -spring.datasource.username=sa -spring.datasource.password= - -# jpa -spring.jpa.database-platform=org.hibernate.dialect.H2Dialect -spring.jpa.hibernate.ddl-auto=update - -# h2 -spring.h2.console.enabled=true -spring.h2.console.path=/h2-console - -# jwt -jwt.secret=rm'!@N=Ke!~p8VTA2ZRK~nMDQX5Uvm!m'D&]{@Vr?G;2?XhbC:Qa#9#eMLN\}x3?JR3.2zr~v)gYF^8\:8>:XfB:Ww75N/emt9Yj[bQMNCWwW\J?N,nvH.<2\.r~w]*e~vgak)X"v8H`MH/7"2E`,^k@nL/zBq`}C6tT*cCSVC^c]-L}&/ -jwt.expiration=3600000 +spring.profiles.active=test diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 629606d..83a6cef 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -12,14 +12,20 @@ INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, false, 'CARRO') INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, false, 'MOTO') INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, true, 'MOTO') - INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(1, 'Ford', 'Mustang', 'Preto', 'FORD-4444', 'CARRO', 1) INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(2, 'BMW', 'S1000RR', 'Vermelho', 'MALB-6666', 'MOTO', 3) - INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(3, 'Chevrolet', 'Cruze', 'Prata', 'VVVV-6969', 'CARRO', 4) INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(4, 'Honda', 'PCX', 'Branco', 'HOND-6372', 'MOTO', 5) - INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(5, 'Fiat', 'Punto', 'Branco', 'FIAT-6666', 'CARRO', 7) INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(6, 'Harley Davidson', 'Fat Boy 2014', 'Vermelho', 'HARL-1882', 'MOTO', 8) -INSERT INTO USER(id, email, password) VALUES(1, 'admin', '$2a$10$ytMUsX0w0LYTgx5pmonSyugG4ETZJV8n.c.rbBPDbDSAn2.LmMX6S') \ No newline at end of file +INSERT INTO USER(id, email, password) VALUES (1, 'admin@gmail.com', '$2a$10$5O.y9yx5N7nzERS.D2.Boe1mndKxC97DwlVR28H2dEUAcI08myG2.') +INSERT INTO USER(id, email, password) VALUES (2, 'ana@gmail.com', '$2a$10$5O.y9yx5N7nzERS.D2.Boe1mndKxC97DwlVR28H2dEUAcI08myG2.') +INSERT INTO USER(id, email, password) VALUES (3, 'joao@gmail.com', '$2a$10$5O.y9yx5N7nzERS.D2.Boe1mndKxC97DwlVR28H2dEUAcI08myG2.') + +INSERT INTO PERFIL(id, name) VALUES(1, 'ADMIN') +INSERT INTO PERFIL(id, name) VALUES(2, 'USER') + +INSERT INTO USER_PERFIS(user_id, perfis_id) VALUES(1, 1) +INSERT INTO USER_PERFIS(user_id, perfis_id) VALUES(2, 2) +INSERT INTO USER_PERFIS(user_id, perfis_id) VALUES(3, 2) \ No newline at end of file From f5ce28197664ca9d236294b99e8f65e2090b703a Mon Sep 17 00:00:00 2001 From: Henrico Date: Wed, 8 Jan 2020 10:29:59 -0300 Subject: [PATCH 71/78] Fix somethings --- .../park/config/security/SecurityConfiguration.java | 1 + .../hackathonfc/park/controller/UserController.java | 2 +- .../java/br/com/hackathonfc/park/dto/UserDTO.java | 2 +- .../java/br/com/hackathonfc/park/model/User.java | 5 +++++ .../br/com/hackathonfc/park/service/DbService.java | 7 ++++++- .../br/com/hackathonfc/park/service/UserService.java | 12 ++++++++---- 6 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java index 38d0932..d0a32e8 100644 --- a/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java +++ b/src/main/java/br/com/hackathonfc/park/config/security/SecurityConfiguration.java @@ -65,6 +65,7 @@ protected void configure(HttpSecurity http) throws Exception { .antMatchers("/login").permitAll() .antMatchers("/signup").permitAll() .antMatchers("/auth/**").permitAll() + .antMatchers("/user/**").permitAll() .anyRequest().authenticated(); http.csrf().disable().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); diff --git a/src/main/java/br/com/hackathonfc/park/controller/UserController.java b/src/main/java/br/com/hackathonfc/park/controller/UserController.java index ebb1b6a..4743e96 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/UserController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/UserController.java @@ -24,7 +24,7 @@ public ResponseEntity register(@RequestBody @Valid UserDTO userDTO) thr } @GetMapping("/{id}") - public ResponseEntity detalhar(@PathVariable Long id){ + public UserDTO detalhar(@PathVariable Long id){ return userService.detalhar(id); } diff --git a/src/main/java/br/com/hackathonfc/park/dto/UserDTO.java b/src/main/java/br/com/hackathonfc/park/dto/UserDTO.java index c22bd47..4245997 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/UserDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/UserDTO.java @@ -22,7 +22,7 @@ public class UserDTO { public UserDTO(User user) { this.id = user.getId(); - this.email = user.getUsername(); + this.email = user.getEmail(); this.password = user.getPassword(); } } diff --git a/src/main/java/br/com/hackathonfc/park/model/User.java b/src/main/java/br/com/hackathonfc/park/model/User.java index 97394b9..3d33cda 100644 --- a/src/main/java/br/com/hackathonfc/park/model/User.java +++ b/src/main/java/br/com/hackathonfc/park/model/User.java @@ -35,6 +35,11 @@ public User(String email, String password, List perfis) { this.perfis = perfis; } + public User(String email, String password) { + this.email = email; + this.password = password; + } + @Override public Collection getAuthorities() { return this.perfis; diff --git a/src/main/java/br/com/hackathonfc/park/service/DbService.java b/src/main/java/br/com/hackathonfc/park/service/DbService.java index fc82265..43a03e7 100644 --- a/src/main/java/br/com/hackathonfc/park/service/DbService.java +++ b/src/main/java/br/com/hackathonfc/park/service/DbService.java @@ -5,6 +5,7 @@ import br.com.hackathonfc.park.model.*; import br.com.hackathonfc.park.repository.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import java.util.List; @@ -40,7 +41,7 @@ public void instantiateTestDatabase(){ Veiculo veiculo2 = new Veiculo("BMW", "Tiger", "Preto", "XXXX-5555", TipoVeiculo.MOTO, vaga2); List perfis = perfilRepository.findAll(); - User user = new User("henrico@gmail.com", "admin", perfis); + User user = new User("admin@gmail.com", encode("admin"), perfis); estacionamentoRepository.save(estacionamento); perfilRepository.save(perfil1); @@ -51,4 +52,8 @@ public void instantiateTestDatabase(){ veiculoRepository.save(veiculo2); userRepository.save(user); } + + public String encode(String password){ + return new BCryptPasswordEncoder().encode(password); + } } diff --git a/src/main/java/br/com/hackathonfc/park/service/UserService.java b/src/main/java/br/com/hackathonfc/park/service/UserService.java index 6c47e23..c8b0654 100644 --- a/src/main/java/br/com/hackathonfc/park/service/UserService.java +++ b/src/main/java/br/com/hackathonfc/park/service/UserService.java @@ -22,21 +22,25 @@ public class UserService { private UserMAP userMAP; + @Autowired + private DbService dbService; + public ResponseEntity cadastrar(UserDTO userDTO) throws UsernameNotValid, PasswordNotValid { if(validatePassword(userDTO.getPassword()) != true) { throw new PasswordNotValid(); } else if(validateEmail(userDTO.getEmail()) != true){ throw new UsernameNotValid(); } else{ - return ResponseEntity.ok(userMAP.toDTO(userRepository.save(userMAP.fromDTO(userDTO)))); + User user = userRepository.save(new User(userDTO.getEmail(), dbService.encode(userDTO.getPassword()))); + return ResponseEntity.ok(new UserDTO(user)); } } - public ResponseEntity detalhar(Long id) throws UsernameNotFoundException{ + public UserDTO detalhar(Long id) throws UsernameNotFoundException{ Optional checkUser = userRepository.findById(id); if(checkUser.isPresent()){ - return ResponseEntity.ok(userMAP.toDTO(checkUser.get())); + return new UserDTO(checkUser.get()); } else { throw new UsernameNotFoundException("Usuário não encontrado no sistema!"); } @@ -75,7 +79,7 @@ public static User authenticated(){ } } - private boolean validateEmail(String email) throws UsernameNotValid { + private boolean validateEmail(String email){ Optional checkUser = userRepository.findByEmail(email); if (checkUser.isPresent()){ From 1aefd90a7e03c30ef4d9360155366c502b2b7c3c Mon Sep 17 00:00:00 2001 From: Henrico Date: Wed, 8 Jan 2020 10:47:17 -0300 Subject: [PATCH 72/78] Fix VeiculoService Gets Methods --- .../park/controller/VeiculoController.java | 4 +-- .../park/service/VeiculoService.java | 26 +++++-------------- 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java index 53c2f41..e316e31 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/VeiculoController.java @@ -25,8 +25,8 @@ public List listarVeiculos(@PathVariable Long id) throws Estacioname } @GetMapping("/{id}/veiculos/todos") - public List listarTodosOsVeiculos(@PathVariable Long id) throws EstacionamentoNotFound { - return veiculoService.listarTodosOsVeiculos(id); + public List listarTodosOsVeiculos() throws EstacionamentoNotFound { + return veiculoService.listarTodosOsVeiculos(); } @GetMapping("/{id}/veiculos/{id2}") diff --git a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java index 7b769ab..278c5fb 100644 --- a/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java +++ b/src/main/java/br/com/hackathonfc/park/service/VeiculoService.java @@ -13,6 +13,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.PathVariable; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -28,33 +29,20 @@ public class VeiculoService { private VeiculoMAP veiculoMAP = new VeiculoMAP(); - public List listarTodosOsVeiculos(Long id) throws EstacionamentoNotFound { - List vagas = vagaService.listarDeUmEstacionamento(id); - - List veiculos = null; - - for (Vaga vaga : vagas) { - veiculos.addAll(veiculoMAP.toDTO(veiculoRepository.findByVagaId(id))); - } + public List listarTodosOsVeiculos() throws EstacionamentoNotFound { + List veiculos = veiculoRepository.findAll(); - return veiculos; + return veiculoMAP.toDTO(veiculos); } public List listarVeiculosDoEstacionamento(Long id) throws EstacionamentoNotFound { List vagas = vagaService.listarDeUmEstacionamento(id); - List veiculos = Arrays.asList(); - - Veiculo veiculo; + List veiculos = new ArrayList(); for (Vaga vaga : vagas) { - veiculo = vaga.getVeiculo(); - if (veiculos == null){ - - } - else { - veiculos.add(veiculoMAP.toDTO(veiculo)); - } + Veiculo veiculo = vaga.getVeiculo(); + veiculos.add(new VeiculoDTO(veiculo)); } return veiculos; From 5664f207db5309b37db6a28c3af28fa2f23d7816 Mon Sep 17 00:00:00 2001 From: Henrico Date: Wed, 8 Jan 2020 11:39:29 -0300 Subject: [PATCH 73/78] Add More Data in instantiateTestDatabase() --- .../park/dto/EstacionamentoDTO.java | 7 ++- .../park/mapper/EstacionamentoMAP.java | 22 ++++++--- .../park/model/Estacionamento.java | 9 +++- .../br/com/hackathonfc/park/model/User.java | 3 ++ .../hackathonfc/park/service/DbService.java | 49 ++++++++++++++++--- src/main/resources/data.sql | 31 ------------ 6 files changed, 72 insertions(+), 49 deletions(-) delete mode 100644 src/main/resources/data.sql diff --git a/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java b/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java index 2ff7c18..1a7451a 100644 --- a/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java +++ b/src/main/java/br/com/hackathonfc/park/dto/EstacionamentoDTO.java @@ -4,6 +4,7 @@ import javax.validation.constraints.NotNull; import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.model.User; import br.com.hackathonfc.park.repository.EstacionamentoRepository; import lombok.AllArgsConstructor; import lombok.Data; @@ -37,7 +38,10 @@ public class EstacionamentoDTO { @NotNull private Double precoHora; - public EstacionamentoDTO(Estacionamento estacionamento) { + @NotNull + private Long userId; + + public EstacionamentoDTO(Estacionamento estacionamento, User user) { this.id = estacionamento.getId(); this.nome = estacionamento.getNome(); this.cnpj = estacionamento.getCnpj(); @@ -46,5 +50,6 @@ public EstacionamentoDTO(Estacionamento estacionamento) { this.vagasCarros = estacionamento.getVagasCarros(); this.vagasMotos = estacionamento.getVagasMotos(); this.precoHora = estacionamento.getPrecoHora(); + this.userId = user.getId(); } } diff --git a/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java b/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java index 788e43d..7c032dd 100644 --- a/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java +++ b/src/main/java/br/com/hackathonfc/park/mapper/EstacionamentoMAP.java @@ -2,6 +2,9 @@ import br.com.hackathonfc.park.dto.EstacionamentoDTO; import br.com.hackathonfc.park.model.Estacionamento; +import br.com.hackathonfc.park.model.User; +import br.com.hackathonfc.park.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.stereotype.Component; @@ -11,23 +14,26 @@ @Component public class EstacionamentoMAP { + @Autowired + private static UserRepository userRepository; + public static List fromDTO(List estacionamentos){ - return estacionamentos.stream().map(Estacionamento::new).collect(Collectors.toList()); + return estacionamentos.stream().map(e -> { + return new Estacionamento(e, userRepository.findById(e.getUserId()).get()); + }).collect(Collectors.toList()); } public static Estacionamento fromDTO(EstacionamentoDTO estacionamentoDTO){ - return new Estacionamento(estacionamentoDTO); + return new Estacionamento(estacionamentoDTO, userRepository.findById(estacionamentoDTO.getUserId()).get()); } public static List toDTO(Page estacionamentos){ - return estacionamentos.stream().map(EstacionamentoDTO::new).collect(Collectors.toList()); - } - - public static List toDTO(List estacionamentos){ - return estacionamentos.stream().map(EstacionamentoDTO::new).collect(Collectors.toList()); + return estacionamentos.stream().map(e -> { + return new EstacionamentoDTO(e, e.getUser()); + }).collect(Collectors.toList()); } public static EstacionamentoDTO toDTO(Estacionamento estacionamento) { - return new EstacionamentoDTO(estacionamento); + return new EstacionamentoDTO(estacionamento, estacionamento.getUser()); } } diff --git a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java index d108c87..0bcb14b 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java +++ b/src/main/java/br/com/hackathonfc/park/model/Estacionamento.java @@ -33,11 +33,14 @@ public class Estacionamento { private int vagasCarros; private Double precoHora; + + @ManyToOne + private User user; @OneToMany(mappedBy = "estacionamento", cascade = CascadeType.REMOVE, orphanRemoval = true) private List vagas = new ArrayList<>(); - public Estacionamento(EstacionamentoDTO estacionamentoDTO) { + public Estacionamento(EstacionamentoDTO estacionamentoDTO, User user) { this.nome = estacionamentoDTO.getNome(); this.cnpj = estacionamentoDTO.getCnpj(); this.endereco = estacionamentoDTO.getEndereco(); @@ -45,9 +48,10 @@ public Estacionamento(EstacionamentoDTO estacionamentoDTO) { this.vagasCarros = estacionamentoDTO.getVagasCarros(); this.vagasMotos = estacionamentoDTO.getVagasMotos(); this.precoHora = estacionamentoDTO.getPrecoHora(); + this.user = user; } - public Estacionamento(String s, String s1, String s2, int i, int i1, int i2, double v) { + public Estacionamento(String s, String s1, String s2, int i, int i1, int i2, double v, User user) { this.nome = s; this.cnpj = s1; this.endereco = s2; @@ -55,5 +59,6 @@ public Estacionamento(String s, String s1, String s2, int i, int i1, int i2, dou this.vagasMotos = i1; this.vagasCarros = i2; this.precoHora = v; + this.user = user; } } diff --git a/src/main/java/br/com/hackathonfc/park/model/User.java b/src/main/java/br/com/hackathonfc/park/model/User.java index 3d33cda..5620369 100644 --- a/src/main/java/br/com/hackathonfc/park/model/User.java +++ b/src/main/java/br/com/hackathonfc/park/model/User.java @@ -23,6 +23,9 @@ public class User implements UserDetails { @ManyToMany(fetch = FetchType.EAGER) private List perfis = new ArrayList<>(); + @OneToMany(mappedBy = "user") + private List estacionamentos = Arrays.asList(); + public User(UserDTO userDTO) { this.id = userDTO.getId(); this.email = userDTO.getEmail(); diff --git a/src/main/java/br/com/hackathonfc/park/service/DbService.java b/src/main/java/br/com/hackathonfc/park/service/DbService.java index 43a03e7..e93ce4b 100644 --- a/src/main/java/br/com/hackathonfc/park/service/DbService.java +++ b/src/main/java/br/com/hackathonfc/park/service/DbService.java @@ -29,28 +29,63 @@ public class DbService { private PerfilRepository perfilRepository; public void instantiateTestDatabase(){ - Estacionamento estacionamento = new Estacionamento("Estacionamento Instânciado", "1234556", "Rua Doutor Fulano, 505 - Aparecida, Santos/SP", 123456, 4, 4, 8.50); - Perfil perfil1 = new Perfil("ROLE_ADMIN"); Perfil perfil2 = new Perfil("ROLE_USER"); + perfilRepository.save(perfil1); + perfilRepository.save(perfil2); + + List perfis = perfilRepository.findAll(); + + User user = new User("admin@gmail.com", encode("admin"), perfis); + User user1 = new User("user@gmail.com", encode("user"), perfis); + User user2 = new User("henrico@gmail.com", encode("admin"), perfis); + + Estacionamento estacionamento = new Estacionamento("Estacionamento 1", "1234556", "Rua Doutora Ana Costa, 505 - Aparecida, Santos/SP", 123456, 4, 4, 8.50, user); + Estacionamento estacionamento1 = new Estacionamento("Estacionamento 2", "1234556", "Rua Marechal Mallet, 403 - Embaré, Santos/SP", 123456, 8, 8, 7.80, user1); + Estacionamento estacionamento2 = new Estacionamento("Estacionamento 3", "1234556", "Rua Itapura, 306 - Mocca, São Paulo/SP", 123456, 5, 5, 9.50, user2); + Vaga vaga = new Vaga(estacionamento, true, TipoVaga.CARRO, null); Vaga vaga2 = new Vaga(estacionamento, true, TipoVaga.MOTO, null); + Vaga vaga3 = new Vaga(estacionamento1, true, TipoVaga.CARRO, null); + Vaga vaga4 = new Vaga(estacionamento1, true, TipoVaga.MOTO, null); + + Vaga vaga5 = new Vaga(estacionamento2, true, TipoVaga.CARRO, null); + Vaga vaga6 = new Vaga(estacionamento2, true, TipoVaga.MOTO, null); + Veiculo veiculo = new Veiculo("Ford", "Focus", "Preto", "XXXX-4444", TipoVeiculo.CARRO, vaga); Veiculo veiculo2 = new Veiculo("BMW", "Tiger", "Preto", "XXXX-5555", TipoVeiculo.MOTO, vaga2); - List perfis = perfilRepository.findAll(); - User user = new User("admin@gmail.com", encode("admin"), perfis); + Veiculo veiculo3 = new Veiculo("Ford", "Mustang", "Preto", "FORD-4444", TipoVeiculo.CARRO, vaga3); + Veiculo veiculo4 = new Veiculo("BMW", "S1000RR", "Vermelho", "MALB-6666", TipoVeiculo.MOTO, vaga4); + + Veiculo veiculo5 = new Veiculo("Chevrolet", "Cruze", "Prata", "VVVV-6969", TipoVeiculo.CARRO, vaga5); + Veiculo veiculo6 = new Veiculo("Harley Davidson", "Fat Boy 2014", "Vermelho", "HARL-1882", TipoVeiculo.CARRO, vaga6); + + userRepository.save(user); + userRepository.save(user1); + userRepository.save(user2); estacionamentoRepository.save(estacionamento); - perfilRepository.save(perfil1); - perfilRepository.save(perfil2); + estacionamentoRepository.save(estacionamento1); + estacionamentoRepository.save(estacionamento2); + vagaRepository.save(vaga); vagaRepository.save(vaga2); + vagaRepository.save(vaga3); + vagaRepository.save(vaga4); + vagaRepository.save(vaga5); + vagaRepository.save(vaga6); + veiculoRepository.save(veiculo); veiculoRepository.save(veiculo2); - userRepository.save(user); + veiculoRepository.save(veiculo3); + veiculoRepository.save(veiculo4); + veiculoRepository.save(veiculo5); + veiculoRepository.save(veiculo6); + + } public String encode(String password){ diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql deleted file mode 100644 index 83a6cef..0000000 --- a/src/main/resources/data.sql +++ /dev/null @@ -1,31 +0,0 @@ -INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco, telefone, vagas_motos, vagas_carros, preco_hora) VALUES(1, 'Estacionamento 1', '1234556', 'Rua Doutor Fulano, 505 - Aparecida, Santos/SP', '123456', '4', '4', '8.50') -INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(2, 'Estacionamento 2', '1234556', 'Rua Doutor Fulano 2, 403 - Embaré, Santos/SP', '123456', '8', '8', '7.80') -INSERT INTO ESTACIONAMENTO(id, nome, cnpj, endereco ,telefone, vagas_motos, vagas_carros, preco_hora) VALUES(3, 'Estacionamento 3', '1234556', 'Rua Doutor Fulano 3, 306 - Mocca, São Paulo/SP', '123456', '5', '5', '9.50') - -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(1, false, 'CARRO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(1, true, 'CARRO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(1, false, 'MOTO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(2, false, 'CARRO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(2, false, 'MOTO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(2, true, 'CARRO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, false, 'CARRO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, false, 'MOTO') -INSERT INTO VAGA(estacionamento_id, livre, tipo_vaga) VALUES(3, true, 'MOTO') - -INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(1, 'Ford', 'Mustang', 'Preto', 'FORD-4444', 'CARRO', 1) -INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(2, 'BMW', 'S1000RR', 'Vermelho', 'MALB-6666', 'MOTO', 3) -INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(3, 'Chevrolet', 'Cruze', 'Prata', 'VVVV-6969', 'CARRO', 4) -INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(4, 'Honda', 'PCX', 'Branco', 'HOND-6372', 'MOTO', 5) -INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(5, 'Fiat', 'Punto', 'Branco', 'FIAT-6666', 'CARRO', 7) -INSERT INTO VEICULO(id, marca, modelo, cor, placa, tipo_veiculo, vaga_id) VALUES(6, 'Harley Davidson', 'Fat Boy 2014', 'Vermelho', 'HARL-1882', 'MOTO', 8) - -INSERT INTO USER(id, email, password) VALUES (1, 'admin@gmail.com', '$2a$10$5O.y9yx5N7nzERS.D2.Boe1mndKxC97DwlVR28H2dEUAcI08myG2.') -INSERT INTO USER(id, email, password) VALUES (2, 'ana@gmail.com', '$2a$10$5O.y9yx5N7nzERS.D2.Boe1mndKxC97DwlVR28H2dEUAcI08myG2.') -INSERT INTO USER(id, email, password) VALUES (3, 'joao@gmail.com', '$2a$10$5O.y9yx5N7nzERS.D2.Boe1mndKxC97DwlVR28H2dEUAcI08myG2.') - -INSERT INTO PERFIL(id, name) VALUES(1, 'ADMIN') -INSERT INTO PERFIL(id, name) VALUES(2, 'USER') - -INSERT INTO USER_PERFIS(user_id, perfis_id) VALUES(1, 1) -INSERT INTO USER_PERFIS(user_id, perfis_id) VALUES(2, 2) -INSERT INTO USER_PERFIS(user_id, perfis_id) VALUES(3, 2) \ No newline at end of file From dacec15ebe9f36224b9260afe0c9769635e965d4 Mon Sep 17 00:00:00 2001 From: Henrico Date: Wed, 8 Jan 2020 12:23:10 -0300 Subject: [PATCH 74/78] Add Token for swagger and PerfilService --- .../config/swagger/SwaggerConfigurations.java | 11 ++++++++++- .../controller/EstacionamentoController.java | 5 +++-- .../park/controller/UserController.java | 1 + .../br/com/hackathonfc/park/model/User.java | 10 ++++++++++ .../com/hackathonfc/park/service/DbService.java | 11 +++++------ .../hackathonfc/park/service/PerfilService.java | 17 +++++++++++++++++ .../hackathonfc/park/service/UserService.java | 13 ++++++++++++- 7 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/service/PerfilService.java diff --git a/src/main/java/br/com/hackathonfc/park/config/swagger/SwaggerConfigurations.java b/src/main/java/br/com/hackathonfc/park/config/swagger/SwaggerConfigurations.java index 88fe23b..f16c8d1 100644 --- a/src/main/java/br/com/hackathonfc/park/config/swagger/SwaggerConfigurations.java +++ b/src/main/java/br/com/hackathonfc/park/config/swagger/SwaggerConfigurations.java @@ -21,6 +21,15 @@ public Docket api() { .select() .apis(RequestHandlerSelectors.basePackage("br.com.hackathonfc.park")) .paths(PathSelectors.ant("/**")) - .build(); + .build() + .globalOperationParameters(Arrays.asList( + new ParameterBuilder() + .name("Authorization") + .description("Header para token JWT") + .modelRef(new ModelRef("string")) + .parameterType("header") + .required(false) + .build() + )); } } diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index 156947b..b13c856 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -52,15 +52,16 @@ public Page listar(@PageableDefault(sort = "id", direction = public ResponseEntity cadastrar(@RequestBody @Valid EstacionamentoDTO estacionamentoDTO) throws NomeFound, CnpjFound { return estacionamentoBO.cadastrar(estacionamentoDTO); } - + @PutMapping("/{id}") public ResponseEntity atualizar(@PathVariable Long id, @RequestBody @Valid EstacionamentoDTO estacionamentoDTO) throws EstacionamentoNotFound { return estacionamentoBO.atualizar(id, estacionamentoDTO); } + @PreAuthorize("hasAnyRole('ADMIN')") @DeleteMapping("/{id}") public ResponseEntity remover(@PathVariable Long id) throws EstacionamentoNotFound { return estacionamentoBO.deletar(id); } - + } diff --git a/src/main/java/br/com/hackathonfc/park/controller/UserController.java b/src/main/java/br/com/hackathonfc/park/controller/UserController.java index 4743e96..83d6699 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/UserController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/UserController.java @@ -33,6 +33,7 @@ public ResponseEntity atualizar(@PathVariable Long id, @RequestBody Use return userService.atualizar(id, userDTO); } + @PreAuthorize("hasAnyRole('ADMIN')") @DeleteMapping("/{id}") public ResponseEntity deletar(@PathVariable Long id){ return userService.remover(id); diff --git a/src/main/java/br/com/hackathonfc/park/model/User.java b/src/main/java/br/com/hackathonfc/park/model/User.java index 5620369..8d540eb 100644 --- a/src/main/java/br/com/hackathonfc/park/model/User.java +++ b/src/main/java/br/com/hackathonfc/park/model/User.java @@ -43,6 +43,12 @@ public User(String email, String password) { this.password = password; } + public User(String email, String password, Perfil perfil){ + this.email = email; + this.password = password; + this.perfis.add(perfil); + } + @Override public Collection getAuthorities() { return this.perfis; @@ -78,4 +84,8 @@ public boolean isEnabled() { return true; } + public boolean hasRole(Perfil perfil){ + return getAuthorities().contains(perfil); + } + } diff --git a/src/main/java/br/com/hackathonfc/park/service/DbService.java b/src/main/java/br/com/hackathonfc/park/service/DbService.java index e93ce4b..c94a0bc 100644 --- a/src/main/java/br/com/hackathonfc/park/service/DbService.java +++ b/src/main/java/br/com/hackathonfc/park/service/DbService.java @@ -35,11 +35,12 @@ public void instantiateTestDatabase(){ perfilRepository.save(perfil1); perfilRepository.save(perfil2); - List perfis = perfilRepository.findAll(); + Perfil perfilUser = perfilRepository.findById(perfil2.getId()).get(); + Perfil perfilAdmin = perfilRepository.findById(perfil1.getId()).get(); - User user = new User("admin@gmail.com", encode("admin"), perfis); - User user1 = new User("user@gmail.com", encode("user"), perfis); - User user2 = new User("henrico@gmail.com", encode("admin"), perfis); + User user = new User("admin@gmail.com", encode("admin"), perfilAdmin); + User user1 = new User("user@gmail.com", encode("user"), perfilUser); + User user2 = new User("henrico@gmail.com", encode("admin"), perfilUser); Estacionamento estacionamento = new Estacionamento("Estacionamento 1", "1234556", "Rua Doutora Ana Costa, 505 - Aparecida, Santos/SP", 123456, 4, 4, 8.50, user); Estacionamento estacionamento1 = new Estacionamento("Estacionamento 2", "1234556", "Rua Marechal Mallet, 403 - Embaré, Santos/SP", 123456, 8, 8, 7.80, user1); @@ -84,8 +85,6 @@ public void instantiateTestDatabase(){ veiculoRepository.save(veiculo4); veiculoRepository.save(veiculo5); veiculoRepository.save(veiculo6); - - } public String encode(String password){ diff --git a/src/main/java/br/com/hackathonfc/park/service/PerfilService.java b/src/main/java/br/com/hackathonfc/park/service/PerfilService.java new file mode 100644 index 0000000..5b4b850 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/service/PerfilService.java @@ -0,0 +1,17 @@ +package br.com.hackathonfc.park.service; + +import br.com.hackathonfc.park.model.Perfil; +import br.com.hackathonfc.park.repository.PerfilRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class PerfilService { + + @Autowired + private PerfilRepository perfilRepository; + + public Perfil detalhar(Long id){ + return perfilRepository.findById(id).get(); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/service/UserService.java b/src/main/java/br/com/hackathonfc/park/service/UserService.java index c8b0654..7dce496 100644 --- a/src/main/java/br/com/hackathonfc/park/service/UserService.java +++ b/src/main/java/br/com/hackathonfc/park/service/UserService.java @@ -4,10 +4,12 @@ import br.com.hackathonfc.park.exception.PasswordNotValid; import br.com.hackathonfc.park.exception.UsernameNotValid; import br.com.hackathonfc.park.mapper.UserMAP; +import br.com.hackathonfc.park.model.Perfil; import br.com.hackathonfc.park.model.User; import br.com.hackathonfc.park.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; +import org.springframework.security.access.AuthorizationServiceException; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; @@ -25,6 +27,9 @@ public class UserService { @Autowired private DbService dbService; + @Autowired + private PerfilService perfilService; + public ResponseEntity cadastrar(UserDTO userDTO) throws UsernameNotValid, PasswordNotValid { if(validatePassword(userDTO.getPassword()) != true) { throw new PasswordNotValid(); @@ -38,9 +43,15 @@ public ResponseEntity cadastrar(UserDTO userDTO) throws UsernameNotVali public UserDTO detalhar(Long id) throws UsernameNotFoundException{ Optional checkUser = userRepository.findById(id); + User user = UserService.authenticated(); + Perfil perfilAdmin = perfilService.detalhar(1L); if(checkUser.isPresent()){ - return new UserDTO(checkUser.get()); + if(user==null || !user.hasRole(perfilAdmin) && !id.equals(user.getId())) { + throw new AuthorizationServiceException("Acess danied!"); + } else { + return new UserDTO(checkUser.get()); + } } else { throw new UsernameNotFoundException("Usuário não encontrado no sistema!"); } From 0c2ea40221001a8e79d9fc897f7bc0eed6ca9d46 Mon Sep 17 00:00:00 2001 From: Henrico Date: Wed, 8 Jan 2020 21:29:56 -0300 Subject: [PATCH 75/78] Add hasAnyRole('Admin') to remover() on UserService --- .../br/com/hackathonfc/park/service/UserService.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/service/UserService.java b/src/main/java/br/com/hackathonfc/park/service/UserService.java index 7dce496..b2a3bea 100644 --- a/src/main/java/br/com/hackathonfc/park/service/UserService.java +++ b/src/main/java/br/com/hackathonfc/park/service/UserService.java @@ -74,9 +74,16 @@ public ResponseEntity atualizar(Long id, UserDTO userDTO) throws Userna public ResponseEntity remover(Long id) throws UsernameNotFoundException{ Optional checkUser = userRepository.findById(id); + User user = UserService.authenticated(); + + Perfil perfil = perfilService.detalhar(1L); + if (checkUser.isPresent()){ - userRepository.deleteById(id); - return ResponseEntity.ok().build(); + if(user!=null && user.hasRole(perfil)) { + userRepository.deleteById(id); + return ResponseEntity.ok().build(); + } else + throw new AuthorizationServiceException("Acess danied!"); } else{ throw new UsernameNotFoundException("Usuário não encontrado no sistema!"); } From a2e604690a5788863bca5d0f5090d0e5dba367ae Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 9 Jan 2020 10:04:58 -0300 Subject: [PATCH 76/78] Fix DbService --- .../br/com/hackathonfc/park/model/User.java | 2 +- .../hackathonfc/park/service/DbService.java | 34 +++++++++---------- .../park/service/TokenService.java | 2 ++ .../hackathonfc/park/service/UserService.java | 7 ++-- 4 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/model/User.java b/src/main/java/br/com/hackathonfc/park/model/User.java index 8d540eb..cc80ebf 100644 --- a/src/main/java/br/com/hackathonfc/park/model/User.java +++ b/src/main/java/br/com/hackathonfc/park/model/User.java @@ -20,7 +20,7 @@ public class User implements UserDetails { private String password; - @ManyToMany(fetch = FetchType.EAGER) + @ManyToMany private List perfis = new ArrayList<>(); @OneToMany(mappedBy = "user") diff --git a/src/main/java/br/com/hackathonfc/park/service/DbService.java b/src/main/java/br/com/hackathonfc/park/service/DbService.java index c94a0bc..dcc0af3 100644 --- a/src/main/java/br/com/hackathonfc/park/service/DbService.java +++ b/src/main/java/br/com/hackathonfc/park/service/DbService.java @@ -35,17 +35,25 @@ public void instantiateTestDatabase(){ perfilRepository.save(perfil1); perfilRepository.save(perfil2); - Perfil perfilUser = perfilRepository.findById(perfil2.getId()).get(); Perfil perfilAdmin = perfilRepository.findById(perfil1.getId()).get(); + Perfil perfilUser = perfilRepository.findById(perfil2.getId()).get(); User user = new User("admin@gmail.com", encode("admin"), perfilAdmin); User user1 = new User("user@gmail.com", encode("user"), perfilUser); - User user2 = new User("henrico@gmail.com", encode("admin"), perfilUser); + User user2 = new User("henrico@gmail.com", encode("user"), perfilUser); + + userRepository.save(user); + userRepository.save(user1); + userRepository.save(user2); Estacionamento estacionamento = new Estacionamento("Estacionamento 1", "1234556", "Rua Doutora Ana Costa, 505 - Aparecida, Santos/SP", 123456, 4, 4, 8.50, user); Estacionamento estacionamento1 = new Estacionamento("Estacionamento 2", "1234556", "Rua Marechal Mallet, 403 - Embaré, Santos/SP", 123456, 8, 8, 7.80, user1); Estacionamento estacionamento2 = new Estacionamento("Estacionamento 3", "1234556", "Rua Itapura, 306 - Mocca, São Paulo/SP", 123456, 5, 5, 9.50, user2); + estacionamentoRepository.save(estacionamento); + estacionamentoRepository.save(estacionamento1); + estacionamentoRepository.save(estacionamento2); + Vaga vaga = new Vaga(estacionamento, true, TipoVaga.CARRO, null); Vaga vaga2 = new Vaga(estacionamento, true, TipoVaga.MOTO, null); @@ -55,6 +63,13 @@ public void instantiateTestDatabase(){ Vaga vaga5 = new Vaga(estacionamento2, true, TipoVaga.CARRO, null); Vaga vaga6 = new Vaga(estacionamento2, true, TipoVaga.MOTO, null); + vagaRepository.save(vaga); + vagaRepository.save(vaga2); + vagaRepository.save(vaga3); + vagaRepository.save(vaga4); + vagaRepository.save(vaga5); + vagaRepository.save(vaga6); + Veiculo veiculo = new Veiculo("Ford", "Focus", "Preto", "XXXX-4444", TipoVeiculo.CARRO, vaga); Veiculo veiculo2 = new Veiculo("BMW", "Tiger", "Preto", "XXXX-5555", TipoVeiculo.MOTO, vaga2); @@ -64,21 +79,6 @@ public void instantiateTestDatabase(){ Veiculo veiculo5 = new Veiculo("Chevrolet", "Cruze", "Prata", "VVVV-6969", TipoVeiculo.CARRO, vaga5); Veiculo veiculo6 = new Veiculo("Harley Davidson", "Fat Boy 2014", "Vermelho", "HARL-1882", TipoVeiculo.CARRO, vaga6); - userRepository.save(user); - userRepository.save(user1); - userRepository.save(user2); - - estacionamentoRepository.save(estacionamento); - estacionamentoRepository.save(estacionamento1); - estacionamentoRepository.save(estacionamento2); - - vagaRepository.save(vaga); - vagaRepository.save(vaga2); - vagaRepository.save(vaga3); - vagaRepository.save(vaga4); - vagaRepository.save(vaga5); - vagaRepository.save(vaga6); - veiculoRepository.save(veiculo); veiculoRepository.save(veiculo2); veiculoRepository.save(veiculo3); diff --git a/src/main/java/br/com/hackathonfc/park/service/TokenService.java b/src/main/java/br/com/hackathonfc/park/service/TokenService.java index c532b8c..5740146 100644 --- a/src/main/java/br/com/hackathonfc/park/service/TokenService.java +++ b/src/main/java/br/com/hackathonfc/park/service/TokenService.java @@ -4,8 +4,10 @@ import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; diff --git a/src/main/java/br/com/hackathonfc/park/service/UserService.java b/src/main/java/br/com/hackathonfc/park/service/UserService.java index 7dce496..d92795f 100644 --- a/src/main/java/br/com/hackathonfc/park/service/UserService.java +++ b/src/main/java/br/com/hackathonfc/park/service/UserService.java @@ -7,6 +7,7 @@ import br.com.hackathonfc.park.model.Perfil; import br.com.hackathonfc.park.model.User; import br.com.hackathonfc.park.repository.UserRepository; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.security.access.AuthorizationServiceException; @@ -17,6 +18,7 @@ import java.util.Optional; @Service +@Slf4j public class UserService { @Autowired @@ -45,10 +47,11 @@ public UserDTO detalhar(Long id) throws UsernameNotFoundException{ Optional checkUser = userRepository.findById(id); User user = UserService.authenticated(); Perfil perfilAdmin = perfilService.detalhar(1L); + Boolean checkBool = user.hasRole(perfilAdmin); if(checkUser.isPresent()){ - if(user==null || !user.hasRole(perfilAdmin) && !id.equals(user.getId())) { - throw new AuthorizationServiceException("Acess danied!"); + if(user == null || !user.hasRole(perfilAdmin)) { + throw new AuthorizationServiceException("Acesso não permitido!"); } else { return new UserDTO(checkUser.get()); } From 1c4b3e9a796b48bc8009019578bab236cfdaedb5 Mon Sep 17 00:00:00 2001 From: Henrico Date: Thu, 9 Jan 2020 14:08:34 -0300 Subject: [PATCH 77/78] Change Vaga --- src/main/java/br/com/hackathonfc/park/model/Vaga.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/br/com/hackathonfc/park/model/Vaga.java b/src/main/java/br/com/hackathonfc/park/model/Vaga.java index 219013b..5f9463f 100644 --- a/src/main/java/br/com/hackathonfc/park/model/Vaga.java +++ b/src/main/java/br/com/hackathonfc/park/model/Vaga.java @@ -17,14 +17,14 @@ public class Vaga { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @ManyToOne - private Estacionamento estacionamento; - private boolean livre = true; - @Enumerated(EnumType.STRING) + @Enumerated(EnumType.STRING) private TipoVaga tipoVaga = TipoVaga.CARRO; + @ManyToOne + private Estacionamento estacionamento; + @OneToOne(mappedBy = "vaga", cascade = {CascadeType.REMOVE, CascadeType.REFRESH}, orphanRemoval = true) private Veiculo veiculo; From 89e64361be6ac6370a6f50567821c6c29706cd6c Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 29 Jan 2020 20:04:17 -0300 Subject: [PATCH 78/78] chamando views a partir do index --- pom.xml | 5 ----- .../park/controller/CadastroController.java | 20 +++++++++++++++++++ .../controller/EstacionamentoController.java | 12 +---------- src/main/resources/templates/cadastro.html | 2 +- src/main/resources/templates/index.html | 4 ++-- 5 files changed, 24 insertions(+), 19 deletions(-) create mode 100644 src/main/java/br/com/hackathonfc/park/controller/CadastroController.java diff --git a/pom.xml b/pom.xml index 36d0120..1da604b 100644 --- a/pom.xml +++ b/pom.xml @@ -50,11 +50,6 @@ spring-boot-starter-thymeleaf -<<<<<<< HEAD - -======= - ->>>>>>> 7d6d3981b7cd75937fd0902e411d7c389f4a2b1d org.springframework.boot spring-boot-devtools diff --git a/src/main/java/br/com/hackathonfc/park/controller/CadastroController.java b/src/main/java/br/com/hackathonfc/park/controller/CadastroController.java new file mode 100644 index 0000000..779a584 --- /dev/null +++ b/src/main/java/br/com/hackathonfc/park/controller/CadastroController.java @@ -0,0 +1,20 @@ +package br.com.hackathonfc.park.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +@RestController +public class CadastroController +{ + + @RequestMapping("/cadastro") + public ModelAndView cadastro(){ + return new ModelAndView("cadastro"); + } + + @RequestMapping("/gerenciar") + public ModelAndView gerenciar(){ + return new ModelAndView("gerenciar"); + } +} diff --git a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java index e91a45d..abf7a7e 100644 --- a/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java +++ b/src/main/java/br/com/hackathonfc/park/controller/EstacionamentoController.java @@ -21,9 +21,7 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.servlet.ModelAndView; import org.springframework.web.util.UriComponentsBuilder; import br.com.hackathonfc.park.controller.dto.VagaDto; @@ -45,15 +43,6 @@ public class EstacionamentoController { private VagaRepository vagaRepository; - @RequestMapping(value="/cadastro", method=RequestMethod.POST ) - public String form(){ - return"cadastro"; - } - - - - - @CrossOrigin @GetMapping public Page listar(@PageableDefault(sort = "id", direction = Direction.DESC, page = 0, size = 10) Pageable paginacao){ @@ -121,4 +110,5 @@ public ResponseEntity remover(@PathVariable Long id){ return ResponseEntity.notFound().build(); } + } diff --git a/src/main/resources/templates/cadastro.html b/src/main/resources/templates/cadastro.html index 1184d8f..981b4fb 100644 --- a/src/main/resources/templates/cadastro.html +++ b/src/main/resources/templates/cadastro.html @@ -45,7 +45,7 @@
-
+

diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 4be60b8..be21cab 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -18,7 +18,7 @@
@@ -37,7 +37,7 @@

Estacionamento

Endereço: Rua Doutor Fulano de Tal, 505 - Aparecida, Santos/SP
- Gerenciar + Gerenciar