[CowAPI] 25. QnA

준돌·2022년 7월 12일
0

오늘의 Cow

목록 보기
30/45

1. 목표

  • QnA 등록시 슬랙방에 알람 보내기 기능 구현

2. 준비물

  • Slack 앱 생성
  • Slack 채널 생성

3. 코드

properties

slack.token = {slack에서 제공하는 app 토큰} (ex, xoxp- ....)
slack.channel = {공지를 보낼 채널} (ex, #notice)

SlackService

// 1. SlackService

@Service
public class SlackService {
    @Value(value = "${slack.token}")
    String token;

    @Value(value = "${slack.channel}")
    String channel;

    public void postSlackMessage(String message) {
        try {
            MethodsClient methods = Slack.getInstance().methods(token);
            ChatPostMessageRequest request = ChatPostMessageRequest.builder()
                    .channel(channel)
                    .text(message)
                    .build();

            methods.chatPostMessage(request);


        } catch (SlackApiException | IOException e) {
            throw new ResponseStatusException(HttpStatus.BAD_REQUEST, e.getMessage());
        }
    }
}
// 2. Qna Controller
// QnA 생성 API에 알람 서비스를 추가

@RestController
public class QnaController {
    @PostMapping("...")
    public ... createQnA(...) {
        slackService.postSlackMessage("새로운 QnA가 생성되었습니다.");
        return ...
    }
	
}
profile
눈 내리는 겨울이 좋아!

0개의 댓글