Add chat input functionality in ChatBoxComponent and backend support for sending server messages
This commit is contained in:
@@ -71,6 +71,7 @@ public class SecurityConfig {
|
||||
.requestMatchers("/api/files/download/**").hasAuthority(PermissionClaimDto.HEAD_MOD.getValue())
|
||||
.requestMatchers("/api/history/admin/**").hasAuthority(PermissionClaimDto.HEAD_MOD.getValue())
|
||||
.requestMatchers("/api/login/userLogin/**").permitAll()
|
||||
.requestMatchers("/api/site/chat/**").authenticated()
|
||||
.requestMatchers("/api/chat/server/send/**").permitAll()
|
||||
.anyRequest().permitAll()
|
||||
)
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
package com.alttd.altitudeweb.controllers.chat;
|
||||
|
||||
import com.alttd.altitudeweb.api.ServerMessageApi;
|
||||
import com.alttd.altitudeweb.model.ServerMessageRequestDto;
|
||||
import com.alttd.altitudeweb.services.chat.to_server.ServerMessageService;
|
||||
import com.alttd.altitudeweb.services.chat.to_server.data.ChatFromWeb;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class ServerMessageController implements ServerMessageApi {
|
||||
|
||||
private final ServerMessageService serverMessageService;
|
||||
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||
|
||||
public static String toJson(Object object) {
|
||||
try {
|
||||
return OBJECT_MAPPER.writeValueAsString(object);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new IllegalStateException("Failed to serialize object to JSON", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<Void> sendServerMessage(String server, ServerMessageRequestDto serverMessageRequestDto) {
|
||||
ChatFromWeb chatFromWeb = ChatFromWeb.builder()
|
||||
.sender(serverMessageRequestDto.getUuid())
|
||||
.message(serverMessageRequestDto.getMessage())
|
||||
.build();
|
||||
|
||||
String json = toJson(chatFromWeb);
|
||||
|
||||
if (serverMessageService.sendMessage(server, "web_chat", json)) {
|
||||
return new ResponseEntity<>(HttpStatus.ACCEPTED);
|
||||
} else {
|
||||
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user