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 11package com .github .adamzink .springbootmysqldemo .converter .common ;
22
3+ import java .util .ArrayList ;
4+ import java .util .Collection ;
5+
36public 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}
Original file line number Diff line number Diff line change 88
99import javax .ws .rs .*;
1010import 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
Original file line number Diff line number Diff line change 99import org .springframework .stereotype .Service ;
1010import org .springframework .transaction .annotation .Transactional ;
1111
12+ import java .util .Collection ;
1213import 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
You can’t perform that action at this time.
0 commit comments