ligaazteca-info
Este modulo cliente nos va a traer todo lo que concierne a información de la liga sobre torneos ya sea para inscripción, los que se estan jugando y los que ya se terminaron.Ahora vamos con la parte de la vista nos vamos al modulo ligaazteca-info y el archivo pom.xml nos queda de la siguiente manera:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.tutosoftware.ligaazteca</groupId>
<artifactId>ligaazteca</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>ligaazteca-info</artifactId>
<packaging>war</packaging>
<name>Liga Azteca Info</name>
<build>
<finalName>ligaaztecainfo</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/main/webapp/WEB-INF</directory>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>com.sun.el</groupId>
<artifactId>el-ri</artifactId>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
</dependency>
</dependencies>
</project>
Modelo
El modelo se realiza para consumir los objetos del api rest que realizamos en springboot.Creamos el paquete com.tutosoftware.ligaazteca.model en el creamos la clase Torneo
package com.tutosoftware.ligaazteca.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter @Setter @NoArgsConstructor @AllArgsConstructor
public class Torneo {
private String idTorneo;
private String nombreTorneo;
private int cantidadEquipos;
private int activarTorneo;
private double costoInscripcion;
private int numJugPorEquipo;
private int numVueltas;
private int refuerzos;
}
En el mismo paquete creamos la clase EquipoKey
package com.tutosoftware.ligaazteca.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter @Setter @NoArgsConstructor @AllArgsConstructor
public class EquipoKey {
private String idTorneo;
private String idEquipo;
}
Creamos la clase Equipo
package com.tutosoftware.ligaazteca.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter @Setter @NoArgsConstructor @AllArgsConstructor
public class Equipo {
private EquipoKey pk;
private String nombreEquipo;
private String delegado;
private String campo;
private String email;
private String password;
private String telefono;
private int idStatus;
}
ManagedBean
Creamos los Beans para las vistas.Creamos el paquete com.tutosoftware.ligaazteca.view y Creamos la clase TorneoView
package com.tutosoftware.ligaazteca.view;
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 com.tutosoftware.ligaazteca.model.Torneo;
@ManagedBean
@SessionScoped
public class TorneoView {
private String idTorneo;
private String nombreTorneo;
private int cantidadEquipos;
private int activarTorneo;
private double costoInscripcion;
private int numJugPorEquipo;
private int numVueltas;
private int refuerzos;
private List<Torneo> torneosIncripcion;
public List<Torneo> getTorneosIncripcion() {
return torneosIncripcion;
}
public void setTorneosIncripcion(List<Torneo> torneosIncripcion) {
this.torneosIncripcion = torneosIncripcion;
}
public String getIdTorneo() {
return idTorneo;
}
public void setIdTorneo(String idTorneo) {
this.idTorneo = idTorneo;
}
public String getNombreTorneo() {
return nombreTorneo;
}
public void setNombreTorneo(String nombreTorneo) {
this.nombreTorneo = nombreTorneo;
}
public int getCantidadEquipos() {
return cantidadEquipos;
}
public void setCantidadEquipos(int cantidadEquipos) {
this.cantidadEquipos = cantidadEquipos;
}
public int getActivarTorneo() {
return activarTorneo;
}
public void setActivarTorneo(int activarTorneo) {
this.activarTorneo = activarTorneo;
}
public double getCostoInscripcion() {
return costoInscripcion;
}
public void setCostoInscripcion(double costoInscripcion) {
this.costoInscripcion = costoInscripcion;
}
public int getNumJugPorEquipo() {
return numJugPorEquipo;
}
public void setNumJugPorEquipo(int numJugPorEquipo) {
this.numJugPorEquipo = numJugPorEquipo;
}
public int getNumVueltas() {
return numVueltas;
}
public void setNumVueltas(int numVueltas) {
this.numVueltas = numVueltas;
}
public int getRefuerzos() {
return refuerzos;
}
public void setRefuerzos(int refuerzos) {
this.refuerzos = refuerzos;
}
@PostConstruct
public void init() {
String URL ="http://localhost:8888/api/torneos/";
int inscripcion = 0;
Client client = ClientBuilder.newClient();
torneosIncripcion=client.target(URL+inscripcion).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Torneo>>() {});
}
}
En este paquete creamos la clase EquipoView
package com.tutosoftware.ligaazteca.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.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import com.tutosoftware.ligaazteca.model.Equipo;
import com.tutosoftware.ligaazteca.model.EquipoKey;
@ManagedBean
@SessionScoped
public class EquipoView implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private EquipoKey pk;
private String idTorneo;
private String idEquipo;
private String nombreEquipo;
private String delegado;
private String campo;
private String email;
private String password;
private String telefono;
private int idStatus;
public EquipoKey getPk() {
return pk;
}
public void setPk(EquipoKey pk) {
this.pk = pk;
}
public String getIdTorneo() {
return idTorneo;
}
public void setIdTorneo(String idTorneo) {
this.idTorneo = idTorneo;
}
public String getIdEquipo() {
return idEquipo;
}
public void setIdEquipo(String idEquipo) {
this.idEquipo = idEquipo;
}
public String getNombreEquipo() {
return nombreEquipo;
}
public void setNombreEquipo(String nombreEquipo) {
this.nombreEquipo = nombreEquipo;
}
public String getDelegado() {
return delegado;
}
public void setDelegado(String delegado) {
this.delegado = delegado;
}
public String getCampo() {
return campo;
}
public void setCampo(String campo) {
this.campo = campo;
}
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 getTelefono() {
return telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
public int getIdStatus() {
return idStatus;
}
public void setIdStatus(int idStatus) {
this.idStatus = idStatus;
}
public void insertarEquipo() {
Equipo equipo = new Equipo();
EquipoKey pks = new EquipoKey();
System.out.println(idTorneo);
pks.setIdTorneo(idTorneo);
idEquipo= uuid();
pks.setIdEquipo(idEquipo);
equipo.setPk(pks);
equipo.setNombreEquipo(nombreEquipo);
equipo.setDelegado(delegado);
equipo.setCampo(campo);
equipo.setEmail(email);
equipo.setPassword(password);
equipo.setTelefono(telefono);
//idStatus = 0 registrado
equipo.setIdStatus(0);
String URL ="http://localhost:8888/api/equipos";
Client client = ClientBuilder.newClient();
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(equipo,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.CREATED.getStatusCode()) {
addMessage("Confirmado","Equipo aceptado");
} else {
addMessage("Fallo","Equipo no registrado");
}
limpiarEquipo();
}
public void limpiarEquipo(){
nombreEquipo ="";
delegado ="";
campo="";
email="";
password="";
telefono="";
}
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;
}
}