ManagedBean
Creamos los Beans para las vistas.Creamos el paquete com.tutosoftware.clientaccess.view y Creamos la clase LoginView
package com.tutosoftware.clientaccess.view;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.MediaType;
import com.tutosoftware.clientaccess.model.Usuario;
import com.tutosoftware.clientaccess.util.SessionUtils;
@ManagedBean
@SessionScoped
public class LoginView implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private String email;
private String password;
private Usuario usuario;
private String nombreUsuario;
private String rolUser;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public String getNombreUsuario() {
return nombreUsuario;
}
public void setNombreUsuario(String nombreUsuario) {
this.nombreUsuario = nombreUsuario;
}
public String getRolUser() {
return rolUser;
}
public void setRolUser(String rolUser) {
this.rolUser = rolUser;
}
public String loginAccess() {
String URL ="http://localhost:8888/api/usuario/";
Client client = ClientBuilder.newClient();
usuario=client.target(URL+email).request(MediaType.APPLICATION_JSON_TYPE).get(Usuario.class);
if(usuario == null) {
addMessage("Success", "Usuario o password incorrectos");
return "login";
}
if(usuario.getPassword().equals(password)) {
HttpSession session = SessionUtils.getSession();
nombreUsuario=usuario.getNombre()+" "+usuario.getApellidoPaterno()+" "+usuario.getApellidoMaterno();
rolUser=usuario.getRol();
session.setAttribute("username",nombreUsuario);
return "admin";
}else {
addMessage("Usuario o password incorrectos", "Usuario o password incorrectos");
return "login";
}
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public String logout() {
HttpSession session = SessionUtils.getSession();
session.invalidate();
return "login";
}
}
En el mismo paquete creamos la clase UsuarioView
package com.tutosoftware.clientaccess.view;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.primefaces.PrimeFaces;
import com.tutosoftware.clientaccess.model.Usuario;
@ManagedBean
@SessionScoped
public class UsuarioView implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private List<Usuario> usuarios;
private String nombre;
private String apellidoPaterno;
private String apellidoMaterno;
private String email;
private String password;
private String rol;
private Usuario usuario;
public List<Usuario> getUsuarios() {
return usuarios;
}
public void setUsuarios(List<Usuario> usuarios) {
this.usuarios = usuarios;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellidoPaterno() {
return apellidoPaterno;
}
public void setApellidoPaterno(String apellidoPaterno) {
this.apellidoPaterno = apellidoPaterno;
}
public String getApellidoMaterno() {
return apellidoMaterno;
}
public void setApellidoMaterno(String apellidoMaterno) {
this.apellidoMaterno = apellidoMaterno;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRol() {
return rol;
}
public void setRol(String rol) {
this.rol = rol;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
@PostConstruct
public void listarUsuarios() {
String URL ="http://localhost:8888/api/usuarios";
Client client = ClientBuilder.newClient();
usuarios=client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Usuario>>() {});
//this.usuario=new Usuario();
}
public void crearUsuario() {
String URL ="http://localhost:8888/api/usuario";
Client client = ClientBuilder.newClient();
Usuario user=new Usuario();
user.setNombre(nombre);
user.setApellidoPaterno(apellidoPaterno);
user.setApellidoMaterno(apellidoMaterno);
user.setEmail(email);
user.setPassword(password);
user.setRol(rol);
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(user,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.CREATED.getStatusCode()) {
addMessage("Confirmado","Usuario aceptado");
} else {
addMessage("Fallo","Usuario no registrado");
}
limpiarUsuario();
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('dlg1').hide();");
listarUsuarios();
}
public void actualizarUsuario() {
//System.out.println("El nombre del usuario es:"+usuario.getNombre());
String URL ="http://localhost:8888/api/usuario/";
Client client = ClientBuilder.newClient();
Response response =
client.target(URL+usuario.getEmail())
.request(MediaType.APPLICATION_JSON_TYPE)
.put(Entity.entity(usuario,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.OK.getStatusCode()) {
addMessage("Usuario actualizado","Usuario aceptado");
} else {
addMessage("Fallo","Usuario no registrado");
}
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('dlg2').hide();");
listarUsuarios();
}
public void eliminarusuario() {
String URL ="http://localhost:8888/api/usuario/";
Client client = ClientBuilder.newClient();
client.target(URL+usuario.getEmail()).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
listarUsuarios();
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public void limpiarUsuario() {
nombre="";
apellidoPaterno="";
apellidoMaterno="";
email="";
password="";
rol="";
}
}
Creamos la clase PisoView
package com.tutosoftware.clientaccess.view;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.primefaces.PrimeFaces;
import com.tutosoftware.clientaccess.model.Piso;
@ManagedBean
@ViewScoped
public class PisoView implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private List<Piso> pisos;
private String clave;
private String descripcion;
private Piso piso;
public List<Piso> getPisos() {
return pisos;
}
public void setPisos(List<Piso> pisos) {
this.pisos = pisos;
}
public String getClave() {
return clave;
}
public void setClave(String clave) {
this.clave = clave;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public Piso getPiso() {
return piso;
}
public void setPiso(Piso piso) {
this.piso = piso;
}
@PostConstruct
public void listarPisos() {
String URL ="http://localhost:8888/api/pisos";
Client client = ClientBuilder.newClient();
pisos=client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Piso>>() {});
//this.usuario=new Usuario();
}
public void crearPiso() {
String URL ="http://localhost:8888/api/piso";
Client client = ClientBuilder.newClient();
Piso p=new Piso();
p.setClave(clave);
p.setDescripcion(descripcion);
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(p,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.CREATED.getStatusCode()) {
addMessage("Confirmado","Piso aceptado");
} else {
addMessage("Fallo","Piso no registrado");
}
limpiarPiso();
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('dlg1').hide();");
listarPisos();
}
public void actualizarPiso() {
//System.out.println("El nombre del usuario es:"+usuario.getNombre());
String URL ="http://localhost:8888/api/piso/";
Client client = ClientBuilder.newClient();
Response response =
client.target(URL+piso.getClave())
.request(MediaType.APPLICATION_JSON_TYPE)
.put(Entity.entity(piso,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.OK.getStatusCode()) {
addMessage("Piso actualizado","Usuario aceptado");
} else {
addMessage("Fallo","Usuario no registrado");
}
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('dlg2').hide();");
listarPisos();
}
public void eliminarPiso() {
String URL ="http://localhost:8888/api/piso/";
Client client = ClientBuilder.newClient();
client.target(URL+piso.getClave()).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
listarPisos();
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public void limpiarPiso() {
clave="";
descripcion="";
}
}
Creamos la clase EmpresaView
package com.tutosoftware.clientaccess.view;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.primefaces.PrimeFaces;
import com.tutosoftware.clientaccess.model.Empresa;
@ManagedBean
@ViewScoped
public class EmpresaView implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private List<Empresa> empresas;
private String clave;
private String nombre;
private String extension;
private String ubicacion;
private Empresa empresa;
public List<Empresa> getEmpresas() {
return empresas;
}
public void setEmpresas(List<Empresa> empresas) {
this.empresas = empresas;
}
public String getClave() {
return clave;
}
public void setClave(String clave) {
this.clave = clave;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getExtension() {
return extension;
}
public void setExtension(String extension) {
this.extension = extension;
}
public String getUbicacion() {
return ubicacion;
}
public void setUbicacion(String ubicacion) {
this.ubicacion = ubicacion;
}
public Empresa getEmpresa() {
return empresa;
}
public void setEmpresa(Empresa empresa) {
this.empresa = empresa;
}
@PostConstruct
public void listarEmpresas() {
String URL ="http://localhost:8888/api/empresas";
Client client = ClientBuilder.newClient();
empresas=client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Empresa>>() {});
//this.usuario=new Usuario();
}
public void crearEmpresa() {
String URL ="http://localhost:8888/api/empresa";
Client client = ClientBuilder.newClient();
Empresa e=new Empresa();
e.setClave(clave);
e.setNombre(nombre);
e.setExtension(extension);
e.setUbicacion(ubicacion);
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(e,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.CREATED.getStatusCode()) {
addMessage("Confirmado","Piso aceptado");
} else {
addMessage("Fallo","Piso no registrado");
}
limpiarEmpresa();
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('dlg1').hide();");
listarEmpresas();
}
public void actualizarEmpresa() {
//System.out.println("El nombre del usuario es:"+usuario.getNombre());
String URL ="http://localhost:8888/api/empresa/";
Client client = ClientBuilder.newClient();
Response response =
client.target(URL+empresa.getClave())
.request(MediaType.APPLICATION_JSON_TYPE)
.put(Entity.entity(empresa,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.OK.getStatusCode()) {
addMessage("Empresa actualizada","Empresa aceptada");
} else {
addMessage("Fallo","Empresa no registrada");
}
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('dlg2').hide();");
listarEmpresas();
}
public void eliminarEmpresa() {
String URL ="http://localhost:8888/api/empresa/";
Client client = ClientBuilder.newClient();
client.target(URL+empresa.getClave()).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
listarEmpresas();
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public void limpiarEmpresa(){
clave="";
nombre="";
extension="";
ubicacion="";
}
}
Creamos la clase VisitanteView
package com.tutosoftware.clientaccess.view;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Base64;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.FacesException;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.imageio.stream.FileImageOutputStream;
import javax.servlet.ServletContext;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.primefaces.event.CaptureEvent;
import org.primefaces.event.SelectEvent;
import com.tutosoftware.clientaccess.model.Visitantes;
import com.tutosoftware.clientaccess.model.VisitantesDto;
@ManagedBean
@ViewScoped
public class VisitanteView implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Visitantes visitante;
private String gafete;
private String foto;
private byte[] data;
private byte[] datos;
private Date fechaBusqueda;
private String fecha;
private List<VisitantesDto> visitantes;
private String idVisitante;
public Visitantes getVisitante() {
return visitante;
}
public void setVisitante(Visitantes visitante) {
this.visitante = visitante;
}
public String getGafete() {
return gafete;
}
public void setGafete(String gafete) {
this.gafete = gafete;
}
public String getFoto() {
return foto;
}
public boolean isVerFoto() {
return foto != null;
}
public void setFoto(String foto) {
this.foto = foto;
}
public byte[] getData() {
return data;
}
public void setData(byte[] data) {
this.data = data;
}
public byte[] getDatos() {
return datos;
}
public void setDatos(byte[] datos) {
this.datos = datos;
}
public Date getFechaBusqueda() {
return fechaBusqueda;
}
public void setFechaBusqueda(Date fechaBusqueda) {
this.fechaBusqueda = fechaBusqueda;
}
public String getFecha() {
return fecha;
}
public void setFecha(String fecha) {
this.fecha = fecha;
}
public List<VisitantesDto> getVisitantes() {
return visitantes;
}
public void setVisitantes(List<VisitantesDto> visitantes) {
this.visitantes = visitantes;
}
public String getIdVisitante() {
return idVisitante;
}
public void setIdVisitante(String idVisitante) {
this.idVisitante = idVisitante;
}
@PostConstruct
public void init() {
visitante = new Visitantes();
String URL ="http://localhost:8888/api/visitantes";
Client client = ClientBuilder.newClient();
visitantes=client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<VisitantesDto>>() {});
}
public void oncapture(CaptureEvent captureEvent) {
foto = getRandomImageName();
data = captureEvent.getData();
ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
String path = servletContext.getRealPath("") + File.separator + "images" + File.separator +"tmp"+File.separator +foto+".jpeg";
FileImageOutputStream imageOutput;
try {
imageOutput = new FileImageOutputStream(new File(path));
imageOutput.write(data, 0, data.length);
imageOutput.close();
}
catch (IOException e) {
throw new FacesException("Error in writing captured image.", e);
}
}
private String getRandomImageName() {
int i = (int) (Math.random() * 10000000);
return String.valueOf(i);
}
public void buscarVisitantesPorDia(SelectEvent<Date> event) {
String URL ="http://localhost:8888/api/visitantes/";
Client client = ClientBuilder.newClient();
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
visitantes=client.target(URL+format.format(fechaBusqueda)).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<VisitantesDto>>() {});
}
public void registrarVisitante() throws IOException {
String URL ="http://localhost:8888/api/visitante";
Client client = ClientBuilder.newClient();
System.out.println("El nombre del visitante es: "+visitante.getNombre());
ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
String path = servletContext.getRealPath("") + File.separator + "images" + File.separator +"tmp"+File.separator +foto+".jpeg";
datos=Files.readAllBytes(Paths.get(path));
String s = Base64.getEncoder().encodeToString(datos);
visitante.setIdVisitante(uuid());
visitante.setGafete(gafete);
visitante.setFoto(s);
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(visitante,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.CREATED.getStatusCode()) {
addMessage("Confirmado","Visitante registrado");
} else {
addMessage("Fallo","Piso no registrado");
}
limpiarFormulario();
}
public void limpiarFormulario() {
visitante.setNombre("");
visitante.setApellidoPaterno("");
visitante.setApellidoMaterno("");
visitante.setIdentificacion("");
visitante.setNumIdentificacion("");
visitante.setPiso("");
visitante.setEmpresa("");
visitante.setAsunto("");
visitante.setAQuienVisita("");
gafete="";
ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
String path = servletContext.getRealPath("") + File.separator + "images" + File.separator +"tmp";
File file = new File(path);
File[] files = file.listFiles();
for (File f:files)
{
if (f.isFile() && f.exists())
{
f.delete();
System.out.println("successfully deleted");
}else{
System.out.println("cant delete a file due to open or error");
}
}
foto=null;
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public String uuid() {
Long numero = System.currentTimeMillis();
String cadena=numero.toString();
return cadena;
}
public void registrarSalida() {
String URL ="http://localhost:8888/api/visitantes";
Client client = ClientBuilder.newClient();
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.put(Entity.entity(idVisitante,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.OK.getStatusCode()) {
addMessage("Salida registrada","Visitante actualizado");
} else {
addMessage("Fallo","Visitante no registrado");
}
visitantes=client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<VisitantesDto>>() {});
}
}