Compare commits
2 Commits
967d358a52
...
ee124e258e
Author | SHA1 | Date |
---|---|---|
|
ee124e258e | |
|
0580cdd2d6 |
|
@ -7,6 +7,7 @@ import kr.co.vividnext.sodalive.member.notification.UpdateNotificationSettingReq
|
||||||
import org.springframework.security.core.annotation.AuthenticationPrincipal
|
import org.springframework.security.core.annotation.AuthenticationPrincipal
|
||||||
import org.springframework.web.bind.annotation.GetMapping
|
import org.springframework.web.bind.annotation.GetMapping
|
||||||
import org.springframework.web.bind.annotation.PostMapping
|
import org.springframework.web.bind.annotation.PostMapping
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping
|
||||||
import org.springframework.web.bind.annotation.RequestBody
|
import org.springframework.web.bind.annotation.RequestBody
|
||||||
import org.springframework.web.bind.annotation.RequestMapping
|
import org.springframework.web.bind.annotation.RequestMapping
|
||||||
import org.springframework.web.bind.annotation.RequestParam
|
import org.springframework.web.bind.annotation.RequestParam
|
||||||
|
@ -45,4 +46,20 @@ class MemberController(private val service: MemberService) {
|
||||||
|
|
||||||
ApiResponse.ok(service.updateNotificationSettings(request, member))
|
ApiResponse.ok(service.updateNotificationSettings(request, member))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PutMapping("/push-token/update")
|
||||||
|
fun updatePushToken(
|
||||||
|
@RequestBody pushTokenUpdateRequest: PushTokenUpdateRequest,
|
||||||
|
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||||
|
) {
|
||||||
|
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||||
|
|
||||||
|
ApiResponse.ok(
|
||||||
|
service.updatePushToken(
|
||||||
|
memberId = member.id!!,
|
||||||
|
pushToken = pushTokenUpdateRequest.pushToken,
|
||||||
|
container = pushTokenUpdateRequest.container
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package kr.co.vividnext.sodalive.member
|
package kr.co.vividnext.sodalive.member
|
||||||
|
|
||||||
import com.querydsl.jpa.impl.JPAQueryFactory
|
import com.querydsl.jpa.impl.JPAQueryFactory
|
||||||
|
import kr.co.vividnext.sodalive.member.QMember.member
|
||||||
import org.springframework.data.jpa.repository.JpaRepository
|
import org.springframework.data.jpa.repository.JpaRepository
|
||||||
import org.springframework.stereotype.Repository
|
import org.springframework.stereotype.Repository
|
||||||
|
|
||||||
|
@ -10,7 +11,16 @@ interface MemberRepository : JpaRepository<Member, Long>, MemberQueryRepository
|
||||||
fun findByNickname(nickname: String): Member?
|
fun findByNickname(nickname: String): Member?
|
||||||
}
|
}
|
||||||
|
|
||||||
interface MemberQueryRepository
|
interface MemberQueryRepository {
|
||||||
|
fun findByPushToken(pushToken: String): List<Member>
|
||||||
|
}
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
class MemberQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : MemberQueryRepository
|
class MemberQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : MemberQueryRepository {
|
||||||
|
override fun findByPushToken(pushToken: String): List<Member> {
|
||||||
|
return queryFactory
|
||||||
|
.selectFrom(member)
|
||||||
|
.where(member.pushToken.eq(pushToken))
|
||||||
|
.fetch()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import kr.co.vividnext.sodalive.member.login.LoginResponse
|
||||||
import kr.co.vividnext.sodalive.member.notification.MemberNotificationService
|
import kr.co.vividnext.sodalive.member.notification.MemberNotificationService
|
||||||
import kr.co.vividnext.sodalive.member.notification.UpdateNotificationSettingRequest
|
import kr.co.vividnext.sodalive.member.notification.UpdateNotificationSettingRequest
|
||||||
import kr.co.vividnext.sodalive.member.signUp.SignUpRequest
|
import kr.co.vividnext.sodalive.member.signUp.SignUpRequest
|
||||||
|
import kr.co.vividnext.sodalive.member.signUp.SignUpValidator
|
||||||
import kr.co.vividnext.sodalive.member.stipulation.Stipulation
|
import kr.co.vividnext.sodalive.member.stipulation.Stipulation
|
||||||
import kr.co.vividnext.sodalive.member.stipulation.StipulationAgree
|
import kr.co.vividnext.sodalive.member.stipulation.StipulationAgree
|
||||||
import kr.co.vividnext.sodalive.member.stipulation.StipulationAgreeRepository
|
import kr.co.vividnext.sodalive.member.stipulation.StipulationAgreeRepository
|
||||||
|
@ -106,6 +107,20 @@ class MemberService(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
fun updatePushToken(memberId: Long, pushToken: String, container: String) {
|
||||||
|
val existsHavePushTokenMemberList = repository.findByPushToken(pushToken = pushToken)
|
||||||
|
for (existsHavePushTokenMember in existsHavePushTokenMemberList) {
|
||||||
|
existsHavePushTokenMember.pushToken = null
|
||||||
|
}
|
||||||
|
|
||||||
|
val member = repository.findByIdOrNull(id = memberId)
|
||||||
|
?: throw SodaException("로그인 정보를 확인해주세요.")
|
||||||
|
|
||||||
|
member.pushToken = pushToken
|
||||||
|
member.container = container
|
||||||
|
}
|
||||||
|
|
||||||
private fun login(
|
private fun login(
|
||||||
email: String,
|
email: String,
|
||||||
password: String,
|
password: String,
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
package kr.co.vividnext.sodalive.member
|
||||||
|
|
||||||
|
data class PushTokenUpdateRequest(val pushToken: String, val container: String)
|
|
@ -1,4 +1,4 @@
|
||||||
package kr.co.vividnext.sodalive.member
|
package kr.co.vividnext.sodalive.member.signUp
|
||||||
|
|
||||||
import org.springframework.stereotype.Component
|
import org.springframework.stereotype.Component
|
||||||
|
|
Loading…
Reference in New Issue