/
psklyarov
/
agent-replacer
Обзор
Документация
Войти
/
psklyarov
/
agent-replacer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/com/example/agentreplacer/chat/ChatController.java
62 строки
2 KB
pavelsklyarov
insecure ssl
16 дек 2025, 09:03
16 дек 2025, 09:03
da61b1f
Код
Авторство
О чём код?
package com.example.agentreplacer.chat; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Map; @RestController @RequestMapping("/api/chat") public class ChatController { private final ChatService chatService; private static final Logger log = LoggerFactory.getLogger(ChatController.class); public ChatController(ChatService chatService) { this.chatService = chatService; } @PostMapping("/session") public ResponseEntity<Map<String, Object>> createSession() { log.info("Create chat session request"); ChatSessionState session = chatService.createSession(); log.info("Session created: {}", session.getSessionId()); return ResponseEntity.ok(Map.of( "sessionId", session.getSessionId(), "messages", session.getMessages() )); } @GetMapping("/{sessionId}") public ResponseEntity<?> getSession(@PathVariable("sessionId") String sessionId) { log.debug("Get session state: {}", sessionId); ChatSessionState session = chatService.getOrRestore(sessionId); if (session == null) { log.warn("Session not found: {}", sessionId); return ResponseEntity.notFound().build(); } java.util.Map<String, Object> resp = new java.util.HashMap<>(); resp.put("sessionId", session.getSessionId()); resp.put("messages", session.getMessages()); resp.put("hasAllAnswers", session.hasAllAnswers()); if (session.getPlan() != null) { resp.put("plan", session.getPlan()); } return ResponseEntity.ok(resp); } @PostMapping("/{sessionId}/message") public ResponseEntity<?> sendMessage(@PathVariable("sessionId") String sessionId, @RequestBody Map<String, String> body) { log.info("Incoming chat message for session {}", sessionId); String message = body.getOrDefault("message", ""); if (message == null || message.isBlank()) { log.warn("Empty message for session {}", sessionId); return ResponseEntity.badRequest().body(Map.of("error", "message is required")); } ChatMessage reply = chatService.handleUserMessage(sessionId, message); log.debug("Reply for session {}: {}", sessionId, reply.getContent()); return ResponseEntity.ok(Map.of("reply", reply)); } }