Advertisement
sMteX

Untitled

Nov 4th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.74 KB | None | 0 0
  1. //-----------------
  2. // controllers/InvitationController
  3. //-----------------
  4.     @RequestMapping(value = "/invite/{link}", method = RequestMethod.GET)
  5.     public ModelAndView acceptingInvitation(@PathVariable String link) {
  6.         User user = getLoggedUser();
  7.         Result result = invitationService.tryAcceptInvitation(link, user);
  8.         ModelAndView view;
  9.         if (result.getType() != ResultType.ERROR) {
  10.             view = new ModelAndView(new RedirectView("/tasks/" + (Long)result.getObject(), true));
  11.             view.addObject("permissionMessage", result.getMessage());
  12.         }
  13.         else {
  14.             view = new ModelAndView("/home/index");
  15.             view.addObject("invalidLinkMessage", result.getMessage());
  16.         }
  17.         return view;
  18.     }
  19.  
  20. //---------------------
  21. // service/implementations/InvitationService
  22. //--------------------
  23.     @Override
  24.     public Result tryAcceptInvitation(String link, User user) {
  25.         if (this.isInvitationValid(link)) {
  26.             Invitation invitation = this.getInvitationByLink(link);
  27.             Permission existingPermission = permissionService.findPermissionByUserAndTask(user, invitation.getTask());
  28.  
  29.             if (existingPermission == null) {
  30.                 Permission newPermission = new Permission();
  31.                 newPermission.setId(new PermissionKey(user, invitation.getTask()));
  32.                 newPermission.setPermission(invitation.getPermission());
  33.                 permissionService.addPermission(newPermission);
  34.                 return new Result(ResultType.SUCCESS, "Permission to the task has been granted!", invitation.getTask().getId());
  35.  
  36.             } else if (existingPermission.getPermission() == invitation.getPermission()) {
  37.                 return new Result(ResultType.ENTITY_EXISTS, "You already have permission to the note!", invitation.getTask().getId());
  38.  
  39.             } else {
  40.                 existingPermission.setPermission(invitation.getPermission());
  41.                 permissionService.updatePermission(existingPermission);
  42.                 return new Result(ResultType.ENTITY_UPDATED,"Permission to the note has been changed!", invitation.getTask().getId());
  43.             }
  44.         } else {
  45.             return new Result(ResultType.ERROR, "Invalid link!");
  46.         }
  47.     }
  48.  
  49. // ----------------------
  50. // updatePermission() potom volá metodu z repozitáře která provede manuální update (ačkoliv možná by na to stačil opět jen save())
  51. // ----------------------
  52.     @Modifying
  53.     @Transactional
  54.     @Query("UPDATE Permission p SET p.permission = :permission WHERE p.id.user.id = :userId and p.id.task.id = :taskId")
  55.     void updateByUserAndTaskId(@Param("userId") long userId, @Param("taskId") long taskId, @Param("permission") UserRight permission);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement