Skip to content

Commit e3e447a

Browse files
committed
✨ feat: 알림 수정
1 parent e926dae commit e3e447a

6 files changed

Lines changed: 63 additions & 5 deletions

File tree

src/main/java/com/api/advanced_mobile/domain/alarm/entity/Alarm.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,22 @@ public class Alarm extends BaseEntity {
2727
@JoinColumn(name = "member_id")
2828
private Member member;
2929

30+
//기본 생성
3031
public static Alarm createDefault(Member member){
3132
return Alarm.builder()
3233
.member(member)
3334
.activate(true)
3435
.alarmTime(LocalTime.of(22,0))
3536
.build();
3637
}
38+
39+
//수정
40+
public void modifyActivate(Boolean activate) {
41+
this.activate = activate;
42+
}
43+
44+
public void modifyTime(LocalTime time) {
45+
this.alarmTime = time;
46+
}
47+
3748
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package com.api.advanced_mobile.domain.alarm.service;
22

33
import com.api.advanced_mobile.domain.alarm.web.dto.AlarmRes;
4+
import com.api.advanced_mobile.domain.alarm.web.dto.ModifyAlarmReq;
45

56
public interface AlarmService {
67
AlarmRes getAlarm(Long id);
8+
9+
void modifyAlarm(Long id, ModifyAlarmReq req);
710
}

src/main/java/com/api/advanced_mobile/domain/alarm/service/AlarmServiceImpl.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
import com.api.advanced_mobile.domain.alarm.exception.NotFoundAlarmException;
55
import com.api.advanced_mobile.domain.alarm.repository.AlarmRepository;
66
import com.api.advanced_mobile.domain.alarm.web.dto.AlarmRes;
7+
import com.api.advanced_mobile.domain.alarm.web.dto.ModifyAlarmReq;
78
import lombok.RequiredArgsConstructor;
89
import org.springframework.stereotype.Service;
10+
import org.springframework.transaction.annotation.Transactional;
911

1012
@Service
1113
@RequiredArgsConstructor
@@ -24,4 +26,21 @@ public AlarmRes getAlarm(Long id) {
2426
,alarm.getAlarmTime()
2527
);
2628
}
29+
30+
//알림 수정
31+
@Transactional
32+
@Override
33+
public void modifyAlarm(Long id, ModifyAlarmReq req) {
34+
Alarm alarm = alarmRepo.findByMemberId(id)
35+
.orElseThrow(NotFoundAlarmException::new);
36+
37+
if (req.getActivate() != null) {
38+
alarm.modifyActivate(req.getActivate());
39+
}
40+
41+
// time 변경 요청이 있을 때만 수정
42+
if (req.getTime() != null) {
43+
alarm.modifyTime(req.getTime());
44+
}
45+
}
2746
}

src/main/java/com/api/advanced_mobile/domain/alarm/web/controller/AlarmController.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.api.advanced_mobile.domain.alarm.service.AlarmService;
44
import com.api.advanced_mobile.domain.alarm.web.dto.AlarmRes;
5+
import com.api.advanced_mobile.domain.alarm.web.dto.ModifyAlarmReq;
56
import com.api.advanced_mobile.global.entity.BaseEntity;
67
import com.api.advanced_mobile.global.response.SuccessResponse;
78
import com.api.advanced_mobile.global.security.CustomUserDetails;
@@ -10,9 +11,7 @@
1011
import org.springframework.http.HttpStatus;
1112
import org.springframework.http.ResponseEntity;
1213
import org.springframework.security.core.annotation.AuthenticationPrincipal;
13-
import org.springframework.web.bind.annotation.GetMapping;
14-
import org.springframework.web.bind.annotation.RequestMapping;
15-
import org.springframework.web.bind.annotation.RestController;
14+
import org.springframework.web.bind.annotation.*;
1615

1716
@RestController
1817
@RequestMapping("/alarm")
@@ -24,8 +23,8 @@ public class AlarmController extends BaseEntity {
2423
//조회
2524
@GetMapping
2625
public ResponseEntity<SuccessResponse<?>> getAlarm(
27-
@AuthenticationPrincipal CustomUserDetails member){
28-
26+
@AuthenticationPrincipal CustomUserDetails member
27+
){
2928
Long id = member.getId();
3029
AlarmRes res = alarmService.getAlarm(id);
3130

@@ -34,5 +33,17 @@ public ResponseEntity<SuccessResponse<?>> getAlarm(
3433
}
3534

3635
//알림 수정
36+
@PatchMapping
37+
public ResponseEntity<SuccessResponse<?>> modifyAlarm(
38+
@AuthenticationPrincipal CustomUserDetails member,
39+
@RequestBody ModifyAlarmReq req
40+
){
41+
Long id = member.getId();
42+
alarmService.modifyAlarm(id, req);
43+
44+
return ResponseEntity.status(HttpStatus.OK)
45+
.body(SuccessResponse.ok("수정 완료"));
46+
}
47+
3748

3849
}

src/main/java/com/api/advanced_mobile/domain/alarm/web/dto/AlarmRes.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.api.advanced_mobile.domain.alarm.web.dto;
22

3+
import jakarta.validation.Valid;
34
import lombok.Builder;
45
import lombok.Getter;
56

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.api.advanced_mobile.domain.alarm.web.dto;
2+
3+
import jakarta.validation.constraints.NotNull;
4+
import lombok.Data;
5+
6+
import java.time.LocalTime;
7+
8+
@Data
9+
public class ModifyAlarmReq {
10+
private Boolean activate;
11+
private LocalTime time;
12+
13+
}

0 commit comments

Comments
 (0)