RestViewController.java
1.76 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package net.ziemers.swxercise.ui;
import java.util.Collection;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import net.ziemers.swxercise.lg.user.Profile;
import net.ziemers.swxercise.lg.user.User;
import net.ziemers.swxercise.lg.user.dto.UserDto;
import net.ziemers.swxercise.lg.user.service.UserService;
@ApplicationScoped
@Path(RestViewController.webContextPath)
public class RestViewController {
static final String webContextPath = "/users";
@Inject
private UserService userService;
/**
* Schickt eine Hello-Nachricht zum Aufrufer zurück.
*
* @param name der Name, der in der Hallo-Nachricht angegeben wird
* @return eine Hallo-Nachricht
*/
@GET
@Path("/hello/{name}")
@Produces(MediaType.TEXT_PLAIN)
public String helloPath(@PathParam("name") String name) {
return String.format("Hello %s", name);
}
@GET
@Path("/all")
@Produces(MediaType.APPLICATION_JSON)
public Collection<User> getAllUsers() {
return userService.findAllUsers();
}
@GET
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
public User getById(@PathParam("id") Long id) {
return userService.findUser(id);
}
@PUT
@Path("/user")
@Consumes(MediaType.APPLICATION_JSON)
@Produces({MediaType.TEXT_PLAIN})
public String postUser(UserDto userDto) throws Exception {
final User user = new User(userDto.getFirstname(), userDto.getLastname());
final Profile profile = new Profile(userDto.getUsername(), userDto.getPassword());
// TODO hierfür benötigen wir einen Mapper
user.setProfile(profile);
userService.saveUser(user);
return "Ok";
}
}