Guarda tiempos de acceso

parent 7bdc91c6
......@@ -710,7 +710,7 @@ var LoginComponent = (function () {
if (!_this.matefunAdmin) {
_this.mostrarSelect = false;
_this.errorCargaLiceo = true;
_this.mensaje = 'Error en la carga de liceos';
_this.mensaje = 'No se encuentra configurado el administrador de matefun';
}
else {
_this.soloHayUnLiceo = (_this.schoolList.length == 1);
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -81,7 +81,7 @@ export class LoginComponent implements OnInit {
if (!this.matefunAdmin){
this.mostrarSelect = false;
this.errorCargaLiceo = true;
this.mensaje = 'Error en la carga de liceos'
this.mensaje = 'No se encuentra configurado el administrador de matefun'
}else{
this.soloHayUnLiceo = (this.schoolList.length==1)
if (this.schoolList.length==0) {
......
......@@ -368,35 +368,18 @@ public class LoginEJB {
try {
userTransaction.begin();
//MATEFUN ADMIN
Admin matefunAdmin = new Admin("matefunadmin", "Diego", "Forlan", Utils.generateHash("Matefun1.") , null , null);
Configuracion confa = Configuracion.getConfiguracionDefault();
matefunAdmin.setConfiguracion(confa);
//NO DEBE SETEARSE LICEO A matefunAdmin, o bien valor dummy
//ADMIN LICEO
//AdminLiceo adminLiceo0 = new AdminLiceo("admin-1", "Pablo", "Bengoechea" , null , null);
Configuracion conf = Configuracion.getConfiguracionDefault();
//adminLiceo0.setConfiguracion(conf);
Liceo liceoMoodleCloud = new Liceo("Liceo 3", "https://matefun.moodlecloud.com", "matefunsharedfiles", "31aafa8a09253623d6c2c3fca5a3d3a7", "serviciomatefun");
Admin matefunAdmin = new Admin("matefunadmin", "Cebolla", "Rodriguez", "dd9048d29561d898bd75276923990ab8ea01bb73", liceoMoodleCloud, confa);
//LICEO
Liceo liceoMoodleCloud = new Liceo("Liceo Moodlecloud", "https://matefun.moodlecloud.com", "wsuser", "b3ddd49822a81a429a45afbcd14bb0ed", "sample");
//adminLiceo0.setLiceo(liceoMoodleCloud);
em.persist(confa);
em.persist(matefunAdmin);
em.persist(conf);
//em.persist(adminLiceo0);
em.persist(liceoMoodleCloud);
em.persist(matefunAdmin);
userTransaction.commit();
} catch (Exception e) {
System.out.println("Exception");
System.out.println(e.getMessage());
System.out.println(e.getCause());
......@@ -406,9 +389,7 @@ public class LoginEJB {
} catch (Exception e1) {
}
}
return "ok";
}
......
......@@ -35,63 +35,35 @@ public class TiemposAccesoEJB {
@Resource
private UserTransaction userTransaction;
private void performSave(Long liceoId, Long moodleUserId, String tipo, String nombreEndpoint, Long tiempoms) throws Exception {
userTransaction.begin();
String fecha = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDateTime.now());
TiempoAcceso ta = em.find(TiempoAcceso.class, new TiempoAccesoPK(liceoId, tipo, nombreEndpoint, fecha));
Double tiempoDbl = (double)tiempoms;
if (ta==null) {
em.persist(new TiempoAcceso(new TiempoAccesoPK(liceoId, tipo, nombreEndpoint, fecha), moodleUserId, tiempoDbl, tiempoDbl, tiempoDbl, 1l));
}else{
ta.setPromedio( (tiempoms + ta.getCantidadDatos()*ta.getPromedio())/(ta.getCantidadDatos()+1) );
ta.setCantidadDatos(ta.getCantidadDatos() + 1);
if (tiempoDbl > ta.getMax()) {
ta.setMax(tiempoDbl);
}
if (tiempoDbl < ta.getMin()) {
ta.setMin(tiempoDbl);
}
em.refresh(ta);
}
userTransaction.commit();
}
public void saveAccessTime(Long liceoId, Long moodleUserId, String tipo, String nombreEndpoint, Long tiempoms) {
new Thread(new Runnable() {
@Override
public void run() {
try {
performSave(liceoId, moodleUserId, tipo, nombreEndpoint, tiempoms);
}catch(Exception e) {
e.printStackTrace();
}
}
}).start();
}
public void saveAccessTime(InvitadoEJB invitadoEJB, HttpServletRequest httpServletRequest, String tipo, String nombreEndpoint, Long tiempoms) {
new Thread(new Runnable() {
@Override
public void run() {
try {
String matefunToken = Utils.getToken(httpServletRequest);
performSave(invitadoEJB.getLiceoId(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), tipo, nombreEndpoint, tiempoms);
}catch(Exception e) {
e.printStackTrace();
}
}
}).start();
}
public void saveAccessTime(InvitadoEJB invitadoEJB, String matefunToken, String tipo, String nombreEndpoint, Long tiempoms) {
new Thread(new Runnable() {
@Override
public void run() {
try {
performSave(invitadoEJB.getLiceoId(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), tipo, nombreEndpoint, tiempoms);
String fecha = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDateTime.now());
userTransaction.begin();
TiempoAcceso ta = em.find(TiempoAcceso.class, new TiempoAccesoPK(liceoId, tipo, nombreEndpoint, fecha));
Double tiempoDbl = (double)tiempoms;
if (ta==null) {
em.persist(new TiempoAcceso(new TiempoAccesoPK(liceoId, tipo, nombreEndpoint, fecha), moodleUserId, tiempoDbl, tiempoDbl, tiempoDbl, 1l));
}else{
ta.setPromedio( (tiempoms + ta.getCantidadDatos()*ta.getPromedio())/(ta.getCantidadDatos()+1) );
ta.setCantidadDatos(ta.getCantidadDatos() + 1);
if (tiempoDbl > ta.getMax()) {
ta.setMax(tiempoDbl);
}
if (tiempoDbl < ta.getMin()) {
ta.setMin(tiempoDbl);
}
em.merge(ta);
}
userTransaction.commit();
}catch(Exception e) {
e.printStackTrace();
System.err.println("No se pudo guardar tiempo de acceso para: " + nombreEndpoint);
//e.printStackTrace();
try {
userTransaction.rollback();
}catch(Exception e2) {}
}
}
}).start();
......
......@@ -406,6 +406,8 @@ public class UsuarioEJB {
public String getMatefunAdminUsername() {
try {
return em.createQuery("select a from Admin a", Admin.class).getSingleResult().getCedula();
} catch (javax.persistence.NoResultException nre) {
System.err.println ("No se puede obtener el admin de matefun desde la BD.");
} catch (Exception ex) {
ex.printStackTrace();
}
......
package edu.proygrado.servicios.cursos;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
......@@ -18,6 +19,8 @@ import edu.proygrado.dto.CoursesDTO;
import edu.proygrado.dto.CreateNewCourseInputDTO;
import edu.proygrado.dto.SimplePostResultDTO;
import edu.proygrado.ejb.CoursesEJB;
import edu.proygrado.ejb.InvitadoEJB;
import edu.proygrado.ejb.TiemposAccesoEJB;
import edu.proygrado.matefun.MatefunException;
import edu.proygrado.utils.Utils;
......@@ -28,21 +31,36 @@ public class CursosRS{
@EJB
private CoursesEJB coursesEJB;
@EJB
private TiemposAccesoEJB tiempoAccesoEJB;
@EJB
private InvitadoEJB invitadoEJB;
@Inject
private HttpServletRequest httpServletRequest;
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<CoursesDTO> getAllCourses() throws Exception {
return coursesEJB.getAllCourses(Utils.getToken(httpServletRequest));
Long startTime = (new Date()).getTime();
String token = Utils.getToken(httpServletRequest);
List<CoursesDTO> ret = coursesEJB.getAllCourses(token);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /cursos", (new Date()).getTime()-startTime);
return ret;
}
@DELETE
@Path("/{cursoId}")
@Produces(MediaType.APPLICATION_JSON)
public SimplePostResultDTO deleteCourse(@PathParam("cursoId") long cursoId) throws Exception{
if ( cursoId != 0l )
return coursesEJB.deleteCourse(cursoId, Utils.getToken(httpServletRequest));
if ( cursoId != 0l ) {
Long startTime = (new Date()).getTime();
SimplePostResultDTO ret = coursesEJB.deleteCourse(cursoId, Utils.getToken(httpServletRequest));
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "DELETE /cursos/:cursoId", (new Date()).getTime()-startTime);
return ret;
}
throw new MatefunException("valores de entrada nulos en el servicio 'deleteCourse'");
}
......@@ -51,8 +69,13 @@ public class CursosRS{
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public SimplePostResultDTO createNewCourse(CreateNewCourseInputDTO input) throws Exception{
if (input != null)
return coursesEJB.createNewCourse(input, Utils.getToken(httpServletRequest));
if (input != null) {
Long startTime = (new Date()).getTime();
SimplePostResultDTO ret = coursesEJB.createNewCourse(input, Utils.getToken(httpServletRequest));
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "POST /cursos/createNewCourse", (new Date()).getTime()-startTime);
return ret;
}
throw new MatefunException("valores de entrada nulos en el servicio 'createNewCourse'");
}
......@@ -60,7 +83,11 @@ public class CursosRS{
@Path("/user")
@Produces(MediaType.APPLICATION_JSON)
public List<CoursesDTO> getAllUserCourses() throws Exception {
return coursesEJB.getAllUserCourses(Utils.getToken(httpServletRequest));
Long startTime = (new Date()).getTime();
List<CoursesDTO> ret = coursesEJB.getAllUserCourses(Utils.getToken(httpServletRequest));
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /cursos/user", (new Date()).getTime()-startTime);
return ret;
}
}
package edu.proygrado.servicios.evaluaciones;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.inject.Inject;
......@@ -19,16 +17,15 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import edu.proygrado.dto.AlumnoDTO;
import edu.proygrado.dto.ArchivoDTO;
import edu.proygrado.dto.Assignment;
import edu.proygrado.dto.GrupoDTO;
import edu.proygrado.dto.SimplePostResultDTO;
import edu.proygrado.dto.UsuarioDTO;
import edu.proygrado.ejb.ArchivosEJB;
import edu.proygrado.ejb.EvaluacionesEJB;
import edu.proygrado.ejb.InvitadoEJB;
import edu.proygrado.ejb.TiemposAccesoEJB;
import edu.proygrado.matefun.MatefunException;
import edu.proygrado.utils.Utils;
......@@ -45,6 +42,9 @@ public class EvaluacionesRS{
@EJB
private EvaluacionesEJB evaluacionesEJB;
@EJB
private TiemposAccesoEJB tiempoAccesoEJB;
@Inject
private HttpServletRequest httpServletRequest;
......@@ -52,10 +52,15 @@ public class EvaluacionesRS{
@Produces(MediaType.APPLICATION_JSON)
@Path("/assignments/all")
public List<Assignment> getAllAssignments() throws Exception {
if(Utils.esInvitado(invitadoEJB, httpServletRequest))
if(Utils.esInvitado(invitadoEJB, httpServletRequest)) {
throw new MatefunException("getAllAssignments for invitado");
else
return evaluacionesEJB.getAllAssignments(Utils.getToken(httpServletRequest), invitadoEJB);
}else {
Long startTime = (new Date()).getTime();
List<Assignment> ret = evaluacionesEJB.getAllAssignments(Utils.getToken(httpServletRequest), invitadoEJB);
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/assignments/all", (new Date()).getTime()-startTime);
return ret;
}
}
......@@ -65,7 +70,11 @@ public class EvaluacionesRS{
public SimplePostResultDTO entregarArchivoParaEvaluacion(@PathParam("assignmentId") Integer assignmentId, ArchivoDTO archivo) throws Exception {
if (archivo==null || assignmentId==null)
throw new MatefunException("valores de entrada invalidos para /evaluaciones/entregaarchivo");
return evaluacionesEJB.entregarArchivoParaEvaluacion(Utils.getToken(httpServletRequest), invitadoEJB, archivosEJB, archivo, assignmentId);
Long startTime = (new Date()).getTime();
SimplePostResultDTO ret = evaluacionesEJB.entregarArchivoParaEvaluacion(Utils.getToken(httpServletRequest), invitadoEJB, archivosEJB, archivo, assignmentId);
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "POST /evaluaciones/entregaarchivo/:assignmentId", (new Date()).getTime()-startTime);
return ret;
}
......@@ -76,7 +85,11 @@ public class EvaluacionesRS{
public ArchivoDTO corregirAssignment(ArchivoDTO archivo) throws Exception {
if (archivo==null || (archivo!=null && archivo.getEvaluacion()==null))
throw new MatefunException("valores de entrada invalidos para /evaluaciones/corregir");
return evaluacionesEJB.corregirAssignment(Utils.getToken(httpServletRequest), invitadoEJB, archivosEJB, archivo);
Long startTime = (new Date()).getTime();
ArchivoDTO ret = evaluacionesEJB.corregirAssignment(Utils.getToken(httpServletRequest), invitadoEJB, archivosEJB, archivo);
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "POST /evaluaciones/corregir", (new Date()).getTime()-startTime);
return ret;
}
......@@ -87,33 +100,33 @@ public class EvaluacionesRS{
public JsonObject getSubmissionStatus(@QueryParam("assignid") Integer assignid, @QueryParam("userid") Integer userid, @QueryParam("groupid") Integer groupid) throws Exception {
if (assignid==null)
throw new Exception("Error en getSubmissionStatus, assignid es null");
return evaluacionesEJB.getSubmissionStatus(Utils.getToken(httpServletRequest), invitadoEJB, archivosEJB, assignid, userid, groupid);
Long startTime = (new Date()).getTime();
JsonObject ret = evaluacionesEJB.getSubmissionStatus(Utils.getToken(httpServletRequest), invitadoEJB, archivosEJB, assignid, userid, groupid);
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/getSubmissionStatus", (new Date()).getTime()-startTime);
return ret;
}
@GET
@Path("/grupal")
@Produces(MediaType.APPLICATION_JSON)
public List<GrupoDTO> getAssignmentsPorGrupos(@QueryParam("curso") String curso) throws Exception {
System.out.println("getAssignmentsPorGrupos START");
public List<GrupoDTO> getAssignmentsPorGrupos(@QueryParam("curso") String curso) throws Exception {
Long startTime = (new Date()).getTime();
List<GrupoDTO> ret = this.evaluacionesEJB.getAssignmentsPorGrupos(invitadoEJB, Utils.getToken(httpServletRequest), Long.parseLong(curso) );
System.out.println("getAssignmentsPorGrupos END, duracion: " + Math.floorDiv((new Date()).getTime()-startTime, 1000) + "s");
List<GrupoDTO> ret = this.evaluacionesEJB.getAssignmentsPorGrupos(invitadoEJB, Utils.getToken(httpServletRequest), Long.parseLong(curso));
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/grupal", (new Date()).getTime()-startTime);
return ret;
}
@GET
@Path("/individual")
@Produces(MediaType.APPLICATION_JSON)
public Map<String, List<AlumnoDTO>> getAssignmentsPorAlumnos(@QueryParam("curso") String curso) throws Exception {
System.out.println("getAssignmentsPorAlumnos START");
public Map<String, List<AlumnoDTO>> getAssignmentsPorAlumnos(@QueryParam("curso") String curso) throws Exception {
Long startTime = (new Date()).getTime();
List<AlumnoDTO> ret = this.evaluacionesEJB.getAssignmentsPorAlumnos(invitadoEJB, Utils.getToken(httpServletRequest), Long.parseLong(curso));
System.out.println("getAssignmentsPorAlumnos END, duracion: " + Math.floorDiv((new Date()).getTime()-startTime, 1000) + "s");
Map<String, List<AlumnoDTO>> alumnosPorCurso = new HashMap<String, List<AlumnoDTO>>();
alumnosPorCurso.put(curso, ret);
alumnosPorCurso.put(curso, this.evaluacionesEJB.getAssignmentsPorAlumnos(invitadoEJB, Utils.getToken(httpServletRequest), Long.parseLong(curso)));
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/individual", (new Date()).getTime()-startTime);
return alumnosPorCurso;
}
......
package edu.proygrado.servicios.grupos;
import java.util.Date;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import edu.proygrado.dto.ArchivoDTO;
import edu.proygrado.dto.CoursesDTO;
import edu.proygrado.ejb.GruposEJB;
import edu.proygrado.ejb.InvitadoEJB;
import edu.proygrado.matefun.MatefunException;
import edu.proygrado.modelo.LiceoPK;
import edu.proygrado.ejb.TiemposAccesoEJB;
import edu.proygrado.utils.Utils;
@Stateless
......@@ -29,28 +26,21 @@ public class GruposRS {
@EJB
private InvitadoEJB invitadoEJB;
@EJB
private TiemposAccesoEJB tiempoAccesoEJB;
@Inject
private HttpServletRequest httpServletRequest;
@POST
@Path("/{liceoId}/{anio}/{grado}/{grupo}/archivo")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public void asignarArchivo(@PathParam("liceoId") Long liceoId, @PathParam("anio") Integer anio, @PathParam("grado") Integer grado, @PathParam("grupo") String grupo, ArchivoDTO archivoDTO) throws Exception{
//FE: HaskellService.compartirArchivoGrupo -> post(SERVER+'/servicios/grupo/'+grupo.liceoId+'/'+grupo.anio+'/'+grupo.grado+'/'+grupo.grupo+'/archivo'
throw new MatefunException ("Eliminado");
/*
LiceoPK lpk = new LiceoPK(liceoId);
GrupoPK grupoPK = new GrupoPK(anio, grado, grupo, lpk);
gruposEJB.agregarArchivoGrupo(archivoDTO.getId(), grupoPK);
*/
}
@GET
@Path("/members/{courseid}")
@Produces(MediaType.APPLICATION_JSON)
public CoursesDTO getCourseGroupsAndMembers(@PathParam("courseid") Long courseid) throws Exception {
return this.gruposEJB.getCourseGroupsAndMembers(courseid, Utils.getToken(httpServletRequest), invitadoEJB);
Long startTime = (new Date()).getTime();
CoursesDTO ret = this.gruposEJB.getCourseGroupsAndMembers(courseid, Utils.getToken(httpServletRequest), invitadoEJB);
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /grupo/members/:courseid", (new Date()).getTime()-startTime);
return ret;
}
}
package edu.proygrado.servicios.liceo;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
......@@ -14,9 +17,12 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import edu.proygrado.dto.LiceoDTO;
import edu.proygrado.dto.SimplePostResultDTO;
import edu.proygrado.ejb.InvitadoEJB;
import edu.proygrado.ejb.LiceoEJB;
import edu.proygrado.ejb.LoginEJB;
import edu.proygrado.ejb.TiemposAccesoEJB;
import edu.proygrado.matefun.MatefunException;
import edu.proygrado.utils.Utils;
......@@ -27,6 +33,15 @@ public class LiceoRS{
@EJB
private LoginEJB loginEJB;
@EJB
private TiemposAccesoEJB tiempoAccesoEJB;
@EJB
private InvitadoEJB invitadoEJB;
@Inject
private HttpServletRequest httpServletRequest;
@EJB
private LiceoEJB liceoEJB;
......@@ -35,8 +50,13 @@ public class LiceoRS{
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public SimplePostResultDTO addNewSchool(LiceoDTO input) throws MatefunException{
if (input != null)
return liceoEJB.addNewSchool(input);
if (input != null) {
Long startTime = (new Date()).getTime();
SimplePostResultDTO ret = liceoEJB.addNewSchool(input);
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "POST /liceo/addNewSchool", (new Date()).getTime()-startTime);
return ret;
}
throw new MatefunException("Valores de entrada nulos en el servicio 'addNewSchool'");
}
......@@ -45,9 +65,13 @@ public class LiceoRS{
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public SimplePostResultDTO updateSchool(LiceoDTO input) throws Exception{
if (input != null)
return liceoEJB.updateSchool(input);
if (input != null) {
Long startTime = (new Date()).getTime();
SimplePostResultDTO ret = liceoEJB.updateSchool(input);
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "POST /liceo/updateSchool", (new Date()).getTime()-startTime);
return ret;
}
throw new MatefunException("Valores de entrada nulos en el servicio 'updateSchool'");
}
......@@ -55,17 +79,24 @@ public class LiceoRS{
@Path("/{liceoId}")
@Produces(MediaType.APPLICATION_JSON)
public SimplePostResultDTO eliminarLiceo(@PathParam("liceoId") String liceoId) throws Exception{
System.out.println("eliminarLiceo: " + liceoId);
if (liceoId!=null && !liceoId.isEmpty())
return liceoEJB.eliminarLiceo(liceoId);
if (liceoId!=null && !liceoId.isEmpty()) {
Long startTime = (new Date()).getTime();
SimplePostResultDTO ret = liceoEJB.eliminarLiceo(liceoId);
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "DELETE /liceo/:liceoId", (new Date()).getTime()-startTime);
return ret;
}
throw new MatefunException("No se pudo eliminar liceo");
}
@GET
@Path("/getAllLiceos")
@Produces(MediaType.APPLICATION_JSON)
public List<LiceoDTO> getAllLiceos(){
return liceoEJB.getAllLiceos();
public List<LiceoDTO> getAllLiceos() {
Long startTime = (new Date()).getTime();
List<LiceoDTO> ret = liceoEJB.getAllLiceos();
tiempoAccesoEJB.saveAccessTime(-1l, -1l, "matefun", "GET /liceo/getAllLiceos", (new Date()).getTime()-startTime);
return ret;
}
}
......@@ -43,7 +43,7 @@ public class LoginRS{
Long startTime = (new Date()).getTime();
if (!Utils.isNullOrEmpty(credenciales.getCedula()) && !Utils.isNullOrEmpty(credenciales.getPassword())) {
UsuarioDTO ret = loginEJB.login(credenciales.getCedula(), credenciales.getPassword(), credenciales.getLiceo());
tiempoAccesoEJB.saveAccessTime(invitadoEJB, ret.getToken(), "matefun", "POST /login", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(ret.getToken()), invitadoEJB.getMoodleUserId(ret.getToken()), "matefun", "POST /login", (new Date()).getTime()-startTime);
return ret;
}
else throw new MatefunException("Datos incorrectos para login");
......@@ -54,10 +54,12 @@ public class LoginRS{
@Produces(MediaType.APPLICATION_JSON)
@Path("/logout")
public String logout() throws Exception{
Long startTime = (new Date()).getTime();
String matefunToken = Utils.getToken(httpServletRequest);
Long liceoId = invitadoEJB.getLiceoId(matefunToken);
Long moodleUserId = invitadoEJB.getMoodleUserId(matefunToken);
Long startTime = (new Date()).getTime();
String ret = loginEJB.logout(matefunToken);
tiempoAccesoEJB.saveAccessTime(liceoId, moodleUserId, "matefun", "GET /logout", (new Date()).getTime()-startTime);
return ret;
......@@ -70,13 +72,15 @@ public class LoginRS{
public UsuarioDTO getLogindAdditionalInformation() throws Exception{
Long startTime = (new Date()).getTime();
UsuarioDTO ret = loginEJB.getLogindAdditionalInformation(Utils.getToken(httpServletRequest));
tiempoAccesoEJB.saveAccessTime(invitadoEJB, ret.getToken(), "matefun", "POST /loginAdditionalInfo", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(ret.getToken()), invitadoEJB.getMoodleUserId(ret.getToken()), "matefun", "POST /loginAdditionalInfo", (new Date()).getTime()-startTime);
return ret;
}
@GET
@Path("/datosDePrueba")
public String cargarDatosDePrueba(){
public String cargarDatosDePrueba() {
System.out.println("Cargar datos de prueba");
return loginEJB.cargarDatosDePrueba();
}
......
package edu.proygrado.servicios.usuario;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
......@@ -20,6 +21,8 @@ import edu.proygrado.dto.BackupDocenteDTO;
import edu.proygrado.dto.BackupUsuarioDTO;
import edu.proygrado.dto.ConfiguracionDTO;
import edu.proygrado.dto.UserResultDTO;
import edu.proygrado.ejb.InvitadoEJB;
import edu.proygrado.ejb.TiemposAccesoEJB;
import edu.proygrado.ejb.UsuarioEJB;
import edu.proygrado.matefun.MatefunException;
import edu.proygrado.utils.StringPair;
......@@ -34,6 +37,12 @@ public class UsuarioRS {
@Inject
private HttpServletRequest httpServletRequest;
@EJB
private TiemposAccesoEJB tiempoAccesoEJB;
@EJB
private InvitadoEJB invitadoEJB;
@PUT
@Path("{cedula}/configuracion")
@Produces(MediaType.APPLICATION_JSON)
......@@ -42,7 +51,11 @@ public class UsuarioRS {
if(cedula.toLowerCase().equals("invitado")){
return configuracion;
}else{
return usuarioEJB.actualizarConfiguracion(cedula,configuracion);
Long startTime = (new Date()).getTime();
ConfiguracionDTO ret = usuarioEJB.actualizarConfiguracion(cedula,configuracion);
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getLiceoId(token), invitadoEJB.getMoodleUserId(token), "matefun", "PUT /usuario/:cedula/configuracion", (new Date()).getTime()-startTime);
return ret;
}
}