package nl.topicus.konijn.xmpp.util;
import nl.topicus.konijn.data.dao.hibernate.NabaztagDao;
import nl.topicus.konijn.data.entity.Nabaztag;
/**
* Used in Vysper to communicate with Wicket and the database.
*
* @author Joost Limburg
*
*/
public class VysperDelegator {
private NabaztagDao nabDao;
public static String passwordRegex = "^00[0-9a-zA-Z]{10,10}$";
public VysperDelegator(NabaztagDao nabDao) {
this.nabDao = nabDao;
}
/**
* Register a nabaztag to the database.
*
* @param uid
* @param password
* @return
*/
public boolean vysperRegister(String uid, String password) {
boolean reg = false;
if (uid.length() == 12 && password.length() > 5
&& uid.matches(passwordRegex)) {
if (nabDao.getNabaztag(uid) == null) {
Nabaztag nab = new Nabaztag();
nab.setLeftEar(8);
nab.setRightEar(1);
nab.setBlink(1);
nab.setUid(uid);
nabDao.save(nab);
reg = true;
}
}
return reg;
}
/**
* Return a nabaztag registration from the database.
*
* @param uid
* @return
*/
public Nabaztag vysperGetNabaztag(String uid) {
return nabDao.getNabaztag(uid);
}
/**
* Check if a nabaztag exists in the database.
*
* @param uid
* @return
*/
public boolean vysperExists(String uid) {
if (nabDao.getNabaztag(uid) != null)
return true;
else
return false;
}
/**
* Authenticate a nabaztag
*
* @param uid
* @param password
* @return
*/
public boolean vysperAuthenticate(String uid, String password) {
return nabDao.authenticate(uid);
}
}