I was being too restrictive

This commit is contained in:
2026-01-02 22:58:36 +01:00
parent 81a8afa332
commit 137acc846a

View File

@@ -17,9 +17,7 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@RestController
@@ -28,7 +26,7 @@ public class ChatController {
private final MessageService messageService;
private final WebexService webexService;
private final MqttService mqttService;
private final Set<String> expectedMessages;
private final ConcurrentHashMap<String, Integer> expectedMessages;
@Autowired
public ChatController(
@@ -38,7 +36,7 @@ public class ChatController {
this.messageService = messageService;
this.webexService = webexService;
this.mqttService = mqttService;
this.expectedMessages = ConcurrentHashMap.newKeySet();
this.expectedMessages = new ConcurrentHashMap<>();
}
@PostMapping("/message/send")
@@ -55,7 +53,7 @@ public class ChatController {
String messageId = this.webexService.post(model);
model.setId(messageId);
this.messageService.save(model);
expectedMessages.add(messageId);
expectedMessages.put(messageId, 0);
result.setSuccess(true);
result.setData(messageId);
@@ -112,13 +110,13 @@ public class ChatController {
ObjectMapper mapper = new ObjectMapper();
WebexWebhook payload = mapper.readValue(rawPayload, WebexWebhook.class);
boolean accepted = expectedMessages.remove(payload.getData().getId());
if (accepted) {
Logger.displayInfo("Accepted");
} else {
int seen = expectedMessages.get(payload.getData().getId());
if (seen == 2) {
Logger.displayInfo("Rejected");
expectedMessages.remove(payload.getData().getId());
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(result);
}
Logger.displayInfo("Accepted");
Room room = webexService.getRoomById(payload.getData().getRoomId());
Message msg = webexService.fetchMessage(payload.getData().getId());