🔹 Slack 메시지 전송 로직 구현
🔸 SlackMessageRequest
@Getter
@NoArgsConstructor
public class SlackMessageRequestV1 {
@NotBlank
private String channel;
@NotBlank
private String text;
@Builder
private SlackMessageRequestV1(String channel, String text) {
this.channel = channel;
this.text = text;
}
}
🔸 SlackService
public void sendDmToUser(String receiverSlackId, String message) {
String channelId = openConversation(receiverSlackId);
SlackMessageRequestV1 request = SlackMessageRequestV1.builder()
.channel(channelId)
.text(message)
.build();
restClient.post()
.uri(POST_MESSAGE_URL)
.header("Authorization", "Bearer " + slackBotToken)
.header("Content-Type", "application/json")
.body(request)
.retrieve()
.toBodilessEntity();
SlackLog slackLog = SlackLog.of(receiverSlackId, message);
slackLogRepository.save(slackLog);
}
🔸 SlackController
@PostMapping("/post-message")
public BaseResponse<Void> postMessage(@RequestBody SlackMessageRequestV1 request) {
slackService.sendDmToUser(request.getChannel(), request.getText());
return BaseResponse.ok(BaseStatus.CREATED);
}