use of com.nabalive.data.core.model.User in project NabAlive by jcheype.
the class UserController method init.
@PostConstruct
void init() {
restHandler.post(new Route("/user/login") {
@Override
public void handle(Request request, Response response, Map<String, String> map) throws Exception {
String email = checkNotNull(request.getParam("email")).toLowerCase();
String password = checkNotNull(request.getParam("password"));
User user = checkNotNull(userDAO.findOne("email", email));
user.checkPassword(password);
Token token = new Token();
token.setUserId(user.getId());
// Map result = new HashMap();
// result.put("token", TokenUtil.encode(token));
response.writeJSON(TokenUtil.encode(token));
}
}).post(new Route("/user/register") {
@Override
public void handle(Request request, Response response, Map<String, String> map) throws Exception {
String firstname = checkNotNull(request.getParam("firstname"));
String lastname = checkNotNull(request.getParam("lastname"));
String email = checkNotNull(request.getParam("email")).toLowerCase();
String password = checkNotNull(request.getParam("password"));
User user = new User();
user.setFirstname(firstname);
user.setLastname(lastname);
user.setEmail(email);
user.setPassword(password);
userDAO.save(user);
logger.info("new user: {}", user.getId());
Token token = new Token();
token.setUserId(user.getId());
response.writeJSON(TokenUtil.encode(token));
}
}).post(new Route("/user/reset") {
@Override
public void handle(Request request, Response response, Map<String, String> map) throws Exception {
String email = checkNotNull(request.getParam("email")).toLowerCase();
String uuid = checkNotNull(request.getParam("uuid"));
String password = checkNotNull(request.getParam("password"));
User user = checkNotNull(userDAO.findOne("email", email));
if (uuid.length() > 0 && uuid.equalsIgnoreCase(user.getResetId())) {
Query<User> query = userDAO.createQuery().filter("_id", user.getId());
user.setPassword(password);
userDAO.update(query, userDAO.createUpdateOperations().set("password", user.getPassword()).unset("resetId"));
response.writeJSON("ok");
}
throw new HttpException(HttpResponseStatus.INTERNAL_SERVER_ERROR, "bab reset ID");
}
}).get(new Route("/user/reset/mail") {
@Override
public void handle(Request request, Response response, Map<String, String> map) throws Exception {
String email = checkNotNull(request.getParam("email")).toLowerCase();
User user = checkNotNull(userDAO.findOne("email", email));
Query<User> query = userDAO.createQuery().filter("_id", user.getId());
String uuid = UUID.randomUUID().toString();
userDAO.update(query, userDAO.createUpdateOperations().set("resetId", uuid));
SendMail.postMail(new String[] { email }, "Reset de mot de passe Nabalive", "http://www.nabalive.com/#reset/" + uuid + "/" + user.getEmail(), "no_reply@nabalive.com");
response.writeJSON("ok");
}
}).get(new Route("/user/info") {
@Override
public void handle(Request request, Response response, Map<String, String> map) throws Exception {
String tokenString = checkNotNull(request.getParamOrHeader("token"));
Token token = TokenUtil.decode(tokenString, Token.class);
User user = checkNotNull(userDAO.get(token.getUserId()));
response.writeJSON(user);
}
}).get(new Route("/user/test") {
@Override
public void handle(Request request, Response response, Map<String, String> map) throws Exception {
response.write("ok");
}
});
}
Aggregations