diff --git a/src/main/java/org/sopt/sweet/domain/member/service/OAuthService.java b/src/main/java/org/sopt/sweet/domain/member/service/OAuthService.java index bc25dd7..cd13148 100644 --- a/src/main/java/org/sopt/sweet/domain/member/service/OAuthService.java +++ b/src/main/java/org/sopt/sweet/domain/member/service/OAuthService.java @@ -15,10 +15,7 @@ import org.sopt.sweet.global.config.auth.jwt.JwtProvider; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; +import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.LinkedMultiValueMap; @@ -26,6 +23,8 @@ import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; +import java.util.HashMap; +import java.util.Map; import java.util.concurrent.TimeUnit; @RequiredArgsConstructor @@ -53,6 +52,9 @@ private String issueNewRefreshToken(Long memberId) { @Value("${jwt.refresh-token-expire-time}") private long REFRESH_TOKEN_EXPIRE_TIME; + @Value("${discord.webhook.url}") + private String discordWebhookUrl; + private final ObjectMapper objectMapper; private final RedisTemplate redisTemplate; @@ -121,6 +123,7 @@ public KakaoUserInfoResponseDto saveMember(Long socialId, String nickname, Strin .profileImg(profileImage) .build(); memberRepository.save(member); + sendDiscordNotification(nickname); return new KakaoUserInfoResponseDto(member.getId(), socialId, nickname, profileImage); } return new KakaoUserInfoResponseDto(existMember.getId(), socialId, nickname, profileImage); @@ -167,6 +170,28 @@ public MemberReissueTokenResponseDto reissue(MemberTokenResponseDto memberTokenR return MemberReissueTokenResponseDto.of(newAccessToken, newRefreshToken); } + // 회원가입 웹훅 + public String sendDiscordNotification(String nickname) { + RestTemplate restTemplate = new RestTemplate(); + Long totalMembers = memberRepository.count(); + + String message = totalMembers + "번째 멤버가 회원가입했습니다.\n" + + "사용자명: " + nickname; + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + + Map body = new HashMap<>(); + body.put("content", message); + + HttpEntity> requestEntity = new HttpEntity<>(body, headers); + + restTemplate.postForEntity(discordWebhookUrl, requestEntity, String.class); + return null; + } + + + }