46 lines
1.8 KiB
Java
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());
|
|
}
|
|
}
|