simpleat-back/src/main/java/fr/cardon/simpleat/controller/PreferenceController.java
2022-03-11 14:34:22 +01:00

82 lines
3.1 KiB
Java

package fr.cardon.simpleat.controller;
import java.util.Collection;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import fr.cardon.simpleat.model.Preference;
import fr.cardon.simpleat.model.PreferencePK;
import fr.cardon.simpleat.repository.PersonneRepository;
import fr.cardon.simpleat.repository.PreferenceRepository;
import fr.cardon.simpleat.repository.RestaurantRepository;
@RestController
@CrossOrigin("*")
public class PreferenceController {
@Autowired
private PreferenceRepository preferenceRepository;
@Autowired
private PersonneRepository personneRepository;
@Autowired
private RestaurantRepository restaurantRepository;
@GetMapping("/preferences")
@PreAuthorize("hasRole('ROLE_ADMIN')")
public Collection<Preference> findAll(){
return preferenceRepository.findAll();
}
@GetMapping("/preference/{iduser}/{idrestau}")
@PreAuthorize("hasRole('ROLE_ADMIN')")
public Optional<Preference> findPreferenceById(@PathVariable int iduser, @PathVariable int idrestau ){
PreferencePK id = new PreferencePK(personneRepository.getById(iduser) ,restaurantRepository.getById(idrestau));
System.out.println(iduser);
return preferenceRepository.findById(id);
}
// @PostMapping("/add-preference")
// public ResponseEntity<?> ajoutPreference(@RequestBody Preference preference){
// System.out.println(preference);
// return ResponseEntity.status(HttpStatus.OK).body(preferenceRepository.save(preference));
// }
@PostMapping("/add-preference/{iduser}/{idrestau}")
@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_READER')")
public ResponseEntity<?> ajoutPreference(@PathVariable int iduser, @PathVariable int idrestau ){
System.out.println("hello");
Preference preference = new Preference(new PreferencePK(personneRepository.getById(iduser) ,restaurantRepository.getById(idrestau)));
return ResponseEntity.status(HttpStatus.OK).body(preferenceRepository.save(preference));
}
// @PutMapping(value = "/update-restaurant/{id}")
// public ResponseEntity<?> modifPerso(@PathVariable int id, @RequestBody Restaurant personne){
// return ResponseEntity.status(HttpStatus.OK).body(preferenceRepository.save(personne));
// }
//
@DeleteMapping("/delete-preference/{iduser}/{idrestau}")
@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_READER')")
public void deletePreferenceById(@PathVariable int iduser, @PathVariable int idrestau ){
PreferencePK id = new PreferencePK(personneRepository.getById(iduser) ,restaurantRepository.getById(idrestau));
preferenceRepository.deleteById(id);
}
}