@GET("/backend/config/alerts/([0-9a-f]{40})") String getAlert(String version) throws JsonProcessingException { AlertConfig alertConfig = configRepository.getAlertConfig(version); if (alertConfig == null) { throw new JsonServiceException(HttpResponseStatus.NOT_FOUND); } return mapper.writeValueAsString(AlertConfigDto.fromConfig(alertConfig)); }
@POST("/backend/config/alerts/update") String updateAlert(String content) throws IOException { AlertConfigDto alertConfigDto = mapper.readValue(content, ImmutableAlertConfigDto.class); AlertConfig alertConfig = alertConfigDto.toConfig(); String version = alertConfigDto.version(); checkNotNull(version, "Missing required request property: version"); configRepository.updateAlertConfig(alertConfig, version); return mapper.writeValueAsString(AlertConfigDto.fromConfig(alertConfig)); }
@GET("/backend/config/alerts") String getAlertList() throws JsonProcessingException { List<AlertConfigDto> alertConfigDtos = Lists.newArrayList(); List<AlertConfig> alertConfigs = configRepository.getAlertConfigs(); alertConfigs = orderingByName.immutableSortedCopy(alertConfigs); for (AlertConfig alertConfig : alertConfigs) { alertConfigDtos.add(AlertConfigDto.fromConfig(alertConfig)); } return mapper.writeValueAsString(alertConfigDtos); }
@POST("/backend/config/alerts/add") String addAlert(String content) throws Exception { AlertConfigDto alertConfigDto = mapper.readValue(content, ImmutableAlertConfigDto.class); AlertConfig alertConfig = alertConfigDto.toConfig(); try { configRepository.insertAlertConfig(alertConfig); } catch (DuplicateMBeanObjectNameException e) { // log exception at debug level logger.debug(e.getMessage(), e); throw new JsonServiceException(CONFLICT, "mbeanObjectName"); } return mapper.writeValueAsString(AlertConfigDto.fromConfig(alertConfig)); }
@POST("/backend/config/alerts/remove") void removeAlert(String content) throws IOException { String version = mapper.readValue(content, String.class); checkNotNull(version); configRepository.deleteAlertConfig(version); }