diff --git a/src/main/java/io/zipcoder/crudapp/controllers/PersonController.java b/src/main/java/io/zipcoder/crudapp/controllers/PersonController.java new file mode 100644 index 0000000..0808acf --- /dev/null +++ b/src/main/java/io/zipcoder/crudapp/controllers/PersonController.java @@ -0,0 +1,49 @@ +package io.zipcoder.crudapp.controllers; + +import io.zipcoder.crudapp.models.Person; +import io.zipcoder.crudapp.repositories.PersonRepository; +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 +public class PersonController { + private PersonRepository pr; + + @Autowired + public PersonController(PersonRepository pr){ + this.pr = pr; + } + + @PostMapping("/people") + public ResponseEntity createPerson(@RequestBody Person p){ + return new ResponseEntity<>(pr.save(p), HttpStatus.CREATED); + } + + @GetMapping("/people/{id}") + public ResponseEntity getPerson(@PathVariable int id){ + return new ResponseEntity<>(pr.findOne(id), HttpStatus.OK); + } + + @GetMapping("/people") + public ResponseEntity> getPersonList(){ + return new ResponseEntity<>(pr.findAll(), HttpStatus.OK); + } + + @PutMapping("/people/{id}") + public ResponseEntity updatePerson(@PathVariable int id, @RequestBody Person p){ + Person ogPerson = pr.findOne(id); + ogPerson.setFirstName(p.getFirstName()); + ogPerson.setLastName(p.getLastName()); + return new ResponseEntity<>(pr.save(ogPerson), HttpStatus.OK); + } + + @DeleteMapping("/people/{id}") + public ResponseEntity deletePerson(@PathVariable int id){ + pr.delete(id); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } +} diff --git a/src/main/java/io/zipcoder/crudapp/models/Person.java b/src/main/java/io/zipcoder/crudapp/models/Person.java new file mode 100644 index 0000000..a162a5b --- /dev/null +++ b/src/main/java/io/zipcoder/crudapp/models/Person.java @@ -0,0 +1,39 @@ +package io.zipcoder.crudapp.models; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +public class Person { + @Id + @GeneratedValue(strategy= GenerationType.AUTO) + Integer id; + String firstName; + String lastName; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } +} diff --git a/src/main/java/io/zipcoder/crudapp/repositories/PersonRepository.java b/src/main/java/io/zipcoder/crudapp/repositories/PersonRepository.java new file mode 100644 index 0000000..2c4ef76 --- /dev/null +++ b/src/main/java/io/zipcoder/crudapp/repositories/PersonRepository.java @@ -0,0 +1,9 @@ +package io.zipcoder.crudapp.repositories; + +import io.zipcoder.crudapp.models.Person; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface PersonRepository extends CrudRepository { +}