Untitled
package com.trendmicro.serapis.admin.apiservice.api.emailnotification; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import com.forescout.soarcore.model.EmailNotificationResponse; import com.forescout.soarcore.model.SoarEmailRequest; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import com.trendmicro.serapis.apiservice.api.exceptions.EntityNotFoundException; import com.trendmicro.serapis.apiservice.security.AdminSecureApi; import com.trendmicro.serapis.apiservice.security.IdParam; import io.swagger.annotations.ApiParam; import org.springframework.web.bind.annotation.RequestBody; @Path("/admin/accounts/{accountId}/emailnotifications") @Produces({MediaType.TEXT_PLAIN}) @io.swagger.annotations.Api() @Component public class SoarEmailNotificationAdminApi { private final SoarEmailNotificationAdminApiService delegate; public SoarEmailNotificationAdminApi(SoarEmailNotificationAdminApiService delegate) { this.delegate = delegate; } @POST @Path("/send") @Produces({MediaType.APPLICATION_JSON}) @AdminSecureApi(hasAccountIdParameter = true) public Response publishNotification(@ApiParam(value = "Id of the account", required = true) @PathParam("accountId") @IdParam String accountId, @RequestBody SoarEmailRequest soarEmailRequest) throws EntityNotFoundException { try { delegate.validateRecipients(soarEmailRequest.recipients()); EmailNotificationResponse emailNotificationResponse = delegate.sendEmailNotification(accountId,soarEmailRequest); return Response.status(Response.Status.OK).entity(emailNotificationResponse).build(); } catch (Exception e) { return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("Error sending email: " + e.getMessage()).build(); } } }
Leave a Comment