diff --git a/main/java/com/scarlet/consultorio/configuracao/OpenApiConfig.java b/main/java/com/scarlet/consultorio/configuracao/OpenApiConfig.java new file mode 100644 index 0000000..a1a0dcb --- /dev/null +++ b/main/java/com/scarlet/consultorio/configuracao/OpenApiConfig.java @@ -0,0 +1,16 @@ +package com.scarlet.consultorio.configuracao; + +import org.springdoc.core.GroupedOpenApi; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class OpenApiConfig { + @Bean + public GroupedOpenApi publicApi() { + return GroupedOpenApi.builder() + .group("public") + .pathsToMatch("/**") + .build(); + } +} diff --git a/main/java/com/scarlet/consultorio/controllers/AnamneseController.java b/main/java/com/scarlet/consultorio/controllers/AnamneseController.java index 7d3d7be..3d41825 100644 --- a/main/java/com/scarlet/consultorio/controllers/AnamneseController.java +++ b/main/java/com/scarlet/consultorio/controllers/AnamneseController.java @@ -1,4 +1,67 @@ package com.scarlet.consultorio.controllers; +import com.scarlet.consultorio.dtos.AnamneseRecordDto; +import com.scarlet.consultorio.models.AnamneseModel; +import com.scarlet.consultorio.repositories.AnamneseRepository; +import jakarta.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +import static org.springframework.beans.BeanUtils.copyProperties; + +@RestController public class AnamneseController { + @Autowired + AnamneseRepository anamneseRepository; + + @PostMapping("/anamnese") + public ResponseEntity saveAnamnese(@Valid @RequestBody AnamneseRecordDto anamneseRecordDto) { + var anamneseModel = new AnamneseModel(); + copyProperties(anamneseRecordDto, anamneseModel); + return ResponseEntity.status(HttpStatus.CREATED).body(anamneseRepository.save(anamneseModel)); + } + + @GetMapping("/anamnese") + public ResponseEntity> getAllAnamnese() { + List anamneseModelList = anamneseRepository.findAll(); + return ResponseEntity.status(HttpStatus.OK).body(anamneseModelList); + } + + @GetMapping("/anamnese/{id}") + public ResponseEntity getOneAnamnese(@PathVariable(value = "id") UUID id) { + Optional anamneseModel = anamneseRepository.findById(id); + if (anamneseModel.isEmpty()) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Anamnese não encontrada."); + } + return ResponseEntity.status(HttpStatus.OK).body(anamneseModel.get()); + } + + @PutMapping("/anamnese/{id}") + public ResponseEntity updateAnamnese(@PathVariable(value = "id") UUID id, + @RequestBody AnamneseRecordDto anamneseRecordDto) { + Optional anamneseOptional = anamneseRepository.findById(id); + if (anamneseOptional.isEmpty()) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Anamnese não encontrada."); + } + var anamneseModel = anamneseOptional.get(); + copyProperties(anamneseRecordDto, anamneseModel); + return ResponseEntity.status(HttpStatus.OK).body(anamneseRepository.save(anamneseModel)); + } + + @DeleteMapping("/anamnese/{id}") + public ResponseEntity deleteAnamnese(@PathVariable(value = "id") UUID id) { + Optional anamneseModel = anamneseRepository.findById(id); + if (anamneseModel.isEmpty()) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Anamnese não encontrada."); + } + anamneseRepository.delete(anamneseModel.get()); + return ResponseEntity.status(HttpStatus.OK).body("Anamnese removida com sucesso."); + } } diff --git a/main/java/com/scarlet/consultorio/controllers/CaixaController.java b/main/java/com/scarlet/consultorio/controllers/CaixaController.java new file mode 100644 index 0000000..9129fc2 --- /dev/null +++ b/main/java/com/scarlet/consultorio/controllers/CaixaController.java @@ -0,0 +1,65 @@ +package com.scarlet.consultorio.controllers; + + +import com.scarlet.consultorio.dtos.CaixaRecordDto; +import com.scarlet.consultorio.models.CaixaModel; +import com.scarlet.consultorio.repositories.CaixaRepository; +import jakarta.validation.Valid; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + + +@RestController +public class CaixaController { + + @Autowired + CaixaRepository caixaRepository; + + @PostMapping("/caixa") + public ResponseEntity saveCaixa(@RequestBody @Valid CaixaRecordDto caixaRecordDto) { + var caixaModel = new CaixaModel(); + BeanUtils.copyProperties(caixaRecordDto, caixaModel); + return ResponseEntity.status(HttpStatus.CREATED).body(caixaRepository.save(caixaModel)); + } + + @GetMapping("/caixa") + public ResponseEntity> getAllCaixa() { + List caixaModelList = caixaRepository.findAll(); + return ResponseEntity.status(HttpStatus.OK).body(caixaModelList); + } + + @GetMapping("/caixa/{id}") + public ResponseEntity getOneCaixa(@PathVariable UUID id) { + Optional caixa = caixaRepository.findById(id); + return caixa.map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build()); + } + + @PutMapping("/caixa/{id}") + public ResponseEntity updateCaixa(@PathVariable(value = "id") UUID id, + @RequestBody @Valid CaixaRecordDto caixaRecordDto) { + Optional caixaOptional = caixaRepository.findById(id); + if (!caixaOptional.isPresent()) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Valor não encontrado"); + } + + var caixaModel = caixaOptional.get(); + BeanUtils.copyProperties(caixaRecordDto, caixaModel); + return ResponseEntity.status(HttpStatus.OK).body(caixaRepository.save(caixaModel)); + } + + @DeleteMapping("/caixa/{id}") + public ResponseEntity deleteCaixa(@PathVariable(value = "id") UUID id) { + Optional caixa = caixaRepository.findById(id); + if (caixa.isEmpty()) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Valor não encontrado"); + } + caixaRepository.delete(caixa.get()); + return ResponseEntity.status(HttpStatus.NO_CONTENT).body("Valor removido com sucesso"); + } +} diff --git a/main/java/com/scarlet/consultorio/controllers/ConsultaController.java b/main/java/com/scarlet/consultorio/controllers/ConsultaController.java index c966a10..3250077 100644 --- a/main/java/com/scarlet/consultorio/controllers/ConsultaController.java +++ b/main/java/com/scarlet/consultorio/controllers/ConsultaController.java @@ -4,6 +4,7 @@ import com.scarlet.consultorio.models.ConsultaModel; import com.scarlet.consultorio.repositories.ConsultaRepository; import jakarta.validation.Valid; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -23,7 +24,7 @@ public class ConsultaController { @PostMapping("/consulta") public ResponseEntity saveConsulta(@RequestBody ConsultaRecordDto consultaRecordDto) { var consultaModel = new ConsultaModel(); - copyProperties (consultaRecordDto, consultaModel); + BeanUtils.copyProperties (consultaRecordDto, consultaModel); return ResponseEntity.status(HttpStatus.CREATED).body(consultaRepository.save(consultaModel)); } diff --git a/main/java/com/scarlet/consultorio/controllers/ConsultorioController.java b/main/java/com/scarlet/consultorio/controllers/ConsultorioController.java index 146d6f5..cd9808a 100644 --- a/main/java/com/scarlet/consultorio/controllers/ConsultorioController.java +++ b/main/java/com/scarlet/consultorio/controllers/ConsultorioController.java @@ -14,7 +14,6 @@ import java.util.Optional; import java.util.UUID; -import static org.springframework.beans.BeanUtils.*; @RestController public class ConsultorioController { @@ -25,7 +24,7 @@ public class ConsultorioController { @PostMapping("/consultorio") public ResponseEntity saveConsultorio(@RequestBody @Valid ConsultorioRecordDto consultorioRecordDto) { var consultorioModel = new ConsultorioModel(); - copyProperties(consultorioRecordDto, consultorioModel); + BeanUtils.copyProperties(consultorioRecordDto, consultorioModel); return ResponseEntity.status(HttpStatus.CREATED).body(consultorioRepository.save(consultorioModel)); } @@ -54,7 +53,7 @@ public ResponseEntity updateConsultorio(@PathVariable(value = "id") UUID return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Consultório não encontrado."); } var consultorioModel = consultoriO.get(); - copyProperties(consultorioRecordDto, consultorioModel); + BeanUtils.copyProperties(consultorioRecordDto, consultorioModel); return ResponseEntity.status(HttpStatus.OK).body(consultorioRepository.save(consultorioModel)); } diff --git a/main/java/com/scarlet/consultorio/controllers/PacienteController.java b/main/java/com/scarlet/consultorio/controllers/PacienteController.java index 2f32c08..801be8c 100644 --- a/main/java/com/scarlet/consultorio/controllers/PacienteController.java +++ b/main/java/com/scarlet/consultorio/controllers/PacienteController.java @@ -4,6 +4,7 @@ import com.scarlet.consultorio.models.PacienteModel; import com.scarlet.consultorio.repositories.PacienteRepository; import jakarta.validation.Valid; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -13,8 +14,6 @@ import java.util.Optional; import java.util.UUID; -import static org.springframework.beans.BeanUtils.copyProperties; - @RestController public class PacienteController { @Autowired @@ -23,7 +22,7 @@ public class PacienteController { @PostMapping("/paciente") public ResponseEntity savePaciente(@RequestBody @Valid PacienteRecordDto pacienteRecordDto) { var pacienteModel = new PacienteModel(); - copyProperties(pacienteRecordDto, pacienteModel); + BeanUtils.copyProperties(pacienteRecordDto, pacienteModel); return ResponseEntity.status(HttpStatus.CREATED).body(pacienteRepository.save(pacienteModel)); } diff --git a/main/java/com/scarlet/consultorio/dtos/AnamneseRecordDto.java b/main/java/com/scarlet/consultorio/dtos/AnamneseRecordDto.java index a03bf62..9d66369 100644 --- a/main/java/com/scarlet/consultorio/dtos/AnamneseRecordDto.java +++ b/main/java/com/scarlet/consultorio/dtos/AnamneseRecordDto.java @@ -1,6 +1,5 @@ package com.scarlet.consultorio.dtos; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; @@ -16,3 +15,4 @@ public record AnamneseRecordDto(@NotBlank String queixaPrincipal, @NotNull Boolean coracao){ } + diff --git a/main/java/com/scarlet/consultorio/dtos/CaixaRecordDto.java b/main/java/com/scarlet/consultorio/dtos/CaixaRecordDto.java new file mode 100644 index 0000000..81b8fa4 --- /dev/null +++ b/main/java/com/scarlet/consultorio/dtos/CaixaRecordDto.java @@ -0,0 +1,7 @@ +package com.scarlet.consultorio.dtos; + +import jakarta.validation.constraints.NotNull; +import java.time.LocalDate; + +public record CaixaRecordDto (@NotNull LocalDate dataEntrada, @NotNull double valorEntrada, @NotNull double valorSaida) { +} diff --git a/main/java/com/scarlet/consultorio/dtos/ConsultaRecordDto.java b/main/java/com/scarlet/consultorio/dtos/ConsultaRecordDto.java index 0ae2d84..73af433 100644 --- a/main/java/com/scarlet/consultorio/dtos/ConsultaRecordDto.java +++ b/main/java/com/scarlet/consultorio/dtos/ConsultaRecordDto.java @@ -2,7 +2,6 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; - import java.time.LocalDate; diff --git a/main/java/com/scarlet/consultorio/models/CaixaModel.java b/main/java/com/scarlet/consultorio/models/CaixaModel.java index 032f9a9..b999306 100644 --- a/main/java/com/scarlet/consultorio/models/CaixaModel.java +++ b/main/java/com/scarlet/consultorio/models/CaixaModel.java @@ -2,19 +2,21 @@ import jakarta.persistence.*; import lombok.Data; +import lombok.ToString; import java.time.LocalDate; import java.util.UUID; @Entity @Data +@ToString @Table (name = "caixa") public class CaixaModel { @Id @GeneratedValue(strategy = GenerationType.UUID) private UUID idCaixa; - @Column (name = "data") - private LocalDate data; + @Column (name = "dataEntrada") + private LocalDate dataEntrada; @Column (name = "valorEntrada") private double valorEntrada; @Column (name = "valorSaida") diff --git a/main/java/com/scarlet/consultorio/repositories/AnamneseRepository.java b/main/java/com/scarlet/consultorio/repositories/AnamneseRepository.java new file mode 100644 index 0000000..c386c02 --- /dev/null +++ b/main/java/com/scarlet/consultorio/repositories/AnamneseRepository.java @@ -0,0 +1,11 @@ +package com.scarlet.consultorio.repositories; + +import com.scarlet.consultorio.models.AnamneseModel; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.UUID; + +@Repository +public interface AnamneseRepository extends JpaRepository { +} diff --git a/main/java/com/scarlet/consultorio/repositories/AnamneseRespositort.java b/main/java/com/scarlet/consultorio/repositories/AnamneseRespositort.java deleted file mode 100644 index cd623b8..0000000 --- a/main/java/com/scarlet/consultorio/repositories/AnamneseRespositort.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.scarlet.consultorio.repositories; - -public interface AnamneseRespositort { -} diff --git a/main/java/com/scarlet/consultorio/repositories/CaixaRepository.java b/main/java/com/scarlet/consultorio/repositories/CaixaRepository.java new file mode 100644 index 0000000..3518c73 --- /dev/null +++ b/main/java/com/scarlet/consultorio/repositories/CaixaRepository.java @@ -0,0 +1,11 @@ +package com.scarlet.consultorio.repositories; + +import com.scarlet.consultorio.models.CaixaModel; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.UUID; + +@Repository +public interface CaixaRepository extends JpaRepository { +} diff --git a/test/http-consultorio/caixa.http b/test/http-consultorio/caixa.http new file mode 100644 index 0000000..5ed6cdf --- /dev/null +++ b/test/http-consultorio/caixa.http @@ -0,0 +1,20 @@ +###Definição da baseUrl +@baseUrl = http://localhost:8080 +###Requisição com Post para criar um novo caixa +POST {{baseUrl}}/caixa +Content-Type: application/json +Accept: application/json + +{ + "dataEntrada": "2025-02-07", + "valorEntrada": "100,00", + "valorSaida": "40,00" +} +###Requisição com Get +GET {{baseUrl}}/caixa +Content-type: application/json +Accept: application/json + +{ + "my-json-field": "my-json-value" +} diff --git a/test/http-consultorio/consultorio.http b/test/http-consultorio/consultorio.http index 58e8fbd..1cc1845 100644 --- a/test/http-consultorio/consultorio.http +++ b/test/http-consultorio/consultorio.http @@ -6,7 +6,7 @@ Content-Type: application/json Accept: application/json { - "nameConsultorio": "Sorriso", + "nomeConsultorio": "Sorriso", "enderecoConsultorio": "Rua A esquina com B" } ###Requisição com Get