package org.activityinfo.server.mail;
import com.google.common.base.Strings;
import com.google.inject.Inject;
import org.activityinfo.service.DeploymentConfiguration;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import java.util.logging.Logger;
@Path("/bounceHook")
public class BounceHook {
private static final Logger LOGGER = Logger.getLogger(BounceHook.class.getName());
private final String bounceHookToken;
@Inject
public BounceHook(DeploymentConfiguration config) {
bounceHookToken = config.getProperty("postmark.bouncehook.key");
}
@POST @Path("/{token}") @Consumes(MediaType.APPLICATION_JSON)
public Response bounced(@PathParam("token") String token, Bounce bounce) {
if (Strings.isNullOrEmpty(bounceHookToken) || !bounceHookToken.equals(token)) {
throw new WebApplicationException(Status.UNAUTHORIZED);
}
LOGGER.info("Subject = " + bounce.getSubject());
LOGGER.info("Email = " + bounce.getEmail());
LOGGER.info("Type = " + bounce.getType());
LOGGER.info("Token = " + token);
return Response.ok().build();
}
}