@RequestMapping(value = "/adminrules", method = RequestMethod.POST) public ResponseEntity<Long> insert(@RequestBody JaxbAdminRule rule) { long priority = rule.getPriority() == null ? 0 : rule.getPriority(); if (adminService.getRuleByPriority(priority) != null) { adminService.shift(priority, 1); } return new ResponseEntity<>(adminService.insert(rule.toRule()), HttpStatus.CREATED); }
@Override @Transactional(propagation = Propagation.REQUIRED, value = "geofenceTransactionManager") public Response insert(RESTInputAdminRule inputAdminRule) throws NotFoundRestEx, BadRequestRestEx, InternalErrorRestEx { if (inputAdminRule.getPosition() == null || inputAdminRule.getPosition().getPosition() == null) { throw new BadRequestRestEx("Bad position: " + inputAdminRule.getPosition()); } if (inputAdminRule.getGrant() == null) { throw new BadRequestRestEx("Missing grant type"); } AdminRule rule = fromInput(inputAdminRule); InsertPosition position = inputAdminRule.getPosition().getPosition() == RulePosition.fixedPriority ? InsertPosition.FIXED : inputAdminRule.getPosition().getPosition() == RulePosition.offsetFromBottom ? InsertPosition.FROM_END : inputAdminRule.getPosition().getPosition() == RulePosition.offsetFromTop ? InsertPosition.FROM_START : null; // ok: insert it try { Long id = adminRuleAdminService.insert(rule, position); return Response.status(Status.CREATED).tag(id.toString()).entity(id).build(); } catch (BadRequestServiceEx ex) { LOGGER.error(ex.getMessage()); throw new BadRequestRestEx(ex.getMessage()); } catch (Exception ex) { LOGGER.error(ex.getMessage(), ex); throw new InternalErrorRestEx(ex.getMessage()); } }
public void save(ShortAdminRule rule) { if (rule.getId() == null) { shiftIfNecessary(rule.getPriority(), rule); int i = 0; while (i < rules.size() && rules.get(i).getPriority() < rule.getPriority()) { i++; } rules.add(i, rule); AdminRule bigRule = new AdminRule(); syncRule(rule, bigRule); rule.setId(adminService().insert(bigRule)); } else { AdminRule bigRule = adminService().get(rule.getId()); if (bigRule.getPriority() != rule.getPriority()) { shiftIfNecessary(rule.getPriority(), rule); } syncRule(rule, bigRule); adminService().update(bigRule); } }
adminService.insert( new AdminRule( 5, null, AdminGrantType.ADMIN)); adminService.insert( new AdminRule( 2, null, AdminGrantType.ADMIN)); adminService.insert( new AdminRule( 1, null, AdminGrantType.ADMIN)); adminService.insert( new AdminRule( 4, null, AdminGrantType.ADMIN)); adminService.insert( new AdminRule( 3, null,