Skip to content

Commit

Permalink
HOTFIX EM ALGUNS ENDPOINTS
Browse files Browse the repository at this point in the history
  • Loading branch information
martin-petersen committed Oct 14, 2020
1 parent 8f821cd commit e55b30c
Show file tree
Hide file tree
Showing 17 changed files with 652 additions and 519 deletions.
549 changes: 286 additions & 263 deletions .idea/httpRequests/http-requests-log.http

Large diffs are not rendered by default.

479 changes: 277 additions & 202 deletions .idea/workspace.xml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@
import javax.validation.Valid;
import java.net.URI;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Function;

@CrossOrigin
@RestController
Expand Down Expand Up @@ -84,14 +82,14 @@ public ResponseEntity<EspecialidadeDTO> cadastrarEspecialidade(@RequestBody @Val
}
}

@PutMapping("/atualizarEspecialidade")
@PutMapping("/atualizarEspecialidade/{id}")
@Transactional
@CacheEvict(value = "listaEspecialidades", allEntries = true)
public ResponseEntity<Especialidade> atualizarEspecialidade(@RequestParam String nomeEspecialidade,
@RequestBody EspecialidadeFORM especialidadeForm) {
public ResponseEntity<EspecialidadeDTO> atualizarEspecialidade(@PathVariable Long id,
@RequestBody EspecialidadeFORM especialidadeForm) {
try {
Especialidade especialidade = especialidadeService.atualizar(nomeEspecialidade.toUpperCase(), especialidadeForm);
return ResponseEntity.ok(especialidade);
Especialidade especialidade = especialidadeService.atualizar(id, especialidadeForm);
return ResponseEntity.ok(new EspecialidadeDTO(especialidade));
}catch (Exception e) {
return ResponseEntity.badRequest().build();
}
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/com/example/starter/controller/ExameController.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,16 @@ public class ExameController {
return ResponseEntity.ok(examesDTO);
}

@GetMapping("/{id}")
public ResponseEntity<ExameDTO>buscarUm(@PathVariable Long id) {
try {
Exame exame = exameService.buscarUm(id);
return ResponseEntity.ok(new ExameDTO(exame));
} catch (Exception e) {
return ResponseEntity.badRequest().build();
}
}

@PostMapping
@Transactional
public ResponseEntity<ExameDTO> cadastrarExame(@RequestBody @Valid ExameFORM exameFORM,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public class UsuarioController {
@GetMapping
public ResponseEntity<Page<UsuarioDTO>> listaDeUsers(@RequestParam(required = false) String nome,
@RequestParam(required = false) String email,
@PageableDefault(page = 0, size = 10, direction = Sort.Direction.ASC, sort = "nomeEspecialidade") Pageable pageable) {
@PageableDefault(page = 0, size = 10, direction = Sort.Direction.ASC, sort = "nome") Pageable pageable) {
if(nome != null) {
String name = "%" + nome.toUpperCase() + "%";
List<Usuario> usuarios = usuarioService.buscarPorNome(name);
Expand Down
26 changes: 15 additions & 11 deletions src/main/java/com/example/starter/controller/VagasController.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,20 @@ public class VagasController {
private VagaService vagaService;

@GetMapping
public ResponseEntity<Page<VagaDTO>> listar(@RequestParam(required = false) String nomeExame,
@RequestParam(required = true) boolean consulta,
@PageableDefault(page = 0, size = 10, direction = Sort.Direction.ASC, sort = "especialidade") Pageable pageable) {
public ResponseEntity<Page<VagaDTO>> listar(@RequestParam(required = false) Long exame_id,
@RequestParam boolean consulta,
@RequestParam(required = false) Long especialidade_id,
@PageableDefault(page = 0, size = 10, direction = Sort.Direction.ASC, sort = "data") Pageable pageable) {
try {
if(nomeExame != null && !consulta) {
Page<VagaDTO> listagemVagasExames = vagaService.listarExames(nomeExame.toUpperCase(),pageable);
if(exame_id != null && !consulta) {
Page<VagaDTO> listagemVagasExames = vagaService.listarExames(exame_id,pageable);
return ResponseEntity.ok(listagemVagasExames);
} else if(nomeExame == null && !consulta) {
} else if(exame_id == null && !consulta) {
Page<VagaDTO> listagemVagasTotais = vagaService.listar(pageable);
return ResponseEntity.ok(listagemVagasTotais);
} else if(consulta && especialidade_id != null) {
Page<VagaDTO> consultasPorEspecialidade = vagaService.consultasPorEspecialidade(especialidade_id,pageable);
return ResponseEntity.ok(consultasPorEspecialidade);
} else {
Page<VagaDTO> listagemVagasConsultas = vagaService.listarConsulta(pageable);
return ResponseEntity.ok(listagemVagasConsultas);
Expand All @@ -54,9 +58,9 @@ public ResponseEntity<VagaDTO> cadastrarVaga(@RequestBody @Valid VagaFORM vagaFO
Vaga vaga = vagaService.salvar(vagaFORM);
URI uri = uriComponentsBuilder.path("/vagas/{id}").buildAndExpand(vaga.getId()).toUri();
if(vaga.getConsulta() != null) {
return ResponseEntity.created(uri).body(new VagaDTO(vaga.getData(),vaga.getVagasOfertadas(),vaga.getVagasRestantes(),vaga.getEspecialidade(),vaga.getConsulta()));
return ResponseEntity.created(uri).body(new VagaDTO(vaga.getId(),vaga.getData(),vaga.getVagasOfertadas(),vaga.getVagasRestantes(),vaga.getEspecialidade(),vaga.getConsulta()));
} else {
return ResponseEntity.created(uri).body(new VagaDTO(vaga.getData(),vaga.getVagasOfertadas(),vaga.getVagasRestantes(),vaga.getExame()));
return ResponseEntity.created(uri).body(new VagaDTO(vaga.getId(),vaga.getData(),vaga.getVagasOfertadas(),vaga.getVagasRestantes(),vaga.getExame()));
}
}catch (Exception e) {
return ResponseEntity.badRequest().build();
Expand All @@ -66,13 +70,13 @@ public ResponseEntity<VagaDTO> cadastrarVaga(@RequestBody @Valid VagaFORM vagaFO
@PutMapping("/editarVaga/{id}")
@Transactional
public ResponseEntity<VagaDTO> editarVaga(@PathVariable Long id,
@RequestBody NovaDataVagaFORM novaDataVagaFORM) {
@RequestBody NovaDataVagaFORM novaDataVagaFORM) {
try {
Vaga vaga = vagaService.atualizar(id,novaDataVagaFORM);
if(vaga.getConsulta() != null) {
return ResponseEntity.ok(new VagaDTO(vaga.getData(),vaga.getVagasOfertadas(),vaga.getVagasRestantes(),vaga.getEspecialidade(),vaga.getConsulta()));
return ResponseEntity.ok(new VagaDTO(vaga.getId(),vaga.getData(),vaga.getVagasOfertadas(),vaga.getVagasRestantes(),vaga.getEspecialidade(),vaga.getConsulta()));
} else {
return ResponseEntity.ok(new VagaDTO(vaga.getData(),vaga.getVagasOfertadas(),vaga.getVagasRestantes(),vaga.getExame()));
return ResponseEntity.ok(new VagaDTO(vaga.getId(),vaga.getData(),vaga.getVagasOfertadas(),vaga.getVagasRestantes(),vaga.getExame()));
}
}catch (Exception e) {
return ResponseEntity.badRequest().build();
Expand Down
11 changes: 9 additions & 2 deletions src/main/java/com/example/starter/dto/VagaDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,35 @@
import java.time.LocalDate;

public class VagaDTO {
private Long id;
private LocalDate data;
private Integer vagasOfertadas;
private Integer vagasRestantes;
private String especialidade;
private String exame = null;
private String consulta = null;

public VagaDTO(LocalDate data, Integer vagasOfertadas, Integer vagasRestantes, Exame exame) {
public VagaDTO(Long id, LocalDate data, Integer vagasOfertadas, Integer vagasRestantes, Exame exame) {
this.id = id;
this.data = data;
this.vagasOfertadas = vagasOfertadas;
this.vagasRestantes = vagasRestantes;
this.exame = exame.getNomeExame();
}

public VagaDTO(LocalDate data, Integer vagasOfertadas, Integer vagasRestantes, Especialidade especialidade, Consulta consulta) {
public VagaDTO(Long id, LocalDate data, Integer vagasOfertadas, Integer vagasRestantes, Especialidade especialidade, Consulta consulta) {
this.id = id;
this.data = data;
this.vagasOfertadas = vagasOfertadas;
this.vagasRestantes = vagasRestantes;
this.especialidade = especialidade.getNomeEspecialidade();
this.consulta = consulta.getNome();
}

public Long getId() {
return id;
}

public LocalDate getData() {
return data;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
PUT http://localhost:8080/especialidades/atualizarEspecialidade?nomeEspecialidade=NEUROLOGIA
PUT http://localhost:8080/especialidades/atualizarEspecialidade/29
content-type: application/json

{
"nomeEspecialidade": "Endocrinologia"
"nomeEspecialidade": "123321"
}

###

PUT http://localhost:8080/especialidades/atualizarEspecialidade?nomeEspecialidade=Endocrinologia
content-type: application/json

{
"nomeEspecialidade": "Cardiologia"
}
###
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
GET http://localhost:8080/vagas?consulta=true
content-type: application/json

###

GET http://localhost:8080/vagas?consulta=true&especialidade_id=3
content-type: application/json
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
GET http://localhost:8080/vagas?nomeExame=teste&consulta=false
GET http://localhost:8080/vagas?exame_id=1&consulta=false
content-type: application/json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ POST http://localhost:8080/vagas
content-type: application/json

{
"data": "10/10/2020",
"data": "15/10/2020",
"vagasOfertadas": "10",
"especialidade":3,
"exame": null,
Expand Down Expand Up @@ -41,7 +41,7 @@ POST http://localhost:8080/vagas
content-type: application/json

{
"data": "07/10/2020",
"data": "18/10/2020",
"vagasOfertadas": "10",
"especialidade":3,
"exame":null,
Expand All @@ -57,7 +57,7 @@ content-type: application/json
"data": "10/10/2020",
"vagasOfertadas": "10",
"especialidade":null,
"exame": "teste",
"exame": 1,
"consulta": false
}

Expand All @@ -70,7 +70,7 @@ content-type: application/json
"data": "11/10/2020",
"vagasOfertadas": "10",
"especialidade":null,
"exame": "teste",
"exame": 1,
"consulta": false
}

Expand All @@ -83,7 +83,7 @@ content-type: application/json
"data": "08/10/2020",
"vagasOfertadas": "10",
"especialidade":null,
"exame": "teste",
"exame": 1,
"consulta": false
}

Expand All @@ -93,10 +93,10 @@ POST http://localhost:8080/vagas
content-type: application/json

{
"data": "13/10/2020",
"data": "17/10/2020",
"vagasOfertadas": "10",
"especialidade":null,
"exame": "teste",
"exame": 1,
"consulta": false
}

Expand All @@ -106,7 +106,7 @@ POST http://localhost:8080/vagas
content-type: application/json

{
"data": "13/10/2020",
"data": "18/10/2020",
"vagasOfertadas": "10",
"especialidade":null,
"exame": 1,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.example.starter.repository;

import com.example.starter.model.Consulta;
import com.example.starter.model.Especialidade;
import com.example.starter.model.Exame;
import com.example.starter.model.Vaga;
import org.springframework.data.jpa.repository.JpaRepository;
Expand All @@ -11,7 +12,8 @@

@Repository
public interface VagaRepository extends JpaRepository<Vaga, Long> {
List<Vaga> findByExameAndDataAfter(Exame exame, LocalDate localDateTime);
List<Vaga> findByConsultaAndDataAfter(Consulta consulta, LocalDate localDateTime);
List<Vaga> findByExameAndDataAfter(Exame exame, LocalDate localDate);
List<Vaga> findByConsultaAndDataAfter(Consulta consulta, LocalDate localDate);
List<Vaga> findByDataAfter(LocalDate localDateTime);
List<Vaga> findByEspecialidadeAndDataAfter(Especialidade especialidade, LocalDate localDate);
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ public List<Especialidade> buscarTodosSemPaginacao() {
return especialidadeRepository.findAll();
}

public Especialidade atualizar(String nomeEspecialidade, EspecialidadeFORM especialidadeForm) {
Especialidade especialidade = buscarPorNome(nomeEspecialidade);
public Especialidade atualizar(Long id, EspecialidadeFORM especialidadeForm) {
Especialidade especialidade = especialidadeRepository.findById(id).get();
especialidade.setNomeEspecialidade(especialidadeForm.getNomeEspecialidade());
especialidadeRepository.save(especialidade);
return especialidade;
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/com/example/starter/service/ExameService.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,11 @@ public boolean remover(Exame exame) {
return false;
}
}

public Exame buscarUm(Long id) {
if(exameRepository.findById(id).isPresent())
return exameRepository.findById(id).get();
else
return null;
}
}
29 changes: 19 additions & 10 deletions src/main/java/com/example/starter/service/VagaService.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,14 @@ public class VagaService {
@Autowired
private EspecialidadeRepository especialidadeRepository;

public Page<VagaDTO> listarExames(String nomeExame, Pageable pageable) {
public Page<VagaDTO> listarExames(Long exame_id, Pageable pageable) {
LocalDate ontem = LocalDate.now().minusDays(1);
List<Exame> exames = exameRepository.findByNomeExame(nomeExame);
Exame exame = null;
for (Exame e:
exames) {
if(e.getNomeExame().equals(nomeExame))
exame = e;
if(exameRepository.findById(exame_id).isPresent()) {
Exame exame = exameRepository.findById(exame_id).get();
return convertInDetalhamentoDTO(vagaRepository.findByExameAndDataAfter(exame,ontem),pageable);
} else {
return null;
}
return convertInDetalhamentoDTO(vagaRepository.findByExameAndDataAfter(exame,ontem),pageable);
}

public Page<VagaDTO> listarConsulta(Pageable pageable) {
Expand All @@ -62,14 +60,25 @@ private Page<VagaDTO> convertInDetalhamentoDTO (List<Vaga> lista, Pageable pagea
for (Vaga v:
lista) {
if(v.getConsulta() != null) {
vagaDTOList.add(new VagaDTO(v.getData(),v.getVagasOfertadas(),v.getVagasRestantes(),v.getEspecialidade(),v.getConsulta()));
vagaDTOList.add(new VagaDTO(v.getId(),v.getData(),v.getVagasOfertadas(),v.getVagasRestantes(),v.getEspecialidade(),v.getConsulta()));
} else {
vagaDTOList.add(new VagaDTO(v.getData(),v.getVagasOfertadas(),v.getVagasRestantes(),v.getExame()));
vagaDTOList.add(new VagaDTO(v.getId(),v.getData(),v.getVagasOfertadas(),v.getVagasRestantes(),v.getExame()));
}
}
return new PageImpl<>(vagaDTOList,pageable,vagaDTOList.size());
}

public Page<VagaDTO> consultasPorEspecialidade(Long especialidade_id,Pageable pageable) {
LocalDate ontem = LocalDate.now().minusDays(1);
if(especialidadeRepository.findById(especialidade_id).isPresent()) {
Especialidade especialidade = especialidadeRepository.findById(especialidade_id).get();
List<Vaga> vagas = vagaRepository.findByEspecialidadeAndDataAfter(especialidade,ontem);
return convertInDetalhamentoDTO(vagas,pageable);
} else {
return null;
}
}

public Vaga salvar(VagaFORM vagaFORM) {
Vaga novaVaga = new Vaga();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
Expand Down
Binary file not shown.
Binary file not shown.

0 comments on commit e55b30c

Please sign in to comment.