Skip to content

Commit

Permalink
✨ WriteInquiryService 에 문의 사항 작성 관련 푸시 알림 기능 적용
Browse files Browse the repository at this point in the history
  • Loading branch information
uuuuuuuk committed Apr 12, 2024
1 parent 25aa4ca commit 777573c
Showing 1 changed file with 13 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import andreas311.miso.domain.inquiry.application.port.output.CommandInquiryPort
import andreas311.miso.domain.inquiry.application.port.output.DiscordMessageSendPort
import andreas311.miso.domain.inquiry.domain.Inquiry
import andreas311.miso.domain.inquiry.domain.InquiryStatus
import andreas311.miso.domain.notification.application.port.input.InquiryNotificationSendUseCase
import andreas311.miso.domain.notification.application.port.output.QueryDeviceTokenPort
import andreas311.miso.thirdparty.aws.s3.util.S3Util
import org.springframework.web.multipart.MultipartFile
import java.time.LocalDateTime
Expand All @@ -17,7 +19,9 @@ class WriteInquiryService(
private val s3Util: S3Util,
private val userSecurityPort: UserSecurityPort,
private val commandInquiryPort: CommandInquiryPort,
private val discordMessageSendPort: DiscordMessageSendPort
private val queryDeviceTokenPort: QueryDeviceTokenPort,
private val discordMessageSendPort: DiscordMessageSendPort,
private val inquiryNotificationSendUseCase: InquiryNotificationSendUseCase
) : WriteInquiryUseCase {
override fun execute(writeInquiryDto: WriteInquiryDto, multipartFile: MultipartFile?) {
val user = userSecurityPort.currentUser()
Expand All @@ -27,8 +31,9 @@ class WriteInquiryService(
s3Util.execute(multipartFile)
} else null

commandInquiryPort.saveInquiry(
Inquiry(
val deviceToken = queryDeviceTokenPort.findByUserIdOrNull(user.id)

val inquiry = Inquiry(
id = 0L,
title = writeInquiryDto.title,
content = writeInquiryDto.content,
Expand All @@ -37,12 +42,15 @@ class WriteInquiryService(
user = user,
createdDate = LocalDateTime.now()
)
)

commandInquiryPort.saveInquiry(inquiry)

sendDiscordMessage(writeInquiryDto.title)

deviceToken?.let { inquiryNotificationSendUseCase.execute(inquiry, deviceToken.deviceToken) }
}

private fun sendDiscordMessage(title: String) {

val inquiryMessage = discordMessageSendPort.createInquiryMessage(title)

discordMessageSendPort.sendDiscordMessage(inquiryMessage)
Expand Down

0 comments on commit 777573c

Please sign in to comment.