Controller
Last updated
Was this helpful?
Last updated
Was this helpful?
En PersonaController.java
En el método save()
persona= personaRepository.addUserInfoForSaveMethod(persona, "myusername", "create");
En el método edit()
persona = personaRepository.addUserInfoForEditMethod(persona, "myusarname", "update");
Ejecutar el proyecto
Creamos un documento y realizamos ediciones sobre el, si consultamos el documento podemos ver las acciones realizadas por los usuarios en el mismo.
PersonaController.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.avbravo.practica.controller;
import com.avbravo.jmoordb.configuration.JmoordbContext;
import com.avbravo.jmoordb.mongodb.history.repository.RevisionHistoryRepository;
import com.avbravo.jmoordb.services.RevisionHistoryServices;
import com.avbravo.jmoordbutils.JsfUtil;
import com.avbravo.practicaejb.entity.Persona;
import com.avbravo.practicaejb.repository.PersonaRepository;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
/**
*
* @author avbravo
*/
@Named
@ViewScoped
public class PersonaController implements Serializable {
private static final long serialVersionUID = 1L;
Persona persona = new Persona();
@Inject
PersonaRepository personaRepository;
@Inject
RevisionHistoryRepository repositoryRevisionHistory;
@Inject
RevisionHistoryServices revisionHistoryServices;
List<Persona> personaList = new ArrayList<>();
public List<Persona> getPersonaList() {
// return personaList;
return personaRepository.findAll();
}
public void setPersonaList(List<Persona> personaList) {
this.personaList = personaList;
}
public Persona getPersona() {
return persona;
}
public void setPersona(Persona persona) {
this.persona = persona;
}
@PostConstruct
public void init() {
repositoryRevisionHistory.setDatabase("practica_history");
if(JmoordbContext.get("action")!= null){
String action = (String)JmoordbContext.get("action");
if(action.equals("view")){
persona = (Persona)JmoordbContext.get("persona");
}
}
//Usuario jmoordb_user = (Usuario) JmoordbContext.get("jmoordb_user");
//
// JmoordbConnection jmc = new JmoordbConnection.Builder()
// .withSecurity(false)
// .withDatabase("practica")
// .withHost("")
// .withPort(0)
// .withUsername("")
// .withPassword("")
// .build();
}
public String save() {
try {
persona.setCedula(persona.getCedula().toLowerCase());
Optional<Persona> optional = personaRepository.findById(persona);
if (optional.isPresent()) {
JsfUtil.warningMessage("Existe una persona con esa cedula");
return null;
}
persona= personaRepository.addUserInfoForSaveMethod(persona, "myusername", "create");
// persona.setUserInfo(personaRepository.generateListUserinfo("myusername", "create"));
if (personaRepository.save(persona, false)) {
JsfUtil.successMessage("Guardado");
repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(persona.getCedula(),
"myusername",
"create", "persona", personaRepository.toDocument(persona).toString()));
persona = new Persona();
} else {
JsfUtil.errorDialog("no se guardo()", personaRepository.getException().toString());
}
} catch (Exception e) {
JsfUtil.errorDialog("save()", e.getLocalizedMessage());
}
return "";
}
public String delete(Object item, Boolean deleteonviewpage) {
String path = "";
try {
persona = (Persona) item;
if (personaRepository.delete("cedula", persona.getCedula())) {
repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(persona.getCedula(),
"myusername",
"delete", "persona", personaRepository.toDocument(persona).toString()));
JsfUtil.successMessage("Se elimino la persona");
if (!deleteonviewpage) {
personaList.remove(persona);
} else {
persona = new Persona();
}
}
} catch (Exception e) {
JsfUtil.errorDialog("delete()", e.getLocalizedMessage());
}
return "";
}// </editor-fold>
public String edit() {
try {
repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(persona.getCedula(),
"myusername",
"update", "persona", personaRepository.toDocument(persona).toString()));
persona = personaRepository.addUserInfoForEditMethod(persona, "myusarname", "update");
personaRepository.update(persona);
JsfUtil.successMessage("Se actualizo el documento");
} catch (Exception e) {
JsfUtil.errorDialog("edit()", e.getLocalizedMessage());
}
return "";
}// </editor-fold>
public String prepare(Persona persona){
try{
JmoordbContext.put("persona", persona);
JmoordbContext.put("action", "view");
} catch (Exception e) {
JsfUtil.errorDialog("edit()", e.getLocalizedMessage());
}
return "view";
}
}