Commit 7a765da25098cb6c12f625e6037af0ae0f0162af
1 parent
493ca844
refactor: updateUser mit Kontext und Mapper re-implementiert
Showing
7 changed files
with
21 additions
and
6 deletions
src/main/java/net/ziemers/swxercise/lg/model/user/Profile.java
| ... | ... | @@ -145,7 +145,7 @@ public class Profile extends BaseEntity { |
| 145 | 145 | return passwordHash; |
| 146 | 146 | } |
| 147 | 147 | |
| 148 | - private void setPassword(String password) { | |
| 148 | + public void setPassword(String password) { | |
| 149 | 149 | // das Klartextkennwort wird niemals gespeichert! |
| 150 | 150 | this.passwordHash = cryptString(password); |
| 151 | 151 | } | ... | ... |
src/main/java/net/ziemers/swxercise/lg/model/user/User.java
src/main/java/net/ziemers/swxercise/lg/user/dto/UserDto.java
src/main/java/net/ziemers/swxercise/lg/user/service/SessionContext.java
src/main/java/net/ziemers/swxercise/lg/user/service/UserDtoToEntityContextService.java
| ... | ... | @@ -23,7 +23,7 @@ public class UserDtoToEntityContextService { |
| 23 | 23 | public UserDtoToEntityContext createContext(final UserDto dto) { |
| 24 | 24 | final UserDtoToEntityContext ctx = new UserDtoToEntityContext(); |
| 25 | 25 | |
| 26 | - // das UserDTO in den Kontext füllen | |
| 26 | + // das übergebene UserDto in den Kontext füllen | |
| 27 | 27 | ctx.dto = dto; |
| 28 | 28 | |
| 29 | 29 | // einen neuen oder einen bereits existierenden Benutzer in den Kontext füllen |
| ... | ... | @@ -35,6 +35,9 @@ public class UserDtoToEntityContextService { |
| 35 | 35 | // wir füllen das User-Objekt mit Method Chaining |
| 36 | 36 | ctx.user = new User(dto.getFirstname(), dto.getLastname()) |
| 37 | 37 | .withProfile(ctx.profile); |
| 38 | + } else { | |
| 39 | + ctx.profile = ctx.user.getProfile(); | |
| 40 | + ctx.address = ctx.user.getAddress(); | |
| 38 | 41 | } |
| 39 | 42 | return ctx; |
| 40 | 43 | } | ... | ... |
src/main/java/net/ziemers/swxercise/lg/user/service/UserDtoToEntityMapper.java
| ... | ... | @@ -17,11 +17,20 @@ public class UserDtoToEntityMapper { |
| 17 | 17 | * @return den Kontext. |
| 18 | 18 | */ |
| 19 | 19 | public UserDtoToEntityContext map(UserDtoToEntityContext ctx) { |
| 20 | + // User-Objekt mappen | |
| 20 | 21 | ctx.user.setFirstname(ctx.dto.getFirstname()); |
| 21 | 22 | ctx.user.setLastname(ctx.dto.getLastname()); |
| 23 | + | |
| 24 | + // Profile-Objekt mappen, falls gegeben | |
| 22 | 25 | if (ctx.profile != null) { |
| 23 | 26 | ctx.user.setProfile(ctx.profile); |
| 27 | + if(ctx.dto.getPassword().length() > 0) { | |
| 28 | + ctx.profile.setPassword(ctx.dto.getPassword()); | |
| 29 | + } | |
| 30 | + ctx.profile.setMailaddress(ctx.dto.getMailaddress()); | |
| 24 | 31 | } |
| 32 | + | |
| 33 | + // Address-Objekt mappen, falls gegeben | |
| 25 | 34 | if (ctx.address != null) { |
| 26 | 35 | ctx.user.setAddress(ctx.address); |
| 27 | 36 | } | ... | ... |
src/main/java/net/ziemers/swxercise/lg/user/service/UserService.java
| ... | ... | @@ -123,8 +123,11 @@ public class UserService { |
| 123 | 123 | // ist zurzeit ein Benutzer angemeldet, können wir ihn aktualisieren |
| 124 | 124 | final User user = sessionContext.getUser(); |
| 125 | 125 | if (user != null) { |
| 126 | - // TODO noch zu implementieren | |
| 127 | - return false; | |
| 126 | + // der Benutzername darf sich beim Aktualisieren nicht mehr ändern! | |
| 127 | + dto.withUsername(user.getProfile().getUsername()); | |
| 128 | + final UserDtoToEntityContext ctx = ctxService.createContext(dto); | |
| 129 | + mapper.map(ctx); | |
| 130 | + return dao.saveOrUpdate(ctx.user) != null; | |
| 128 | 131 | } |
| 129 | 132 | return false; |
| 130 | 133 | } | ... | ... |