I was being too restrictive
This commit is contained in:
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user