package com.mailserver.dev; import com.mailserver.service.MailService; import org.springframework.context.annotation.Profile; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Mono; import java.util.Map; /** Dev profile only: put a message into a mailbox without SMTP (any sender — never on a real server). */ @RestController @Profile("dev") public class DevController { private final MailService mailService; public DevController(MailService mailService) { this.mailService = mailService; } @PostMapping("/api/simulate/receive") public Mono>> simulateReceive(@RequestBody Map body) { return mailService.receiveMessage(body.get("senderEmail"), body.get("senderName"), body.get("recipientEmail"), body.getOrDefault("subject", ""), body.getOrDefault("body", ""), "true".equals(body.get("html"))) .thenReturn(ResponseEntity.ok(Map.of("message", "Message received"))) .onErrorResume(e -> Mono.just(ResponseEntity.badRequest().body(Map.of("error", String.valueOf(e.getMessage()))))); } }