Skip to content

Commit 7cda880

Browse files
committed
feat: 유저 밴 적용시 슬랙 알람 적용
1 parent 2206d03 commit 7cda880

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

src/main/java/org/myteam/server/chat/service/BanService.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,47 @@
33
import lombok.AllArgsConstructor;
44
import lombok.extern.slf4j.Slf4j;
55
import org.myteam.server.chat.domain.Ban;
6+
import org.myteam.server.chat.domain.BanReason;
67
import org.myteam.server.chat.dto.request.BanRequest;
78
import org.myteam.server.chat.dto.response.BanResponse;
89
import org.myteam.server.chat.repository.BanRepository;
910
import org.myteam.server.global.exception.ErrorCode;
1011
import org.myteam.server.global.exception.PlayHiveException;
12+
import org.myteam.server.util.slack.service.SlackService;
1113
import org.springframework.stereotype.Service;
1214

1315
import java.time.format.DateTimeFormatter;
16+
import java.util.stream.Collectors;
1417

1518
@Slf4j
1619
@Service
1720
@AllArgsConstructor
1821
public class BanService {
1922

2023
private final BanRepository banRepository;
24+
private final SlackService slackService;
2125

2226
/**
23-
* TODO: 슬랙 알람 서비스 적용해야함.
2427
* 유저 밴 적용
2528
*/
2629
public BanResponse banUser(BanRequest request) {
27-
log.info("This user: {} has received a blocking request.", request.getUsername());
30+
String username = request.getUsername();
31+
log.info("This user: {} has received a blocking request.", username);
2832
// 이미 밴된 유저인지 확인
29-
if (banRepository.existsByUsername(request.getUsername())) {
33+
if (banRepository.existsByUsername(username)) {
3034
throw new PlayHiveException(ErrorCode.BAN_ALREADY_EXISTS);
3135
}
3236

33-
Ban ban = Ban.createBan(request.getUsername(), request.getReasons(), request.getMessage());
37+
Ban ban = Ban.createBan(username, request.getReasons(), request.getMessage());
3438
Ban savedBan = banRepository.save(ban);
3539

40+
String reasons = request.getReasons()
41+
.stream()
42+
.map(BanReason::getReason)
43+
.collect(Collectors.joining(", "));
44+
String message = String.format("%s (차단 사유: %s)", username, reasons);
45+
slackService.sendSlackNotification(message);
46+
3647
return toBanResponse(savedBan);
3748
}
3849

0 commit comments

Comments
 (0)