Files
qchat/src/main/java/de/w665/testing/controller/WebSocketInviteController.java
Maximilian Walz adb8ef9c83 Init
2025-09-16 23:05:31 +02:00

46 lines
1.8 KiB
Java

package de.w665.testing.controller;
import de.w665.testing.dto.AcceptInviteCommand;
import de.w665.testing.dto.DeclineInviteCommand;
import de.w665.testing.dto.InviteCommand;
import de.w665.testing.service.InviteService;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.stereotype.Controller;
import java.security.Principal;
@Controller
public class WebSocketInviteController {
private final InviteService inviteService;
public WebSocketInviteController(InviteService inviteService) {
this.inviteService = inviteService;
}
@MessageMapping("/invite/send")
public void sendInvite(@Payload InviteCommand cmd, Principal principal) {
if (principal == null) return;
String from = principal.getName();
if (cmd.getTo() == null || cmd.getTo().isBlank()) return;
if (from.equalsIgnoreCase(cmd.getTo())) return;
inviteService.sendInvite(from, cmd.getTo().trim().toLowerCase());
}
@MessageMapping("/invite/accept")
public void acceptInvite(@Payload AcceptInviteCommand cmd, Principal principal) {
if (principal == null) return;
String recipient = principal.getName();
if (cmd.getInviter() == null || cmd.getInviter().isBlank()) return;
inviteService.acceptInvite(recipient, cmd.getInviter().trim().toLowerCase());
}
@MessageMapping("/invite/decline")
public void declineInvite(@Payload DeclineInviteCommand cmd, Principal principal) {
if (principal == null) return;
String recipient = principal.getName();
if (cmd.getInviter() == null || cmd.getInviter().isBlank()) return;
inviteService.declineInvite(recipient, cmd.getInviter().trim().toLowerCase());
}
}