File tree Expand file tree Collapse file tree 3 files changed +52
-0
lines changed
src/main/java/com/github/adamzink/springbootmysqldemo Expand file tree Collapse file tree 3 files changed +52
-0
lines changed Original file line number Diff line number Diff line change 1
1
package com .github .adamzink .springbootmysqldemo .converter .common ;
2
2
3
+ import java .util .ArrayList ;
4
+ import java .util .Collection ;
5
+
3
6
public interface ModelConverter <Q , M , S > {
4
7
5
8
M requestToModel (Q request );
6
9
7
10
S modelToResponse (M model );
8
11
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
+
9
21
}
Original file line number Diff line number Diff line change 8
8
9
9
import javax .ws .rs .*;
10
10
import javax .ws .rs .core .MediaType ;
11
+ import java .util .Collection ;
11
12
12
13
@ Path ("/users" )
13
14
@ Component
@@ -16,12 +17,32 @@ public class UserResource {
16
17
@ Autowired
17
18
UserService userService ;
18
19
20
+ @ GET
21
+ @ Produces (MediaType .APPLICATION_JSON )
22
+ public Collection <User > getAll () {
23
+ return userService .getAll ();
24
+ }
25
+
19
26
@ POST
20
27
@ Consumes (MediaType .APPLICATION_JSON )
21
28
@ Produces (MediaType .APPLICATION_JSON )
22
29
public User save (final UserRequest userRequest ) {
23
30
return userService .save (userRequest );
24
31
}
25
32
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
+
26
47
}
27
48
Original file line number Diff line number Diff line change 9
9
import org .springframework .stereotype .Service ;
10
10
import org .springframework .transaction .annotation .Transactional ;
11
11
12
+ import java .util .Collection ;
12
13
import java .util .Date ;
13
14
14
15
@ Service
@@ -21,6 +22,10 @@ public class UserService {
21
22
@ Autowired
22
23
UserRepository userRepository ;
23
24
25
+ public Collection <User > getAll () {
26
+ return userConverter .modelToResponse (userRepository .findAll ());
27
+ }
28
+
24
29
public User save (final UserRequest userRequest ) {
25
30
UserModel userModel = userConverter .requestToModel (userRequest );
26
31
@@ -29,5 +34,19 @@ public User save(final UserRequest userRequest) {
29
34
return userConverter .modelToResponse (userRepository .save (userModel ));
30
35
}
31
36
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
+
32
51
}
33
52
You can’t perform that action at this time.
0 commit comments