Commit 0bbe393da7f117487144d74b221c9ae5d3883317

Authored by Thomas Ziemer
1 parent b4808f61

feature: lesen und schreiben mittels REST/Jackson

src/main/java/net/ziemers/swxercise/lg/user/Profile.java
... ... @@ -4,6 +4,7 @@ import javax.persistence.Entity;
4 4 import javax.validation.constraints.NotNull;
5 5  
6 6 import net.ziemers.swxercise.db.BaseEntity;
  7 +import net.ziemers.swxercise.lg.user.enums.PasswordHashType;
7 8  
8 9 @Entity
9 10 public class Profile extends BaseEntity {
... ... @@ -14,6 +15,9 @@ public class Profile extends BaseEntity {
14 15 @NotNull
15 16 private String passwordHash;
16 17  
  18 + @NotNull
  19 + private PasswordHashType passwordHashType = PasswordHashType.Unknown;
  20 +
17 21 private String mailaddress;
18 22  
19 23 public Profile() {
... ... @@ -34,14 +38,22 @@ public class Profile extends BaseEntity {
34 38 this.username = username;
35 39 }
36 40  
37   - public String getPasswordHash() {
  41 + private String getPasswordHash() {
38 42 return passwordHash;
39 43 }
40 44  
41   - public void setPasswordHash(String passwordHash) {
  45 + private void setPasswordHash(String passwordHash) {
42 46 this.passwordHash = passwordHash;
43 47 }
44 48  
  49 + private PasswordHashType getPasswordHashType() {
  50 + return passwordHashType;
  51 + }
  52 +
  53 + private void setPasswordHashType(PasswordHashType passwordHashType) {
  54 + this.passwordHashType = passwordHashType;
  55 + }
  56 +
45 57 public String getMailaddress() {
46 58 return mailaddress;
47 59 }
... ...
src/main/java/net/ziemers/swxercise/lg/user/User.java
... ... @@ -51,4 +51,9 @@ public class User extends BaseEntity {
51 51 this.profile = profile;
52 52 }
53 53  
  54 + public User withProfile(final Profile profile) {
  55 + setProfile(profile);
  56 + return this;
  57 + }
  58 +
54 59 }
... ...
src/main/java/net/ziemers/swxercise/lg/user/enums/PasswordHashType.java 0 → 100644
  1 +package net.ziemers.swxercise.lg.user.enums;
  2 +
  3 +public enum PasswordHashType {
  4 +
  5 + Unknown,
  6 + ;
  7 +}
... ...
src/main/java/net/ziemers/swxercise/lg/user/service/UserService.java
... ... @@ -6,7 +6,9 @@ import javax.ejb.Stateless;
6 6 import javax.inject.Inject;
7 7  
8 8 import net.ziemers.swxercise.db.dao.GenericDao;
  9 +import net.ziemers.swxercise.lg.user.Profile;
9 10 import net.ziemers.swxercise.lg.user.User;
  11 +import net.ziemers.swxercise.lg.user.dto.UserDto;
10 12  
11 13 @Stateless
12 14 public class UserService {
... ... @@ -20,7 +22,13 @@ public class UserService {
20 22 return genericDao.findAll(User.class);
21 23 }
22 24  
23   - public Long saveUser(final User user) {
  25 + public Long saveUser(final UserDto userDto) {
  26 + final Profile profile = new Profile(userDto.getUsername(), userDto.getPassword());
  27 +
  28 + // wir füllen das User-Objekt mit Method Chaining
  29 + final User user = new User(userDto.getFirstname(), userDto.getLastname())
  30 + .withProfile(profile);
  31 +
24 32 return genericDao.save(user);
25 33 }
26 34  
... ...
src/main/java/net/ziemers/swxercise/ui/RestViewController.java renamed to src/main/java/net/ziemers/swxercise/ui/UserViewController.java
... ... @@ -13,8 +13,8 @@ import net.ziemers.swxercise.lg.user.dto.UserDto;
13 13 import net.ziemers.swxercise.lg.user.service.UserService;
14 14  
15 15 @ApplicationScoped
16   -@Path(RestViewController.webContextPath)
17   -public class RestViewController {
  16 +@Path(UserViewController.webContextPath)
  17 +public class UserViewController {
18 18  
19 19 static final String webContextPath = "/users";
20 20  
... ... @@ -53,12 +53,7 @@ public class RestViewController {
53 53 @Consumes(MediaType.APPLICATION_JSON)
54 54 @Produces({MediaType.TEXT_PLAIN})
55 55 public String postUser(UserDto userDto) throws Exception {
56   - final User user = new User(userDto.getFirstname(), userDto.getLastname());
57   - final Profile profile = new Profile(userDto.getUsername(), userDto.getPassword());
58   -
59   - // TODO hierfür benötigen wir einen Mapper
60   - user.setProfile(profile);
61   - userService.saveUser(user);
  56 + userService.saveUser(userDto);
62 57  
63 58 return "Ok";
64 59 }
... ...
src/test/java/net/ziemers/swxercise/ui/RestViewControllerTest.java
... ... @@ -10,7 +10,7 @@ import org.mockito.junit.MockitoJUnitRunner;
10 10 public class RestViewControllerTest {
11 11  
12 12 @InjectMocks
13   - private RestViewController underTest;
  13 + private UserViewController underTest;
14 14  
15 15 @Test
16 16 public void test() {
... ...