Blame view

src/main/java/etunicorn/RoleController.java 3.43 KB
8f05ee77   Geoffrey PREUD'HOMME   API /role et amél...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  package etunicorn;
  
  
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.dao.DataIntegrityViolationException;
  import org.springframework.http.HttpStatus;
  import org.springframework.http.ResponseEntity;
  import org.springframework.web.bind.annotation.PathVariable;
  import org.springframework.web.bind.annotation.RequestParam;
  import org.springframework.web.bind.annotation.RestController;
  
  import java.util.List;
  
  /**
3064f583   Geoffrey PREUD'HOMME   Copyright
15
16
17
   * etunicorn-server
   * Copyright © 2017 Le Club Info Polytech Lille
   * Tous droits réservés
8f05ee77   Geoffrey PREUD'HOMME   API /role et amél...
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
   */
  @RestController
  public class RoleController implements etunicorn.generated.RoleController {
      @Autowired
      private RoleRepository roleRepository;
  
      @Autowired
      private PermissionRepository permissionRepository;
  
      @Override
      public ResponseEntity<?> getRole() {
          return new ResponseEntity<List>((List) roleRepository.findAll(), HttpStatus.OK);
      }
  
      @Override
      public ResponseEntity<?> updateRole(@RequestParam String nom) {
          Role oldRole = roleRepository.findByNom(nom);
          if (oldRole != null) {
              return new ResponseEntity<Object>(HttpStatus.CONFLICT);
          }
          Role role = new Role();
          role.setNom(nom);
          try {
              roleRepository.save(role);
          } catch (DataIntegrityViolationException e) {
              return new ResponseEntity<Object>(HttpStatus.CONFLICT);
          }
          return new ResponseEntity<Object>(role, HttpStatus.CREATED);
      }
  
      @Override
      public ResponseEntity<?> deleteRoleById(@PathVariable String nomRole) {
          Role role = roleRepository.findByNom(nomRole);
          if (role == null) {
              return new ResponseEntity<Object>("Rôle inconnu", HttpStatus.NOT_FOUND);
          }
          roleRepository.delete(role);
          return new ResponseEntity<Object>(HttpStatus.NO_CONTENT);
      }
  
      @Override
      public ResponseEntity<?> updateRoleById(@PathVariable String nomRole, @RequestParam String nom) {
          Role role = roleRepository.findByNom(nomRole);
          if (role == null) {
              return new ResponseEntity<Object>("Rôle inconnu", HttpStatus.NOT_FOUND);
          }
          Permission permission = permissionRepository.findByNom(nom);
          if (permission == null) {
              return new ResponseEntity<Object>("Permission inconnue", HttpStatus.NOT_FOUND);
          }
          role.addPermission(permission);
          try {
              roleRepository.save(role);
          } catch (DataIntegrityViolationException e) {
              // Si la permission était déjà là, on fait rien
          }
          return new ResponseEntity<Object>(role, HttpStatus.ACCEPTED);
      }
  
      @Override
      public ResponseEntity<?> deleteRoleByNomPermission(@PathVariable String nomPermission, @PathVariable String nomRole) {
          Role role = roleRepository.findByNom(nomRole);
          if (role == null) {
              return new ResponseEntity<Object>("Rôle inconnu", HttpStatus.NOT_FOUND);
          }
          Permission permission = permissionRepository.findByNom(nomPermission);
          if (permission == null) {
              return new ResponseEntity<Object>("Permission inconnue", HttpStatus.NOT_FOUND);
          }
          role.delPermission(permission);
          roleRepository.save(role);
          return new ResponseEntity<Object>(role, HttpStatus.ACCEPTED);
      }
  
      @Override
      public ResponseEntity<?> getPermission() {
          return new ResponseEntity<List>((List) permissionRepository.findAll(), HttpStatus.OK);
      }
  }