@Override public IDeviceAlert addDeviceAlert(String assignmentToken, IDeviceAlertCreateRequest request) throws SiteWhereException { return delegate.addDeviceAlert(assignmentToken, request); }
public AssignmentScope persist(DeviceAlertCreateRequest.Builder builder) throws SiteWhereException { DeviceAlertCreateRequest request = builder.build(); events.addDeviceAlert(getAssignmentToken(), request); return this; }
@Override public void onDeviceAlertCreateRequest(String hardwareId, String originator, IDeviceAlertCreateRequest request) throws SiteWhereException { IDeviceAssignment assignment = getCurrentAssignment(hardwareId); IDeviceAlert alert = getDeviceEventManagement().addDeviceAlert(assignment.getToken(), request); handleLinkResponseToInvocation(originator, alert.getId(), assignment); }
/** * Executes logic to process a batch of device events. * * @param assignmentToken * @param batch * @param management * @return * @throws SiteWhereException */ public static DeviceEventBatchResponse deviceEventBatchLogic(String assignmentToken, IDeviceEventBatch batch, IDeviceEventManagement management) throws SiteWhereException { DeviceEventBatchResponse response = new DeviceEventBatchResponse(); for (IDeviceMeasurementsCreateRequest measurements : batch.getMeasurements()) { response.getCreatedMeasurements().add(management.addDeviceMeasurements(assignmentToken, measurements)); } for (IDeviceLocationCreateRequest location : batch.getLocations()) { response.getCreatedLocations().add(management.addDeviceLocation(assignmentToken, location)); } for (IDeviceAlertCreateRequest alert : batch.getAlerts()) { response.getCreatedAlerts().add(management.addDeviceAlert(assignmentToken, alert)); } return response; }
/** * Create alert to be associated with a device assignment. * * @param input * @param token * @param updateState * @return * @throws SiteWhereException */ @RequestMapping(value = "/{token}/alerts", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "Create alert event for device assignment") @Secured({ SiteWhereRoles.REST }) @Documented(examples = { @Example(stage = Stage.Request, json = Assignments.CreateAssignmentAlertRequest.class, description = "createAlertRequest.md"), @Example(stage = Stage.Response, json = Assignments.CreateAssignmentAlertResponse.class, description = "createAlertResponse.md") }) public DeviceAlert createAlert(@RequestBody DeviceAlertCreateRequest input, @ApiParam(value = "Assignment token", required = true) @PathVariable String token, HttpServletRequest servletRequest) throws SiteWhereException { Tracer.start(TracerCategory.RestApiCall, "createAlert", LOGGER); try { IDeviceAlert result = SiteWhere.getServer().getDeviceEventManagement(getTenant(servletRequest)) .addDeviceAlert(token, input); return DeviceAlert.copy(result); } finally { Tracer.stop(LOGGER); } }
@Override public void onLocationNotFiltered(IDeviceLocation location) throws SiteWhereException { for (ZoneTest test : zoneTests) { Polygon poly = getZonePolygon(test.getZoneToken()); ZoneContainment containment = (poly.contains(GeoUtils.createPointForLocation(location))) ? ZoneContainment.Inside : ZoneContainment.Outside; if (test.getCondition() == containment) { DeviceAlertCreateRequest alert = new DeviceAlertCreateRequest(); alert.setType(test.getAlertType()); alert.setLevel(test.getAlertLevel()); alert.setMessage(test.getAlertMessage()); alert.setUpdateState(false); alert.setEventDate(new Date()); SiteWhere.getServer().getDeviceEventManagement(getTenant()) .addDeviceAlert(location.getDeviceAssignmentToken(), alert); } } }