From 6fc372c898c0b08b4ec2291777ecc589f96c1eb1 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 16 May 2025 21:24:12 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9C=A0=EC=A0=80=20=ED=96=89=EB=8F=99?= =?UTF-8?q?=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EA=B8=B0=EB=A1=9D=20Controlle?= =?UTF-8?q?r=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../useraction/UserActionController.kt | 36 +++++++++++++++++++ .../sodalive/useraction/UserActionRequest.kt | 3 ++ 2 files changed, 39 insertions(+) create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionController.kt create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionRequest.kt diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionController.kt new file mode 100644 index 0000000..91ae58c --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionController.kt @@ -0,0 +1,36 @@ +package kr.co.vividnext.sodalive.useraction + +import kr.co.vividnext.sodalive.common.ApiResponse +import kr.co.vividnext.sodalive.common.SodaException +import kr.co.vividnext.sodalive.member.Member +import kr.co.vividnext.sodalive.member.MemberService +import org.springframework.security.core.annotation.AuthenticationPrincipal +import org.springframework.web.bind.annotation.PostMapping +import org.springframework.web.bind.annotation.RequestBody +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RestController + +@RestController +@RequestMapping("/user-action") +class UserActionController( + private val service: UserActionService, + private val memberService: MemberService +) { + @PostMapping + fun recordAction( + @RequestBody request: UserActionRequest, + @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? + ) = run { + if (member == null) throw SodaException("") + + val memberId = member.id!! + val pushTokenList = memberService.getPushTokenList(recipient = memberId) + service.recordAction( + memberId = memberId, + actionType = request.actionType, + pushTokenList = pushTokenList + ) + + ApiResponse.ok(Unit, "") + } +} diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionRequest.kt new file mode 100644 index 0000000..4d92eb7 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionRequest.kt @@ -0,0 +1,3 @@ +package kr.co.vividnext.sodalive.useraction + +data class UserActionRequest(val actionType: ActionType)