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 000000000..83d6bc9e6 Binary files /dev/null and b/target/classes/com/example/demo/User.class differ diff --git a/target/classes/com/example/demo/UserController.class b/target/classes/com/example/demo/UserController.class new file mode 100644 index 000000000..c14b8d6d5 Binary files /dev/null and b/target/classes/com/example/demo/UserController.class differ diff --git a/target/classes/com/example/demo/UserRepository.class b/target/classes/com/example/demo/UserRepository.class new file mode 100644 index 000000000..3963a0df5 Binary files /dev/null and b/target/classes/com/example/demo/UserRepository.class differ diff --git a/target/classes/com/example/demo/UserService.class b/target/classes/com/example/demo/UserService.class new file mode 100644 index 000000000..fa43c0227 Binary files /dev/null and b/target/classes/com/example/demo/UserService.class differ