Skip to content

Commit

Permalink
[Feature/523] 로컬 알림 설정 여부 등록 api (#529)
Browse files Browse the repository at this point in the history
* feat: 로컬 알림 설정 여부 등록 api

* feat: 앱버전, 디바이스 이름도 받도록 수정
  • Loading branch information
injoon2019 authored Oct 23, 2024
1 parent 07540df commit fdf7ddf
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@ package com.nexters.bottles.api.user.controller
import com.nexters.bottles.api.global.interceptor.AuthRequired
import com.nexters.bottles.api.global.resolver.AuthUserId
import com.nexters.bottles.api.user.facade.UserFacade
import com.nexters.bottles.api.user.facade.dto.AlimyOnOffRequest
import com.nexters.bottles.api.user.facade.dto.AlimyResponse
import com.nexters.bottles.api.user.facade.dto.BlockContactListRequest
import com.nexters.bottles.api.user.facade.dto.ReportUserRequest
import com.nexters.bottles.api.user.facade.dto.*
import io.swagger.annotations.ApiOperation
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PostMapping
Expand Down Expand Up @@ -47,4 +44,11 @@ class UserController(
fun turnOnOffAlimy(@AuthUserId userId: Long): List<AlimyResponse> {
return userFacade.getAlimy(userId)
}

@ApiOperation("폰 알림 허용 유무/ 디바이스명 / 앱버전 등록")
@PostMapping("/native-setting")
@AuthRequired
fun registerNativeSetting(@AuthUserId userId: Long, @RequestBody nativeSettingRegisterRequest: NativeSettingRegisterRequest) {
return userFacade.registerNativeSetting(userId, nativeSettingRegisterRequest)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,22 @@ package com.nexters.bottles.api.user.facade

import com.nexters.bottles.api.user.facade.dto.AlimyOnOffRequest
import com.nexters.bottles.api.user.facade.dto.AlimyResponse
import com.nexters.bottles.api.user.facade.dto.NativeSettingRegisterRequest
import com.nexters.bottles.api.user.facade.dto.ReportUserRequest
import com.nexters.bottles.app.user.domain.BlockContact
import com.nexters.bottles.app.user.domain.UserAlimy
import com.nexters.bottles.app.user.domain.UserReport
import com.nexters.bottles.app.user.service.BlockContactListService
import com.nexters.bottles.app.user.service.UserAlimyService
import com.nexters.bottles.app.user.service.UserReportService
import com.nexters.bottles.app.user.service.UserService
import org.springframework.stereotype.Component

@Component
class UserFacade(
private val userReportService: UserReportService,
private val blockContactListService: BlockContactListService,
private val alimyService: UserAlimyService,
private val userService: UserService,
) {

fun reportUser(userId: Long, reportUserRequest: ReportUserRequest) {
Expand Down Expand Up @@ -46,4 +48,13 @@ class UserFacade(
return alimyService.findAlimies(userId)
.map { AlimyResponse(it.alimyType, it.enabled) }
}

fun registerNativeSetting(userId: Long, nativeAlimyRequest: NativeSettingRegisterRequest) {
userService.changeNativeSetting(
userId = userId,
alimyTurnedOn = nativeAlimyRequest.alimyTurnedOn,
deviceName = nativeAlimyRequest.deviceName,
appVersion = nativeAlimyRequest.appVersion
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.nexters.bottles.api.user.facade.dto

data class NativeSettingRegisterRequest(
val alimyTurnedOn: Boolean = false,
val deviceName: String? = null,
val appVersion: String? = null,
) {
}
3 changes: 3 additions & 0 deletions api/src/main/resources/sql/ddl/table_query.sql
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ CREATE TABLE user
last_activated_at DATETIME DEFAULT CURRENT_TIMESTAMP comment '유저의 최근 활성 시간으로, 보틀 목록 조회하기 api 요청시 갱신',
is_match_activated BOOLEAN DEFAULT TRUE NOT NULL comment '매칭 활성화 여부',
last_random_matched_at DATETIME DEFAULT CURRENT_TIMESTAMP comment '유저의 최근 랜덤 매칭 시간으로, 랜덤 매칭시 갱신',
is_notification_enabled tinyint(1) default 0 not null comment '핸드폰 알림 허용 여부',
device_name varchar(255) null,
app_version varchar(255) null,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL
) AUTO_INCREMENT = 10;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ class User(
var isMatchActivated: Boolean = true,

var lastRandomMatchedAt: LocalDateTime = LocalDateTime.now(),

var isNotificationEnabled: Boolean = false,

var deviceName: String? = null,

var appVersion: String? = null,
) : BaseEntity() {

fun getKoreanAge(): Int {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,4 +171,13 @@ class UserService(
fun findAllByPhoneNumber(phoneNumber: String): List<User> {
return userRepository.findAllByPhoneNumberOrderById(phoneNumber)
}

@Transactional
fun changeNativeSetting(userId: Long, alimyTurnedOn: Boolean, deviceName: String?, appVersion: String?) {
userRepository.findByIdOrNull(userId)?.let {
it.isNotificationEnabled = alimyTurnedOn
it.appVersion = appVersion
it.deviceName = deviceName
}
}
}

0 comments on commit fdf7ddf

Please sign in to comment.