Mary_99

task3 webki

Mar 23rd, 2020
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.13 KB | None | 0 0
  1. package pl.dmcs.mariagryglewska.controllers;
  2.  
  3.         import org.springframework.beans.factory.annotation.Autowired;
  4.         import org.springframework.http.HttpStatus;
  5.         import org.springframework.http.ResponseEntity;
  6.         import org.springframework.web.bind.annotation.*;
  7.         import pl.dmcs.mariagryglewska.model.Contact;
  8.         import pl.dmcs.mariagryglewska.repository.ContactRepository;
  9.         import java.util.List;
  10.         import java.util.Map;
  11.  
  12. @RestController
  13. @RequestMapping("/restApi/contacts")
  14. public class ContactRESTContoller {
  15.  
  16.     private ContactRepository contactRepository;
  17.  
  18.     @Autowired
  19.     public ContactRESTContoller(ContactRepository contactRepository) {
  20.         this.contactRepository = contactRepository;
  21.     }
  22.  
  23.     @RequestMapping(method = RequestMethod.GET/*, produces = "application/xml"*/)
  24.     //@GetMapping
  25.     public List<Contact> findAllContacts() {
  26.         return contactRepository.findAll();
  27.     }
  28.  
  29.     @RequestMapping(value="/{id}", method = RequestMethod.GET)
  30.     //@GetMapping("/{id}")
  31.     public Object findContact (@PathVariable("id") long id) {
  32.         Contact contact = contactRepository.findById(id);
  33.         if (contact == null) {
  34.             System.out.println("Contact not found!");
  35.             return new ResponseEntity<Contact>(HttpStatus.NOT_FOUND);
  36.         }
  37.         return contactRepository.findById(id);
  38.     }
  39.  
  40.     @RequestMapping(method = RequestMethod.POST)
  41.     //@PostMapping
  42.     public ResponseEntity<Contact> addContact(@RequestBody Contact contact) {
  43.         contactRepository.save(contact);
  44.         return new ResponseEntity<Contact>(HttpStatus.CREATED);
  45.     }
  46.  
  47.     @RequestMapping(value="/{id}", method = RequestMethod.DELETE)
  48.     //@DeleteMapping("/{id}")
  49.     public ResponseEntity<Contact> deleteContact (@PathVariable("id") long id) {
  50.         Contact contact = contactRepository.findById(id);
  51.         if (contact == null) {
  52.             System.out.println("Contact not found!");
  53.             return new ResponseEntity<Contact>(HttpStatus.NOT_FOUND);
  54.         }
  55.  
  56.         contactRepository.deleteById(id);
  57.         return new ResponseEntity<Contact>(HttpStatus.NO_CONTENT);
  58.     }
  59.  
  60.     @RequestMapping(method = RequestMethod.DELETE)
  61.     public void deleteContact (@RequestBody Contact contact) {
  62.         contactRepository.deleteAll();
  63.     }
  64.  
  65.     @RequestMapping(value="/{id}", method = RequestMethod.PUT)
  66.     //@PutMapping("/{id}")
  67.     public ResponseEntity<Contact> updateContact(@RequestBody Contact contact, @PathVariable("id") long id) {
  68.         contact.setId(id);
  69.         contactRepository.save(contact);
  70.         return new ResponseEntity<Contact>(HttpStatus.NO_CONTENT);
  71.     }
  72.  
  73.     @RequestMapping(method = RequestMethod.PUT)
  74.     public ResponseEntity<Contact> updateContact(@RequestBody Contact contact) {
  75.         contactRepository.deleteAll();
  76.         contactRepository.save(contact);
  77.         return new ResponseEntity<Contact>(HttpStatus.CREATED);
  78.     }
  79.  
  80.     @RequestMapping(value="/{id}", method = RequestMethod.PATCH)
  81.     //@PatchMapping("/{id}")
  82.     public ResponseEntity<Contact> updatePartOfContact(@RequestBody Map<String, Object> updates, @PathVariable("id") long id) {
  83.         Contact contact = contactRepository.findById(id);
  84.         if (contact == null) {
  85.             System.out.println("Contact not found!");
  86.             return new ResponseEntity<Contact>(HttpStatus.NOT_FOUND);
  87.         }
  88.         partialUpdate(contact,updates);
  89.         return new ResponseEntity<Contact>(HttpStatus.NO_CONTENT);
  90.     }
  91.  
  92.     private void partialUpdate(Contact contact, Map<String, Object> updates) {
  93.         if (updates.containsKey("firstname")) {
  94.             contact.setFirstname((String) updates.get("firstname"));
  95.         }
  96.         if (updates.containsKey("lastname")) {
  97.             contact.setLastname((String) updates.get("lastname"));
  98.         }
  99.         if (updates.containsKey("email")) {
  100.             contact.setEmail((String) updates.get("email"));
  101.         }
  102.         if (updates.containsKey("telephone")) {
  103.             contact.setTelephone((String) updates.get("telephone"));
  104.         }
  105.         contactRepository.save(contact);
  106.     }
  107.  
  108. }
Advertisement
Add Comment
Please, Sign In to add comment