MentaTutorials

Rev

Rev 16 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 16 Rev 19
Line 10... Line 10...
10
import org.mentawai.mail.TextLetter;
10
import org.mentawai.mail.TextLetter;
11
11
12
/**
12
/**
13
 *
13
 *
14
 * Service that do some business logic before access DAO layer.
14
 * Service that do some business logic before access DAO layer.
15
 *
-
 
-
 
15
 *
16
 */
16
 */
17
public class UserServiceImpl implements UserService {
17
public class UserServiceImpl implements UserService {
18
18
19
        private UserDAO userDAO;
-
 
20
       
-
 
21
        public UserServiceImpl(UserDAO userDAO) {
-
 
-
 
19
        private final UserDAO userDAO;
-
 
20
-
 
21
        public UserServiceImpl(final UserDAO userDAO) {
22
                this.userDAO = userDAO;
22
                this.userDAO = userDAO;
23
        }
23
        }
24
       
-
 
-
 
24
25
        @Override
25
        @Override
26
        public User findByUsername(String username) {
-
 
27
                if(username == null) throw new IllegalArgumentException("Username cannot be null");
-
 
28
               
-
 
-
 
26
        public User findByUsername(final String username) {
-
 
27
                if (username == null) {
-
 
28
                        throw new IllegalArgumentException("Username cannot be null");
-
 
29
                }
-
 
30
29
                return userDAO.findByUsername(username);
31
                return userDAO.findByUsername(username);
30
        }
32
        }
31
33
32
        public User load(int id) {
-
 
33
                if(id < 1) return null;
-
 
34
               
-
 
-
 
34
        @Override
-
 
35
        public User load(final int id) {
-
 
36
                if (id < 1) {
-
 
37
                        return null;
-
 
38
                }
-
 
39
35
                return userDAO.load(id);
40
                return userDAO.load(id);
36
        }
41
        }
37
42
38
        @Override
43
        @Override
39
        public void save(User u) {
-
 
-
 
44
        public void save(final User u) {
40
45
41
                if(u.getUsername() == null || u.getUsername().isEmpty())
-
 
-
 
46
                if (u.getUsername() == null || u.getUsername().isEmpty()) {
42
                        throw new IllegalStateException("Username cannot be null");
47
                        throw new IllegalStateException("Username cannot be null");
43
               
-
 
44
                if(u.getId() > 0) {
-
 
-
 
48
                }
-
 
49
-
 
50
                if (u.getId() > 0) {
45
                        userDAO.update(u);
51
                        userDAO.update(u);
46
                       
-
 
47
                } else {
-
 
-
 
52
-
 
53
                }
-
 
54
                else {
48
                        userDAO.insert(u);
55
                        userDAO.insert(u);
49
                       
-
 
-
 
56
50
                        // Send email to any new user with password
57
                        // Send email to any new user with password
51
                        sendWelcomeMail(u);
58
                        sendWelcomeMail(u);
52
                }
59
                }
53
               
-
 
-
 
60
54
        }
61
        }
55
62
56
        private void sendWelcomeMail(User u) {
-
 
57
               
-
 
58
                Letter welcome = new TextLetter("welcome.txt");
-
 
-
 
63
        private void sendWelcomeMail(final User u) {
-
 
64
-
 
65
                final Letter welcome = new TextLetter("welcome.txt");
59
                welcome.setAttribute("username", u.getUsername());
66
                welcome.setAttribute("username", u.getUsername());
60
                welcome.setAttribute("password", u.getPassword());
67
                welcome.setAttribute("password", u.getPassword());
61
               
-
 
-
 
68
62
                try {
69
                try {
63
               
-
 
64
                        String subject = welcome.getSubject(u.getLocale());
-
 
65
                        String body = welcome.getText(u.getLocale());
-
 
66
               
-
 
-
 
70
-
 
71
                        final String subject = welcome.getSubject(u.getLocale());
-
 
72
                        final String body = welcome.getText(u.getLocale());
-
 
73
67
                        SimpleEmail.sendLater(u.getUsername(), u.getEmail(), subject, body);
74
                        SimpleEmail.sendLater(u.getUsername(), u.getEmail(), subject, body);
68
                       
-
 
69
                } catch(Exception e) {
-
 
70
                       
-
 
-
 
75
-
 
76
                }
-
 
77
                catch (final Exception e) {
-
 
78
71
                        System.err.println("Error sending email to: " + u.getEmail());
79
                        System.err.println("Error sending email to: " + u.getEmail());
72
                       
-
 
-
 
80
73
                        e.printStackTrace();
81
                        e.printStackTrace();
74
                }
82
                }
75
               
-
 
-
 
83
76
        }
84
        }
77
85
78
       
-
 
79
        @Override
86
        @Override
80
        public User login(User user) throws LoginException {
-
 
81
               
-
 
82
                User userFinded = userDAO.findByUsername(user.getUsername());
-
 
83
               
-
 
84
                if(userFinded == null) {
-
 
-
 
87
        public User login(final User user) throws LoginException {
-
 
88
-
 
89
                final User userFinded = userDAO.findByUsername(user.getUsername());
-
 
90
-
 
91
                if (userFinded == null) {
85
                        throw new LoginException(Type.USERNAME_NOTFOUND);
92
                        throw new LoginException(Type.USERNAME_NOTFOUND);
86
                }
93
                }
87
               
-
 
-
 
94
88
                if (!userFinded.getPassword().equals(user.getPassword())) {
95
                if (!userFinded.getPassword().equals(user.getPassword())) {
89
                        throw new LoginException(Type.WRONG_PASSWORD);
96
                        throw new LoginException(Type.WRONG_PASSWORD);
90
                }
97
                }
91
                       
-
 
-
 
98
92
                return userFinded;
99
                return userFinded;
93
        }
100
        }
94
}
101
}