package med.voll.api.Controller;
import jakarta.validation.Valid; import med.voll.api.medico.DatosListadoMedicos; import med.voll.api.medico.DatosMedicoRegistro; import med.voll.api.medico.Medico; import med.voll.api.medico.MedicoRepository; import org.springframework.data.domain.Page; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.web.PageableDefault; import org.springframework.web.bind.annotation.*; import org.springframework.data.domain.Pageable;
@RestController @RequestMapping("/medico") public class MedicoController {
@Autowired//se usa pero no deveria solo por esplicar
private MedicoRepository medicoRepository;
@PostMapping
public void registrarMedico( @RequestBody @Valid DatosMedicoRegistro datosRegistroMedico){
System.out.println("El riquest llega correctamente");
System.out.println(datosRegistroMedico);
//grabar los daos en la base de datos
medicoRepository.save(new Medico(datosRegistroMedico));
}
//metodo llamar lista de medicos ordenados de la base de datos
// @GetMapping // private List listadoMedicos(){ // return medicoRepository.findAll(); // } // se crea un dto para mostrar menos informacion // se cambia List por paginacion para ordenar
//@PageableDefault(size = 2)mostrar por defecto solo 2 elementos
@GetMapping
public Page<DatosListadoMedicos> listadoMedicos(@PageableDefault(size = 2) Pageable paginacion) {
return medicoRepository.findAll(paginacion).map(DatosListadoMedicos::new);
}
} { "content": [ { "nombre": "diego martínez", "especialidad": "ORTOPEDIA", "documento": "1234569", "email": "rodrigo.lopez3@voll.med" }, { "nombre": "juan martínez", "especialidad": "ORTOPEDIA", "documento": "1234579", "email": "rodrigo.lopez4@voll.med" } ], "pageable": { "pageNumber": 0, "pageSize": 2, "sort": { "empty": false, "sorted": true, "unsorted": false