From 2c4b3e692da9191b0d037b3b96fcc7195038ce55 Mon Sep 17 00:00:00 2001 From: Pol Pinol Castuera Date: Sun, 25 May 2025 18:47:23 +0200 Subject: [PATCH] Parse better the feeling --- .../listeners/PubsubNewsEventSubscriber.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/autoinvestor/infrastructure/listeners/PubsubNewsEventSubscriber.java b/src/main/java/io/autoinvestor/infrastructure/listeners/PubsubNewsEventSubscriber.java index 35b04db..694b45f 100644 --- a/src/main/java/io/autoinvestor/infrastructure/listeners/PubsubNewsEventSubscriber.java +++ b/src/main/java/io/autoinvestor/infrastructure/listeners/PubsubNewsEventSubscriber.java @@ -82,9 +82,28 @@ private void processMessage(PubsubMessage message, AckReplyConsumer consumer) { return; } + Object rawFeeling = event.getPayload().get("feeling"); + int feeling; + if (rawFeeling instanceof Number) { + feeling = ((Number) rawFeeling).intValue(); + } else if (rawFeeling instanceof String) { + try { + feeling = Integer.parseInt((String) rawFeeling); + } catch (NumberFormatException ex) { + log.warn("Malformed feeling value; ignoring msgId={}", msgId); + consumer.ack(); + return; + } + } else { + log.warn("Unexpected feeling type {}; ignoring msgId={}", + rawFeeling == null ? "null" : rawFeeling.getClass(), msgId); + consumer.ack(); + return; + } + RegisterDecisionCommand cmd = new RegisterDecisionCommand( (String) event.getPayload().get("assetId"), - (int) event.getPayload().get("feeling") + feeling ); commandHandler.handle(cmd); log.info("Decision registered for asset={} feeling={} msgId={}",