Skip to content

Commit 3369f64

Browse files
committed
feat: Slack 예외 처리 #106
- ResponseData json 형태로 출력되게 변경
1 parent 1e8da81 commit 3369f64

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

default/src/main/java/org/dfbf/soundlink/domain/emotionRecord/mock/TestDataInitializer.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import lombok.RequiredArgsConstructor;
44
import org.dfbf.soundlink.domain.user.repository.UserRepository;
5+
import org.dfbf.soundlink.global.exception.ResponseResult;
56
import org.dfbf.soundlink.global.slack.service.SlackService;
67
import org.springframework.boot.CommandLineRunner;
78
import org.springframework.stereotype.Component;
@@ -16,15 +17,7 @@ public class TestDataInitializer implements CommandLineRunner {
1617

1718
@Override
1819
public void run(String... args) {
19-
String testJson = """
20-
{
21-
"code": 0,
22-
"message": "string",
23-
"timestamp": "string",
24-
"data": {}
25-
}
26-
""";
27-
slackService.sendMsg(testJson, "흥칫뿡");
20+
slackService.sendMsg(new ResponseResult(200, "OK"), "흥칫뿡");
2821
System.out.println("Server ON");
2922
}
3023
}

default/src/main/java/org/dfbf/soundlink/global/slack/service/SlackService.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.dfbf.soundlink.global.slack.service;
22

33
import com.slack.api.Slack;
4+
import com.fasterxml.jackson.databind.ObjectMapper;
45
import com.slack.api.webhook.WebhookResponse;
56
import lombok.extern.slf4j.Slf4j;
67
import org.springframework.beans.factory.annotation.Value;
@@ -18,6 +19,17 @@ public class SlackService {
1819
private String webhookUrl;
1920

2021
public void sendMsg(Object object, String errorMessage){
22+
ObjectMapper objectMapper = new ObjectMapper();
23+
String objectJson = "";
24+
try {
25+
objectJson = objectMapper
26+
.writerWithDefaultPrettyPrinter()
27+
.writeValueAsString(object)
28+
.replace("\"", "");
29+
} catch (Exception ex) {
30+
log.error("[SLACK ERROR] Failed to convert object to JSON", ex);
31+
}
32+
2133
String message = """
2234
{
2335
"blocks": [
@@ -32,7 +44,7 @@ public void sendMsg(Object object, String errorMessage){
3244
"type": "section",
3345
"text": {
3446
"type": "mrkdwn",
35-
"text": "ResponseData\n```%s```"
47+
"text": "Response Data\n```%s```"
3648
}
3749
},
3850
{
@@ -54,7 +66,7 @@ public void sendMsg(Object object, String errorMessage){
5466
}
5567
]
5668
}
57-
""".formatted(object, errorMessage, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
69+
""".formatted(objectJson, errorMessage, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
5870

5971
try {
6072
WebhookResponse response = Slack.getInstance().send(webhookUrl, message);

0 commit comments

Comments
 (0)