public int add(AccountAddViewModel accountAddViewModel) { int result = 0; try { Accounts account = new Accounts(); account.setRole(Accounts.AccountRole.CUSTOMER); Timestamp current = new Timestamp((new Date()).getTime()); account.setCreated(current); account.setUpdated(current); account.setDeleted(false); account.setUserName(accountAddViewModel.getUserName()); account.setFirstName(accountAddViewModel.getFirstName()); account.setLastName(accountAddViewModel.getLastName()); account.setEmail(accountAddViewModel.getEmail()); account.setPassword(accountAddViewModel.getPassword()); // todo: hash account.setPhoneNumber(accountAddViewModel.getPhoneNumber()); account.setStreetName(accountAddViewModel.getStreetName()); account.setStreetNumber(accountAddViewModel.getStreetNumber()); account.setCity(accountAddViewModel.getCity()); account.setTags(accountAddViewModel.getTags()); em.persist(account); em.flush(); result = account.getId(); } catch (Exception e) { logger.warn(e.getMessage()); } return result; }
public Optional<AuthenticationResponseViewModel> authenticate( AccountAuthenticateViewModel authViewModel) { Optional<AuthenticationResponseViewModel> result = Optional.empty(); if (authViewModel.credentialsAreValid()) { Accounts account = null; try { if (authViewModel.userNameIsSet()) { account = em.createNamedQuery("Accounts.findByUserName", Accounts.class) .setParameter("userName", authViewModel.getUserName()) .getSingleResult(); } else if (authViewModel.emailIsSet()) { account = em.createNamedQuery("Accounts.findByEmail", Accounts.class) .setParameter("email", authViewModel.getEmail()) .getSingleResult(); } if (account.getPassword().equals(authViewModel.getPassword())) { logger.info( "authentication for user '" + account.getUserName() + "' (" + account.getId() + ") succeeded"); AuthenticationResponseViewModel authenticationResponseViewModel = new AuthenticationResponseViewModel(); authenticationResponseViewModel.setId(account.getId()); authenticationResponseViewModel.setRole(account.getRole()); result = Optional.of(authenticationResponseViewModel); } } catch (Exception e) { logger.warn(e.getMessage()); } } return result; }