Search in sources :

Example 1 with User

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");
        }
    });
}
Also used : User(com.nabalive.data.core.model.User) Query(com.google.code.morphia.query.Query) Request(com.nabalive.framework.web.Request) Token(com.nabalive.server.web.Token) HttpException(com.nabalive.framework.web.exception.HttpException) Response(com.nabalive.framework.web.Response) HttpException(com.nabalive.framework.web.exception.HttpException) Map(java.util.Map) Route(com.nabalive.framework.web.Route) PostConstruct(javax.annotation.PostConstruct)

Aggregations

Query (com.google.code.morphia.query.Query)1 User (com.nabalive.data.core.model.User)1 Request (com.nabalive.framework.web.Request)1 Response (com.nabalive.framework.web.Response)1 Route (com.nabalive.framework.web.Route)1 HttpException (com.nabalive.framework.web.exception.HttpException)1 Token (com.nabalive.server.web.Token)1 Map (java.util.Map)1 PostConstruct (javax.annotation.PostConstruct)1