/** * Construct and submit a new rule to the engine. * * @param isInterchange * @param bean * @return on success, return the id of the newly added rule * @throws WebApplicationException when a rule is not found or the */ @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) public Response submitThresholdRule( @HeaderParam(X_VISION_INTERCHANGE_HEADER) final boolean isInterchange, final ThresholdRuleBean bean) { try { final VismoRule rule = factory.buildFrom(bean); rule.submit(); update.notifyInsertion(isInterchange, rule.id(), bean); return submittedSuccessfully(rule); } catch (final ThresholdRuleValidationError e) { return badSpecification(e.getMessage()); } }
/** * @param isInterchange * @param name * @param period * @return on success, return the id of the newly added rule */ @Path("{name}/{period}") @POST @Produces(MediaType.TEXT_PLAIN) public Response submitDefaultRule( @HeaderParam(X_VISION_INTERCHANGE_HEADER) final boolean isInterchange, @PathParam("name") final String name, @PathParam("period") final long period) { final DefaultRuleBean bean = new DefaultRuleBean(name, period); final VismoRule rule = factory.buildFrom(bean); if (rule == null) return badSpecification("unknown rule name: " + name); rule.submit(); update.notifyInsertion(isInterchange, rule.id(), bean); return submittedSuccessfully(rule); }