/** * Delete multiple messages * * @param account * @param requestJSONContent JSON array of message UUIDs e.g. [uuid1, uuid2, ...] * @return */ @DELETE @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response deleteMessages( @PathParam("user") final String user, @PathParam("domain") final String domain, final String requestJSONContent) { Mailbox mailbox = new Mailbox(user, domain); List<UUID> messageIds = null; try { messageIds = JSONUtils.toUUIDList(requestJSONContent); } catch (IllegalStateException jpe) { logger.info("Malformed JSON request: {}", jpe.getMessage()); throw new BadRequestException("Malformed JSON request"); } if (messageIds == null || messageIds.isEmpty()) throw new BadRequestException("Malformed JSON request"); try { // delete message and ignore other parameters messageDAO.delete(mailbox, messageIds); } catch (Exception e) { logger.error("Message deletion failed: ", e); throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR); } return Response.noContent().build(); }