From 0e9a1953eb132927b35a045b8b067e0b6a1c5a2a Mon Sep 17 00:00:00 2001 From: Zach Date: Tue, 24 Aug 2021 13:22:04 -0400 Subject: [PATCH] Added User class, repository, service and controller. Tested and confirmed working in Postman --- demo.iml | 2 +- pom.xml | 7 ++- .../com/example/demo/RecipeRepository.java | 3 + src/main/java/com/example/demo/User.java | 57 ++++++++++++++++++ .../java/com/example/demo/UserController.java | 41 +++++++++++++ .../java/com/example/demo/UserRepository.java | 7 +++ .../java/com/example/demo/UserService.java | 41 +++++++++++++ target/classes/com/example/demo/User.class | Bin 0 -> 1677 bytes .../com/example/demo/UserController.class | Bin 0 -> 3008 bytes .../com/example/demo/UserRepository.class | Bin 0 -> 318 bytes .../com/example/demo/UserService.class | Bin 0 -> 3104 bytes 11 files changed, 156 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/example/demo/User.java create mode 100644 src/main/java/com/example/demo/UserController.java create mode 100644 src/main/java/com/example/demo/UserRepository.java create mode 100644 src/main/java/com/example/demo/UserService.java create mode 100644 target/classes/com/example/demo/User.class create mode 100644 target/classes/com/example/demo/UserController.class create mode 100644 target/classes/com/example/demo/UserRepository.class create mode 100644 target/classes/com/example/demo/UserService.class diff --git a/demo.iml b/demo.iml index 0ccb0e6f2..b9fc3d6b5 100644 --- a/demo.iml +++ b/demo.iml @@ -95,7 +95,7 @@ - + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9957c3f28..21554b321 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,12 @@ spring-data-commons 2.5.4 - + + org.springframework + spring-beans + 5.3.9 + + diff --git a/src/main/java/com/example/demo/RecipeRepository.java b/src/main/java/com/example/demo/RecipeRepository.java index e2b614b94..0410b18c0 100644 --- a/src/main/java/com/example/demo/RecipeRepository.java +++ b/src/main/java/com/example/demo/RecipeRepository.java @@ -1,6 +1,9 @@ package com.example.demo; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Service; public interface RecipeRepository extends CrudRepository { + } diff --git a/src/main/java/com/example/demo/User.java b/src/main/java/com/example/demo/User.java new file mode 100644 index 000000000..ab979c798 --- /dev/null +++ b/src/main/java/com/example/demo/User.java @@ -0,0 +1,57 @@ +package com.example.demo; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class User { + @Id + @GeneratedValue + Long id; + String name; + String password; + Integer postCount; + + public User() { + } + + public User(Long id, String name, String password, Integer postCount) { + this.id = id; + this.name = name; + this.password = password; + this.postCount = postCount; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public Integer getPostCount() { + return postCount; + } + + public void setPostCount(Integer postCount) { + this.postCount = postCount; + } +} diff --git a/src/main/java/com/example/demo/UserController.java b/src/main/java/com/example/demo/UserController.java new file mode 100644 index 000000000..0494339c7 --- /dev/null +++ b/src/main/java/com/example/demo/UserController.java @@ -0,0 +1,41 @@ +package com.example.demo; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/userController") +public class UserController { + + @Autowired + private UserService service; + + @GetMapping(value = "/read/{id}") + public ResponseEntity read(@PathVariable Long id){ + return new ResponseEntity<>(service.read(id), HttpStatus.OK); + } + + @GetMapping(value = "/read") + public ResponseEntity> readAll(){ + return new ResponseEntity<>(service.readAll(), HttpStatus.OK); + } + + @PostMapping(value = "/create") + public ResponseEntity create(@RequestBody User user){ + return new ResponseEntity<>(service.create(user), HttpStatus.CREATED); + } + + @PutMapping(value = "/update/{id}") + public ResponseEntity update(@PathVariable Long id, @RequestBody User user){ + return new ResponseEntity<>(service.update(id, user), HttpStatus.OK); + } + + @DeleteMapping(value = "/delete/{id}") + public ResponseEntity delete(@PathVariable Long id){ + return new ResponseEntity<>(service.delete(id), HttpStatus.OK); + } +} diff --git a/src/main/java/com/example/demo/UserRepository.java b/src/main/java/com/example/demo/UserRepository.java new file mode 100644 index 000000000..2d5a36aac --- /dev/null +++ b/src/main/java/com/example/demo/UserRepository.java @@ -0,0 +1,7 @@ +package com.example.demo; + +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +public interface UserRepository extends CrudRepository { +} diff --git a/src/main/java/com/example/demo/UserService.java b/src/main/java/com/example/demo/UserService.java new file mode 100644 index 000000000..1b4b5395a --- /dev/null +++ b/src/main/java/com/example/demo/UserService.java @@ -0,0 +1,41 @@ +package com.example.demo; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class UserService { + @Autowired + private UserRepository repository; + + public User create(User user){ return repository.save(user); } + + public User read(Long id){ return repository.findById(id).get(); } + + public List readAll(){ + Iterable userIterable = repository.findAll(); + List result = new ArrayList<>(); + userIterable.forEach(result::add); + return result; + } + + public User update(Long id, User newUser){ + User userInDatabase = read(id); + userInDatabase.setName(newUser.getName()); + userInDatabase.setPassword(newUser.getPassword()); + userInDatabase.setPostCount(newUser.getPostCount()); + return repository.save(userInDatabase); + } + + public User delete(User user){ + repository.delete(user); + return user; + } + + public User delete(Long id){ + return delete(read(id)); + } +} diff --git a/target/classes/com/example/demo/User.class b/target/classes/com/example/demo/User.class new file mode 100644 index 0000000000000000000000000000000000000000..83d6bc9e69cb744f13990f0ae02a552dfdeb2eb2 GIT binary patch literal 1677 zcmaKr+iuf95Qb+HCuvec)22yD%Ap6KX?k#>l|U-0gepKqp;Q!d?dY0!) zyD5#M77ne%Y`l`TbWLBj8fK?25v18>R|=YooovB;4JnnbTr2F0kIcIX3W~X7g7SF>)%|EwL z%0j*AbPaiFc6%LZv}D&YK6py~bv2SyH6=0+f&aU51Y4KfTxx3r^+5}Zp-Q&;b1sN*jb&P<73AQ8#+Z_mOlx4OUc#O@T51#OJeoqC2X< zFPp*p3d8w^X9=UvTZU`2OW&J&!NsON7*KY|EVHkh9+xT#-vf zda9WwL%Dboy<6k&t_E50gkfrR!xhQGN$E0v>{NXnVkSt8m12U>C!w46=)^FbO@Lx} z@}IpVhsAJv{PfuFNI@vtkqYA@H2C)(cg2d`mFFVs4Z6OJjkhX2L5q{f`uu+fJx;~( zPt}e$BBH7V8ieO5+vO&80){(dCuPmIh|Z}>U07m-i20`NIUWAMklk=v_U5R+-H<&k zsSU?91nO)eGN%m2ckp;qKl2gKDNUArgr=f^X@>c@DsyKxy1)D0)V@tudiXD6- zF&Zkap{b&TT@{bz+AXwHEMbe`a_nUlaiEqQwfXJ#Gu{yl7h;XV8;+s$R+*I&ikIPP zVsH=X;%L&v=+PaJ+J3}vEw%uBA)>vMfqSFw1Im@LOy#v%phoEjJnVmjcr&@%#4151 z%4%c1w!6N@aDSAJe^Dlgkt7mk>4RjFzEMaAnPM7G(=1Eld*MiRLbDl~X*4n#GYhZ4 zexZjH-VZl{V9wC98f?H>oTC|ikKhAjeB%wIX+JRiJ5t{*{ECV4A<{3Ad4=rHv^)wm z?L(ajwuew;h!1grATQGH45JBf$v3?0Q$9tnuF!Ax37CsHT%~u4CVV1Q zA|j(G91%H$63^q@NJxc{N8oZk#$}OEOISE2+;?6g7ZdKqgmBBaPLN@^Wnvuo{$%L; z2E7i#)uM23`r+Qfry-FBjT5vsa};j*`XTc10nhnNt_1ss!q0@l69y!wl+P)b@>3A; z`fSK+ameeo&ucP83qcwJc1y=r#k=w3<`ZQ4$Evt9q;oftNzzH-bN~OI&%8kM3eBs- H?O*%_%upZS literal 0 HcmV?d00001 diff --git a/target/classes/com/example/demo/UserRepository.class b/target/classes/com/example/demo/UserRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..3963a0df576914dee066584c2d1be4b71e39ba3c GIT binary patch literal 318 zcmb7=O^U)$5QOXb7j-s*2k-_qh`WdzVO9ZQ!~?uZ+D9}=hfd;*S99S3=1^jEp@X<_ z(SJ}>ee~b?cmgoRhlj3*o`=3cZxy@DmX)%B1Y5hel-SJC@_Wl+=?9{Yid^H&ZPcdx zBf6u=mX?%rDdJM}Knty+ulqR*LP?2#ZJH-c5vM}yg4O?L9!Tc=xo^;4Nu?ow#z`GN pyviOv<1388=%w33W-xfBHkiDR-7zp|)YYtignDb;dK;bF^e&OtWOV=l literal 0 HcmV?d00001 diff --git a/target/classes/com/example/demo/UserService.class b/target/classes/com/example/demo/UserService.class new file mode 100644 index 0000000000000000000000000000000000000000..fa43c022740bf894682f9265d58cec1a73f36dd4 GIT binary patch literal 3104 zcma)8`BU3g5dLHifl;~RG&i}ifhcX$HZ3U$kffn?NE#B-^nTb6M<7eCBtz(Zq-Xla zv@;!NlFoGcbEkh(r{9xgTYzCY3~#0PcE8>I_U+1l|NHb$0O#;a8hdfE8yQ^c!8B%c z%qn>~jVrjSo?h2+EsZW*REl$hG`i7)n|LctlUr%DV?iyq)pAEIi)y*6mbaDpJ*D@K zj(2sury=dhitAf}>uqQ_nlHFzQ$7&oiY?8eEW73%UwXG1Dw7)a-Ksi)RhEmEZ!Ot! z+Hu@K1eWXg8qVikuVnfa&vHu3o+!(8*IPB0q;Pz5Srn8LQ#1_B>1yDvTb?Wuw)2AJ zSizKrw$bdOhW1&vC^huuEl18*%S+O`E$B_dVBReVdr^3ndXG2TgZmcUA8sA~g7ns` zf>cflo)iI5&W^TLoy_jA&xopILc`u275cBs;J#bDDOBQt^cYY(-4!)tNAoLUO_;WD zN@m`5O1rp8Sv2V1s;@y;P}81*^oBG#mqj3!gwLQli_&H>*(VEb)ho!Wmb!%fN_!!?R%cXcHH@~r`aUZn z-GF48vHGNegE(a1S?tsCzJU+$p@uyz+s?p85IU9&6i_rEv8-Vzyhvf)raez=sPY>q z;XZ?!aoxZVJW+`*qTkmEs~;YrunVAVAf?ntEDSPY*Yt^-E zImMZcIkv~>&Nd-4H!5l#37b}fO}^^895E%y5QppcEo{r!H5*O&2^%f5Ng>fjU9_LI zh0hKj+N2Y1PNwl0K4(!|MY-66FYu*?{W}gI4!=%OD98#!G-HTnpC+4Yx#|>DqUJ1z zZ?!DFM!sQ2^?+4Mu6IQgct=K(fZOfWk6APjL#KB4uC(BjS9nzv=jygy&s%wOZjAopT)Ng=Lhi?mtPlF<#VM z*Mw8FrGFwaoJ?HUn1{s9Cd1pD1xfY)e;B#k-8M;Pj65rBd%+6S=dZWf3~Fw$5k!#% z+Em7R3-SlTBMm3F(b+0}etCD-!%_a^*vlU(8d7TVQSRqkC*=W3osvV5>tVi`lp1A6 z?lH9A_>jU8u1Xn5V}z>_DG>G;-!vS@32G_h8Oju8Z|--b#-5-pg}>1LD|eD8y&*~_ z(u`4PgOfN#wA0k?VD1#0HONv;L0_R%&;v1aM+!A`wm|Pspbs?A2av;96Fo;H4da-I z(I26Wf51tF{sg*){2%DL_ZZ#R$Hwo~kiPpAJ-`zfDU7Rp+Co+a`Kt~XA}_-j#2zw{ z3B8X*V6pc!X+9GYJ4oHLc#ck=r=4OTI(vb^L}%x?_ae_yc!_&2<2;{K`VT3UukqYi z4bRL^jMvaxL!XlUH4G>@Si_JCe_}iD8FbKgKdX3vJRhXzLqt6s#+r+88%&MIOwku! zVMS83I)zvH-xk)UJ4FTXNHNIoQyk!BN>v{tuFr4^W6i>+!?R;d_jsZ_M#HJms`!(Q z;!n}H0#E0{^lRADgpO|J=>%-L0h``l^>$n!PztX#dSHt04;47``367XTXx7Bd{@`} LO*+owI_Cca!5#aQ literal 0 HcmV?d00001