Skip to content

Commit 4174eba

Browse files
authored
Merge pull request #10 from AdamZink/develop
Part 3 to Master
2 parents ccd5556 + 94eee25 commit 4174eba

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
11
package com.github.adamzink.springbootmysqldemo.converter.common;
22

3+
import java.util.ArrayList;
4+
import java.util.Collection;
5+
36
public interface ModelConverter<Q, M, S> {
47

58
M requestToModel(Q request);
69

710
S modelToResponse (M model);
811

12+
default Collection<S> modelToResponse(final Iterable<M> models) {
13+
assert models != null;
14+
15+
final Collection<S> responses = new ArrayList<S>();
16+
models.forEach(model -> responses.add(modelToResponse(model)));
17+
18+
return responses;
19+
}
20+
921
}

src/main/java/com/github/adamzink/springbootmysqldemo/resource/UserResource.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import javax.ws.rs.*;
1010
import javax.ws.rs.core.MediaType;
11+
import java.util.Collection;
1112

1213
@Path("/users")
1314
@Component
@@ -16,12 +17,32 @@ public class UserResource {
1617
@Autowired
1718
UserService userService;
1819

20+
@GET
21+
@Produces(MediaType.APPLICATION_JSON)
22+
public Collection<User> getAll() {
23+
return userService.getAll();
24+
}
25+
1926
@POST
2027
@Consumes(MediaType.APPLICATION_JSON)
2128
@Produces(MediaType.APPLICATION_JSON)
2229
public User save(final UserRequest userRequest) {
2330
return userService.save(userRequest);
2431
}
2532

33+
@PUT
34+
@Path("{id}")
35+
@Consumes(MediaType.APPLICATION_JSON)
36+
@Produces(MediaType.APPLICATION_JSON)
37+
public User update(@PathParam("id") final Long id, final UserRequest userRequest) {
38+
return userService.update(id, userRequest);
39+
}
40+
41+
@DELETE
42+
@Path("{id}")
43+
public void delete(@PathParam("id") final Long id) {
44+
userService.delete(id);
45+
}
46+
2647
}
2748

src/main/java/com/github/adamzink/springbootmysqldemo/service/UserService.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.springframework.stereotype.Service;
1010
import org.springframework.transaction.annotation.Transactional;
1111

12+
import java.util.Collection;
1213
import java.util.Date;
1314

1415
@Service
@@ -21,6 +22,10 @@ public class UserService {
2122
@Autowired
2223
UserRepository userRepository;
2324

25+
public Collection<User> getAll() {
26+
return userConverter.modelToResponse(userRepository.findAll());
27+
}
28+
2429
public User save(final UserRequest userRequest) {
2530
UserModel userModel = userConverter.requestToModel(userRequest);
2631

@@ -29,5 +34,19 @@ public User save(final UserRequest userRequest) {
2934
return userConverter.modelToResponse(userRepository.save(userModel));
3035
}
3136

37+
public User update(final Long id, final UserRequest userRequest) {
38+
UserModel fromRequest = userConverter.requestToModel(userRequest);
39+
40+
UserModel toSave = userRepository.getOne(id);
41+
toSave.setFirstName(fromRequest.getFirstName());
42+
toSave.setLastName(fromRequest.getLastName());
43+
44+
return userConverter.modelToResponse(userRepository.save(toSave));
45+
}
46+
47+
public void delete(final Long id) {
48+
userRepository.deleteById(id);
49+
}
50+
3251
}
3352

0 commit comments

Comments
 (0)