Skip to content

Commit 5c33c8f

Browse files
authored
Merge pull request #65 from TeamDMU/feat/notice-push-message-api
feat: 공지사항 푸시 알림 테스트 API 작성
2 parents e814d60 + 129fab6 commit 5c33c8f

File tree

5 files changed

+53
-2
lines changed

5 files changed

+53
-2
lines changed

dmforu-admin/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies {
1313

1414
implementation("org.springframework.boot:spring-boot-starter-web")
1515

16-
runtimeOnly(project(":dmforu-infrastructure:sqs"))
16+
runtimeOnly(project(":dmforu-infrastructure:fcm"))
1717
runtimeOnly(project(":dmforu-infrastructure:storage:mysql"))
1818
runtimeOnly(project(":dmforu-infrastructure:storage:mongo"))
1919

dmforu-admin/src/main/kotlin/com/dmforu/admin/AdminApplication.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import java.util.*
88
@SpringBootApplication(
99
scanBasePackages = [
1010
"com.dmforu.admin",
11-
"com.dmforu.sqs",
11+
"com.dmforu.fcm",
1212
"com.dmforu.storage.db.mongo",
1313
"com.dmforu.storage.db.mysql"
1414
]

dmforu-admin/src/main/kotlin/com/dmforu/admin/message/MessageService.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,18 @@ class MessageService(
2323
sendDepartmentNoticeMessage(notice)
2424
}
2525

26+
fun sendTestNoticeMessage(token: String, notice: Notice) {
27+
if (notice.isUniversityNotice()) {
28+
val keyword = keywordFilter.extractKeywordFrom(notice.title) ?: return
29+
val message = NoticeMessage.createUniversityNoticeMessage(notice = notice, keyword = keyword)
30+
messageSender.sendNoticeMessage(message = message, tokens = listOf(token))
31+
return
32+
}
33+
34+
val message = NoticeMessage.createDepartmentNoticeMessage(notice = notice)
35+
messageSender.sendNoticeMessage(message = message, tokens = listOf(token))
36+
}
37+
2638
private fun sendUniversityNoticeMessage(notice: Notice) {
2739
val keyword = keywordFilter.extractKeywordFrom(notice.title) ?: return
2840

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.dmforu.admin.presentation
2+
3+
import com.dmforu.admin.message.MessageService
4+
import com.dmforu.admin.presentation.request.SendNoticeMessageRequest
5+
import com.dmforu.domain.notice.Notice
6+
import org.springframework.web.bind.annotation.PathVariable
7+
import org.springframework.web.bind.annotation.PostMapping
8+
import org.springframework.web.bind.annotation.RequestBody
9+
import org.springframework.web.bind.annotation.RestController
10+
import java.time.LocalDate
11+
12+
@RestController
13+
class PushMessageController(
14+
private val messageService: MessageService,
15+
) {
16+
@PostMapping("/api/v1/messages/notice")
17+
fun sendMessageToEvery(@RequestBody request: SendNoticeMessageRequest) {
18+
val notice = Notice.of(
19+
number = 0,
20+
type = request.type,
21+
date = LocalDate.now(),
22+
title = request.title,
23+
author = "관리자",
24+
url = request.url
25+
)
26+
27+
messageService.sendTestNoticeMessage(request.token, notice)
28+
}
29+
30+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.dmforu.admin.presentation.request
2+
3+
data class SendNoticeMessageRequest(
4+
val token: String,
5+
val title: String,
6+
val type: String,
7+
val body: String,
8+
val url: String
9+
)

0 commit comments

Comments
 (0)