From cef6122208aadf3f6d9e98caf35dfb5ae46e9956 Mon Sep 17 00:00:00 2001 From: "DESKTOP-LOH5O20\\rehit" Date: Tue, 25 Jul 2023 16:59:03 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=EA=B5=AC=EB=8F=85=EC=8B=9C=20?= =?UTF-8?q?=EB=B0=94=EB=A1=9C=20=EC=9D=B4=EB=A9=94=EC=9D=BC=20=EC=A0=84?= =?UTF-8?q?=EC=86=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../newnique/auth/config/WebSecurityConfig.java | 1 + .../newsletter/controller/SubscriptionController.java | 3 ++- .../com/example/newnique/newsletter/dto/Maildto.java | 2 ++ .../newsletter/service/SubscriptionService.java | 11 ++++++++++- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/newnique/auth/config/WebSecurityConfig.java b/src/main/java/com/example/newnique/auth/config/WebSecurityConfig.java index 4f48379..0f0d8f2 100644 --- a/src/main/java/com/example/newnique/auth/config/WebSecurityConfig.java +++ b/src/main/java/com/example/newnique/auth/config/WebSecurityConfig.java @@ -83,6 +83,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() // resources(정적리소스) 접근 허용 .requestMatchers("/api/auth/**").permitAll() .requestMatchers(HttpMethod.GET,"/api/news/**").permitAll() + .requestMatchers(HttpMethod.POST,"/api/sub/**").permitAll() .anyRequest().authenticated() // 그 외 모든 요청은 인증처리 ); diff --git a/src/main/java/com/example/newnique/newsletter/controller/SubscriptionController.java b/src/main/java/com/example/newnique/newsletter/controller/SubscriptionController.java index 27d97ed..71c7183 100644 --- a/src/main/java/com/example/newnique/newsletter/controller/SubscriptionController.java +++ b/src/main/java/com/example/newnique/newsletter/controller/SubscriptionController.java @@ -3,6 +3,7 @@ import com.example.newnique.newsletter.dto.SubscriptionRequestDto; import com.example.newnique.newsletter.dto.SubscriptionResponseDto; import com.example.newnique.newsletter.service.SubscriptionService; +import jakarta.mail.MessagingException; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; @@ -19,7 +20,7 @@ public class SubscriptionController { @PostMapping("/sub") - public ResponseEntity createSub(@RequestBody SubscriptionRequestDto subscriptionRequestDto) { + public ResponseEntity createSub(@RequestBody SubscriptionRequestDto subscriptionRequestDto) throws MessagingException { SubscriptionResponseDto subscriptionResponseDto = new SubscriptionResponseDto(subscriptionService.createSub(subscriptionRequestDto)); return ResponseEntity.ok(subscriptionResponseDto); diff --git a/src/main/java/com/example/newnique/newsletter/dto/Maildto.java b/src/main/java/com/example/newnique/newsletter/dto/Maildto.java index 67ff9ca..f5b82e8 100644 --- a/src/main/java/com/example/newnique/newsletter/dto/Maildto.java +++ b/src/main/java/com/example/newnique/newsletter/dto/Maildto.java @@ -1,10 +1,12 @@ package com.example.newnique.newsletter.dto; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Getter; @Getter @AllArgsConstructor +@Builder public class Maildto { private String toAddress; private String title; diff --git a/src/main/java/com/example/newnique/newsletter/service/SubscriptionService.java b/src/main/java/com/example/newnique/newsletter/service/SubscriptionService.java index d1d6a97..6fde245 100644 --- a/src/main/java/com/example/newnique/newsletter/service/SubscriptionService.java +++ b/src/main/java/com/example/newnique/newsletter/service/SubscriptionService.java @@ -1,8 +1,11 @@ package com.example.newnique.newsletter.service; +import com.example.newnique.newsletter.dto.Maildto; import com.example.newnique.newsletter.dto.SubscriptionRequestDto; import com.example.newnique.newsletter.entity.Subscription; +import com.example.newnique.newsletter.handler.EmailSender; import com.example.newnique.newsletter.repository.SubscriptionRepository; +import jakarta.mail.MessagingException; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -11,10 +14,16 @@ public class SubscriptionService { private final SubscriptionRepository subscriptionRepository; - public Subscription createSub(SubscriptionRequestDto subscriptionRequestDto) { + private final EmailSender emailSender; + public Subscription createSub(SubscriptionRequestDto subscriptionRequestDto) throws MessagingException { Subscription subscription = new Subscription(subscriptionRequestDto); Subscription saveSubscription = subscriptionRepository.save(subscription); + Maildto maildto = Maildto.builder().title(subscriptionRequestDto.getNickName()+"님 환영합니다") + .message("뉴닉을 구독해주신걸 환영합니다 !") + .toAddress(subscriptionRequestDto.getEmail()).build(); + emailSender.sendMail(maildto); + return saveSubscription;