Controller
A continuación vamos a crear las clases con el controller, creamos el paquete com.tutosoftware.coapi.controllerEn este paquete creamos la clase UsuarioController
package com.tutosoftware.coapi.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
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.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import com.tutosoftware.coapi.domain.Usuario;
import com.tutosoftware.coapi.repository.UsuarioRepository;
@RestController
@RequestMapping(value="/api")
@CrossOrigin("*")
public class UsuarioController {
@Autowired
UsuarioRepository usuarioRepository;
@ResponseStatus(HttpStatus.OK)
@GetMapping("/usuario/{email}")
public ResponseEntity<Usuario> getUsuarioById(@PathVariable("email") String email) {
Optional<Usuario> usuarioData = usuarioRepository.findById(email);
if (usuarioData.isPresent()) {
return new ResponseEntity<>(usuarioData.get(), HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
@ResponseStatus(HttpStatus.OK)
@GetMapping("/usuarios")
public ResponseEntity<?> getUsuarioAll(){
List<Usuario> usuarios = new ArrayList<Usuario>();
usuarios = usuarioRepository.findAll();
if(usuarios == null || usuarios.isEmpty()) {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}else {
return new ResponseEntity<>(usuarios,HttpStatus.OK);
}
}
@PostMapping("/usuario")
@ResponseStatus(HttpStatus.CREATED)
public ResponseEntity<?> crearUsuario(@RequestBody Usuario usuario){
Map<String,Object> response = new HashMap<>();
try {
Usuario _usuario= usuarioRepository.save(new Usuario(usuario.getNombre(),usuario.getApellidoPaterno(),
usuario.getApellidoMaterno(),usuario.getEmail(),usuario.getPassword(),usuario.getRol()));
return new ResponseEntity<Usuario>(_usuario, HttpStatus.CREATED);
}catch(Exception e) {
response.put("mensaje","El usuario no ha sido creado");
return new ResponseEntity<Map<String,Object>>(response, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@PutMapping("/usuario/{email}")
@ResponseStatus(HttpStatus.OK)
public ResponseEntity<Usuario> updateTutorial(@PathVariable("email") String email, @RequestBody Usuario usuario) {
Optional<Usuario> usuarioData = usuarioRepository.findById(email);
if (usuarioData.isPresent()) {
Usuario _usuario = usuarioData.get();
_usuario.setNombre(usuario.getNombre());
_usuario.setApellidoPaterno(usuario.getApellidoPaterno());
_usuario.setApellidoMaterno(usuario.getApellidoMaterno());
_usuario.setPassword(usuario.getPassword());
_usuario.setRol(usuario.getRol());
return new ResponseEntity<>(usuarioRepository.save(_usuario), HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
@DeleteMapping("/usuario/{email}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteUsuario(@PathVariable String email) {
usuarioRepository.deleteById(email);
}
}
Creamos la clase PisoController
package com.tutosoftware.coapi.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
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.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import com.tutosoftware.coapi.domain.Piso;
import com.tutosoftware.coapi.repository.PisoRepository;
@RestController
@RequestMapping(value="/api")
@CrossOrigin("*")
public class PisoController {
@Autowired
PisoRepository pisoRepository;
@ResponseStatus(HttpStatus.OK)
@GetMapping("/piso/{clave}")
public ResponseEntity<Piso> getPisoById(@PathVariable("clave") String clave) {
Optional<Piso> pisoData = pisoRepository.findById(clave);
if (pisoData.isPresent()) {
return new ResponseEntity<>(pisoData.get(), HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
@ResponseStatus(HttpStatus.OK)
@GetMapping("/pisos")
public ResponseEntity<?> getPisoAll(){
List<Piso> pisos = new ArrayList<Piso>();
pisos = pisoRepository.findAll();
return new ResponseEntity<>(pisos,HttpStatus.OK);
}
@PostMapping("/piso")
@ResponseStatus(HttpStatus.CREATED)
public ResponseEntity<?> crearPiso(@RequestBody Piso piso){
Map<String,Object> response = new HashMap<>();
try {
Piso _piso= pisoRepository.save(new Piso(piso.getClave(),piso.getDescripcion()));
return new ResponseEntity<Piso>(_piso, HttpStatus.CREATED);
}catch(Exception e) {
response.put("mensaje","El piso no ha sido creado");
return new ResponseEntity<Map<String,Object>>(response, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@PutMapping("/piso/{clave}")
@ResponseStatus(HttpStatus.OK)
public ResponseEntity<Piso> updatePiso(@PathVariable("clave") String clave, @RequestBody Piso piso) {
Optional<Piso> pisoData = pisoRepository.findById(clave);
if (pisoData.isPresent()) {
Piso _piso = pisoData.get();
_piso.setClave(piso.getClave());
_piso.setDescripcion(piso.getDescripcion());
return new ResponseEntity<>(pisoRepository.save(_piso), HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
@DeleteMapping("/piso/{clave}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteUsuario(@PathVariable String clave) {
pisoRepository.deleteById(clave);
}
}
Creamos la clase EmpresaController
package com.tutosoftware.coapi.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
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.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import com.tutosoftware.coapi.domain.Empresa;
import com.tutosoftware.coapi.repository.EmpresaRepository;
@RestController
@RequestMapping(value="/api")
@CrossOrigin("*")
public class EmpresaController {
@Autowired
EmpresaRepository empresaRepository;
@ResponseStatus(HttpStatus.OK)
@GetMapping("/empresa/{clave}")
public ResponseEntity<Empresa> getEmpresaById(@PathVariable("clave") String clave) {
Optional<Empresa> empresaData = empresaRepository.findById(clave);
if (empresaData.isPresent()) {
return new ResponseEntity<>(empresaData.get(), HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
@ResponseStatus(HttpStatus.OK)
@GetMapping("/empresas")
public ResponseEntity<?> getEmpresaAll(){
List<Empresa> empresas = new ArrayList<Empresa>();
empresas = empresaRepository.findAll();
return new ResponseEntity<>(empresas,HttpStatus.OK);
}
@PostMapping("/empresa")
@ResponseStatus(HttpStatus.CREATED)
public ResponseEntity<?> crearEmpresa(@RequestBody Empresa empresa){
Map<String,Object> response = new HashMap<>();
try {
Empresa _empresa= empresaRepository.save(new Empresa(empresa.getClave(),empresa.getNombre(),
empresa.getExtension(),empresa.getUbicacion()));
return new ResponseEntity<Empresa>(_empresa, HttpStatus.CREATED);
}catch(Exception e) {
response.put("mensaje","La empresa no ha sido creada");
return new ResponseEntity<Map<String,Object>>(response, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@PutMapping("/empresa/{clave}")
@ResponseStatus(HttpStatus.OK)
public ResponseEntity<Empresa> updatePiso(@PathVariable("clave") String clave, @RequestBody Empresa empresa) {
Optional<Empresa> empresaData = empresaRepository.findById(clave);
if (empresaData.isPresent()) {
Empresa _empresa = empresaData.get();
_empresa.setClave(empresa.getClave());
_empresa.setNombre(empresa.getNombre());
_empresa.setExtension(empresa.getExtension());
_empresa.setUbicacion(empresa.getUbicacion());
return new ResponseEntity<>(empresaRepository.save(_empresa), HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
@DeleteMapping("/empresa/{clave}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteEmpresa(@PathVariable String clave) {
empresaRepository.deleteById(clave);
}
}
Creamos la clase VisitantesController
package com.tutosoftware.coapi.controller;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
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.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import com.tutosoftware.coapi.domain.Visitantes;
import com.tutosoftware.coapi.dto.VisitantesDTO;
import com.tutosoftware.coapi.repository.VisitantesRepository;
@RestController
@RequestMapping(value="/api")
@CrossOrigin("*")
public class VisitantesController {
@Autowired
VisitantesRepository visitantesRepository;
@PostMapping("/visitante")
@ResponseStatus(HttpStatus.CREATED)
public ResponseEntity<?> crearVisitante(@RequestBody VisitantesDTO visitantes){
Map<String,Object> response = new HashMap<>();
try {
Visitantes visitante = new Visitantes();
LocalDateTime fechaEntrada =LocalDateTime.now();
//System.out.println(visitantes.getFoto());
visitante.setIdVisitante(visitantes.getIdVisitante());
visitante.setGafete(visitantes.getGafete());
LocalDateTime fechaHora =LocalDateTime.of(LocalDate.now(), LocalTime.of(0, 0, 0));
visitante.setFechaEntrada(fechaEntrada);
visitante.setNombre(visitantes.getNombre());
visitante.setApellidoPaterno(visitantes.getApellidoPaterno());
visitante.setApellidoMaterno(visitantes.getApellidoMaterno());
visitante.setIdentificacion(visitantes.getIdentificacion());
visitante.setNumIdentificacion(visitantes.getNumIdentificacion());
visitante.setPiso(visitantes.getPiso());
visitante.setEmpresa(visitantes.getEmpresa());
visitante.setAsunto(visitantes.getAsunto());
visitante.setaQuienVisita(visitantes.getaQuienVisita());
visitante.setFoto(visitantes.getFoto());
visitante.setFechaSalida(fechaHora);
visitante.setSalida(false);
Visitantes _visitantes= visitantesRepository.save(visitante);
return new ResponseEntity<Visitantes>(_visitantes, HttpStatus.CREATED);
}catch(Exception e) {
e.printStackTrace();
response.put("mensaje","El visitante no ha sido creado");
return new ResponseEntity<Map<String,Object>>(response, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ResponseStatus(HttpStatus.OK)
@GetMapping("/visitantes")
public ResponseEntity<?> getVisitantesAll(){
List<Visitantes> v = new ArrayList<Visitantes>();
LocalDateTime fechaHora =LocalDateTime.of(LocalDate.now(), LocalTime.of(0, 0, 0));
LocalDateTime fechaHora2=fechaHora.plusDays(1);
v = visitantesRepository.findByKeyFechaEntradaAndKeyFechaEntrada(fechaHora, fechaHora2);
return new ResponseEntity<>(v,HttpStatus.OK);
}
@ResponseStatus(HttpStatus.OK)
@GetMapping("/visitantes/{fecha}")
public ResponseEntity<?> getVisitantesforDay(@PathVariable("fecha") String fecha1){
List<Visitantes> v = new ArrayList<Visitantes>();
DateTimeFormatter format = DateTimeFormatter.ofPattern("dd-MM-yyyy");
LocalDate localDate = LocalDate.parse(fecha1, format);
LocalDateTime fecha =LocalDateTime.of(localDate, LocalTime.of(0, 0, 0));
//DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//LocalDateTime fecha = LocalDateTime.parse(fecha1, formatter);
LocalDateTime fecha2=fecha.plusDays(1);
v = visitantesRepository.findByKeyFechaEntradaAndKeyFechaEntrada(fecha, fecha2);
return new ResponseEntity<>(v,HttpStatus.OK);
}
@PutMapping("/visitantes")
@ResponseStatus(HttpStatus.OK)
public ResponseEntity<?> registrarSalida(@RequestBody String idVisitante) {
if(idVisitante != null) {
LocalDateTime fechaSalida =LocalDateTime.now();
visitantesRepository.updateKeyFechaSalidaAndSalida(fechaSalida,true, idVisitante);
return new ResponseEntity<>(idVisitante, HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
}