forked from knastnt/JavaRush-Training-Topjava
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUserUtil.java
More file actions
35 lines (28 loc) · 1.32 KB
/
UserUtil.java
File metadata and controls
35 lines (28 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package ru.javawebinar.topjava.util;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.util.StringUtils;
import ru.javawebinar.topjava.model.Role;
import ru.javawebinar.topjava.model.User;
import ru.javawebinar.topjava.to.UserTo;
public class UserUtil {
public static final int DEFAULT_CALORIES_PER_DAY = 2000;
public static User createNewFromTo(UserTo userTo) {
return new User(null, userTo.getName(), userTo.getEmail().toLowerCase(), userTo.getPassword(), userTo.getCaloriesPerDay(), Role.USER);
}
public static UserTo asTo(User user) {
return new UserTo(user.getId(), user.getName(), user.getEmail(), user.getPassword(), user.getCaloriesPerDay());
}
public static User updateFromTo(User user, UserTo userTo) {
user.setName(userTo.getName());
user.setEmail(userTo.getEmail().toLowerCase());
user.setCaloriesPerDay(userTo.getCaloriesPerDay());
user.setPassword(userTo.getPassword());
return user;
}
public static User prepareToSave(User user, PasswordEncoder passwordEncoder) {
String password = user.getPassword();
user.setPassword(StringUtils.hasText(password) ? passwordEncoder.encode(password) : password);
user.setEmail(user.getEmail().toLowerCase());
return user;
}
}