From d040ad6d6270c4aa269eeee741c8caac2145d626 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Wed, 18 Sep 2019 17:06:32 +0300 Subject: Parse events from /new_event endpoint --- src/main/java/com/juick/server/api/Service.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/main/java/com/juick/server') diff --git a/src/main/java/com/juick/server/api/Service.java b/src/main/java/com/juick/server/api/Service.java index f137f2f7..b1a9e73d 100644 --- a/src/main/java/com/juick/server/api/Service.java +++ b/src/main/java/com/juick/server/api/Service.java @@ -159,6 +159,31 @@ public class Service { throw new HttpForbiddenException(); } } + @ApiIgnore + @PostMapping("/api/new_event") + @ResponseStatus(value = HttpStatus.OK) + public void processEvent(@Visitor User current, InputStream data) throws Exception { + if (current.getName().equals(serviceUser)) { + MimeMessage msg = new MimeMessage(session, data); + MimeMessageParser parser = new MimeMessageParser(msg); + parser.parse(); + final String[] body = { parser.getPlainContent() }; + if (body[0] == null) { + parser.getAttachmentList().stream() + .filter(a -> a.getContentType().equals("text/plain")).findFirst() + .ifPresent(a -> { + try { + body[0] = IOUtils.toString(a.getInputStream(), StandardCharsets.UTF_8); + } catch (IOException e) { + logger.info("attachment error", e); + } + }); + } + logger.info("got text event: {}", body[0]); + } else { + throw new HttpForbiddenException(); + } + } private void endSession(SseEmitter emitter) { serverManager.getSessions().stream() .filter(s -> s.getEmitter().equals(emitter)) -- cgit v1.2.3