package org.openstack.atlas.api.mgmt.resources; import org.openstack.atlas.service.domain.events.entities.Alert; import org.openstack.atlas.service.domain.events.entities.AlertStatus; import org.openstack.atlas.api.helpers.ResponseFactory; import org.openstack.atlas.api.mgmt.resources.providers.ManagementDependencyProvider; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.SecurityContext; public class AlertResource extends ManagementDependencyProvider { private int id; @GET public Response retrieveAlerts(@Context SecurityContext sc) { if (!isUserInRole("cp,ops,support")) { return ResponseFactory.accessDenied(); } try { Alert alert = alertService.getById(id); org.openstack.atlas.docs.loadbalancers.api.management.v1.Alert display = getDozerMapper().map(alert, org.openstack.atlas.docs.loadbalancers.api.management.v1.Alert.class, "MESSAGE_ALERT"); return Response.status(Response.Status.OK).entity(display).build(); } catch (Exception e) { return ResponseFactory.getErrorResponse(e, null, null); } } @PUT @Path("acknowledged") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Response updateStatus() { if (!isUserInRole("cp,ops,support")) { return ResponseFactory.accessDenied(); } try { Alert dbAlert = notificationService.getAlert(id); dbAlert.setStatus(AlertStatus.ACKNOWLEDGED); notificationService.updateAlert(dbAlert); return Response.status(Response.Status.ACCEPTED).build(); } catch (Exception e) { return ResponseFactory.getErrorResponse(e, null, null); } } public void setId(int id) { this.id = id; } public int getId() { return id; } }