Untitled

 avatar
unknown
plain_text
23 days ago
2.1 kB
1
Indexable
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