From 9781efeb6cb0513011ecbe197ada1eafd7c63ad7 Mon Sep 17 00:00:00 2001 From: 5803024019 Date: Sun, 17 May 2026 08:34:56 +0700 Subject: [PATCH] fix: resolve compilation errors, mock signatures, and missing DTO constructors --- .../com/walkguide/dto/response/AiConfigResponse.java | 4 ++++ .../com/walkguide/dto/response/DashboardResponse.java | 4 ++++ .../com/walkguide/dto/response/GeofenceResponse.java | 4 ++++ .../dto/response/HardwareShortcutResponse.java | 4 ++++ .../com/walkguide/dto/response/LocationResponse.java | 4 ++++ .../walkguide/dto/response/NotificationResponse.java | 4 ++++ .../walkguide/dto/response/ObstacleLogResponse.java | 4 ++++ .../walkguide/dto/response/UserSettingsResponse.java | 4 ++++ .../walkguide/dto/response/VoiceCommandResponse.java | 4 ++++ .../repository/GuardianNotificationRepository.java | 1 + .../repository/HardwareShortcutRepository.java | 1 + .../repository/VoiceCommandConfigRepository.java | 1 + .../com/walkguide/service/NotificationService.java | 10 ++++++++++ .../com/walkguide/Controller/CallControllerTest.java | 3 +-- .../com/walkguide/Controller/UserControllerTest.java | 4 ++-- .../service/GuardianDashboardServiceTest.java | 10 +++++----- .../com/walkguide/service/NotificationServiceTest.java | 2 +- 17 files changed, 58 insertions(+), 10 deletions(-) diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/AiConfigResponse.java b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/AiConfigResponse.java index c6b96e1..6eaff34 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/AiConfigResponse.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/AiConfigResponse.java @@ -1,8 +1,12 @@ package com.walkguide.dto.response; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; @Data +@NoArgsConstructor +@AllArgsConstructor @Builder public class AiConfigResponse { private Long id; diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/DashboardResponse.java b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/DashboardResponse.java index 900af51..2e40183 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/DashboardResponse.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/DashboardResponse.java @@ -1,9 +1,13 @@ package com.walkguide.dto.response; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; import java.util.List; @Data +@NoArgsConstructor +@AllArgsConstructor @Builder public class DashboardResponse { // Info user yang dipair diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/GeofenceResponse.java b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/GeofenceResponse.java index fb8f57d..bf1d732 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/GeofenceResponse.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/GeofenceResponse.java @@ -1,8 +1,12 @@ package com.walkguide.dto.response; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; @Data +@NoArgsConstructor +@AllArgsConstructor @Builder public class GeofenceResponse { private Long id; diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/HardwareShortcutResponse.java b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/HardwareShortcutResponse.java index 9a54b30..e6e875b 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/HardwareShortcutResponse.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/HardwareShortcutResponse.java @@ -1,8 +1,12 @@ package com.walkguide.dto.response; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; @Data +@NoArgsConstructor +@AllArgsConstructor @Builder public class HardwareShortcutResponse { private Long id; diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/LocationResponse.java b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/LocationResponse.java index 7498a6b..8c5144e 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/LocationResponse.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/LocationResponse.java @@ -1,9 +1,13 @@ package com.walkguide.dto.response; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; import java.time.LocalDateTime; @Data +@NoArgsConstructor +@AllArgsConstructor @Builder public class LocationResponse { private Long id; diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/NotificationResponse.java b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/NotificationResponse.java index 71caef1..210ca21 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/NotificationResponse.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/NotificationResponse.java @@ -1,9 +1,13 @@ package com.walkguide.dto.response; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; import java.time.LocalDateTime; @Data +@NoArgsConstructor +@AllArgsConstructor @Builder public class NotificationResponse { private Long id; diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/ObstacleLogResponse.java b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/ObstacleLogResponse.java index 7d708d4..b0ecd81 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/ObstacleLogResponse.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/ObstacleLogResponse.java @@ -1,9 +1,13 @@ package com.walkguide.dto.response; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; import java.time.LocalDateTime; @Data +@NoArgsConstructor +@AllArgsConstructor @Builder public class ObstacleLogResponse { private Long id; diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/UserSettingsResponse.java b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/UserSettingsResponse.java index 66ec695..8b0e320 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/UserSettingsResponse.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/UserSettingsResponse.java @@ -1,8 +1,12 @@ package com.walkguide.dto.response; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; @Data +@NoArgsConstructor +@AllArgsConstructor @Builder public class UserSettingsResponse { private Long id; diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/VoiceCommandResponse.java b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/VoiceCommandResponse.java index 59f586c..e8d3498 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/VoiceCommandResponse.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/dto/response/VoiceCommandResponse.java @@ -1,8 +1,12 @@ package com.walkguide.dto.response; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; @Data +@NoArgsConstructor +@AllArgsConstructor @Builder public class VoiceCommandResponse { private Long id; diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/repository/GuardianNotificationRepository.java b/walkguide-backend/demo/src/main/java/com/walkguide/repository/GuardianNotificationRepository.java index 5acdb49..8bf9e42 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/repository/GuardianNotificationRepository.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/repository/GuardianNotificationRepository.java @@ -10,4 +10,5 @@ public interface GuardianNotificationRepository extends JpaRepository findByUserIdOrderByCreatedAtDesc(Long userId, Pageable pageable); long countByUserIdAndIsReadFalse(Long userId); List findByUserIdAndIsReadFalseOrderByCreatedAtAsc(Long userId); + java.util.Optional findByIdAndUserId(Long id, Long userId); } diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/repository/HardwareShortcutRepository.java b/walkguide-backend/demo/src/main/java/com/walkguide/repository/HardwareShortcutRepository.java index 3313caf..c4881ed 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/repository/HardwareShortcutRepository.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/repository/HardwareShortcutRepository.java @@ -6,5 +6,6 @@ import java.util.List; @Repository public interface HardwareShortcutRepository extends JpaRepository { List findByUserId(Long userId); + boolean existsByUserId(Long userId); void deleteByUserId(Long userId); } diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/repository/VoiceCommandConfigRepository.java b/walkguide-backend/demo/src/main/java/com/walkguide/repository/VoiceCommandConfigRepository.java index 907150c..e2ec5d7 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/repository/VoiceCommandConfigRepository.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/repository/VoiceCommandConfigRepository.java @@ -9,5 +9,6 @@ import java.util.Optional; public interface VoiceCommandConfigRepository extends JpaRepository { List findByUserId(Long userId); Optional findByUserIdAndCommandKey(Long userId, VoiceCommandKey commandKey); + boolean existsByUserId(Long userId); void deleteByUserId(Long userId); } diff --git a/walkguide-backend/demo/src/main/java/com/walkguide/service/NotificationService.java b/walkguide-backend/demo/src/main/java/com/walkguide/service/NotificationService.java index 45bb926..22169c6 100644 --- a/walkguide-backend/demo/src/main/java/com/walkguide/service/NotificationService.java +++ b/walkguide-backend/demo/src/main/java/com/walkguide/service/NotificationService.java @@ -90,6 +90,16 @@ public class NotificationService { notifRepository.saveAll(unread); } + @Transactional + public void markAsRead(Long userId, Long notifId) { + GuardianNotification notif = notifRepository.findByIdAndUserId(notifId, userId) + .orElseThrow(() -> new com.walkguide.exception.ResourceNotFoundException( + "Notifikasi tidak ditemukan")); + notif.setIsRead(true); + notif.setReadAt(LocalDateTime.now()); + notifRepository.save(notif); + } + @Transactional public void markOneRead(Long notifId) { notifRepository.findById(notifId).ifPresent(n -> { diff --git a/walkguide-backend/demo/src/test/java/com/walkguide/Controller/CallControllerTest.java b/walkguide-backend/demo/src/test/java/com/walkguide/Controller/CallControllerTest.java index aac6c20..f245d2e 100644 --- a/walkguide-backend/demo/src/test/java/com/walkguide/Controller/CallControllerTest.java +++ b/walkguide-backend/demo/src/test/java/com/walkguide/Controller/CallControllerTest.java @@ -84,8 +84,7 @@ class CallControllerTest { AgoraTokenResponse tokenResp = AgoraTokenResponse.builder() .token("agora-rtc-token-xyz") .channelName("call_1_2_1234567890") - .callerUid(1001) - .receiverUid(1002) + .uid(1001) .build(); when(agoraTokenService.generateToken(1L, 2L)).thenReturn(tokenResp); diff --git a/walkguide-backend/demo/src/test/java/com/walkguide/Controller/UserControllerTest.java b/walkguide-backend/demo/src/test/java/com/walkguide/Controller/UserControllerTest.java index e969880..bcf20a9 100644 --- a/walkguide-backend/demo/src/test/java/com/walkguide/Controller/UserControllerTest.java +++ b/walkguide-backend/demo/src/test/java/com/walkguide/Controller/UserControllerTest.java @@ -213,8 +213,8 @@ class UserControllerTest { sh.when(SecurityHelper::getCurrentUserId).thenReturn(1L); LocationUpdateRequest req = new LocationUpdateRequest(); - req.setLatitude(-7.2575); - req.setLongitude(112.7521); + req.setLat(-7.2575); + req.setLng(112.7521); LocationResponse resp = new LocationResponse(); when(locationService.updateLocation(eq(1L), any())).thenReturn(resp); diff --git a/walkguide-backend/demo/src/test/java/com/walkguide/service/GuardianDashboardServiceTest.java b/walkguide-backend/demo/src/test/java/com/walkguide/service/GuardianDashboardServiceTest.java index 53deab4..ff4c9ed 100644 --- a/walkguide-backend/demo/src/test/java/com/walkguide/service/GuardianDashboardServiceTest.java +++ b/walkguide-backend/demo/src/test/java/com/walkguide/service/GuardianDashboardServiceTest.java @@ -87,7 +87,7 @@ class GuardianDashboardServiceTest { when(activityLogService.getLogs(eq(5L), any(PageRequest.class))) .thenReturn(new PageImpl<>(List.of())); when(sosEventRepository.findByUserIdOrderByCreatedAtDesc(eq(5L), any(PageRequest.class))) - .thenReturn(List.of()); + .thenReturn(new PageImpl<>(List.of())); when(notifRepository.countByUserIdAndIsReadFalse(5L)).thenReturn(0L); DashboardResponse result = guardianDashboardService.getDashboard(10L); @@ -114,7 +114,7 @@ class GuardianDashboardServiceTest { when(activityLogService.getLogs(eq(5L), any(PageRequest.class))) .thenReturn(new PageImpl<>(List.of())); when(sosEventRepository.findByUserIdOrderByCreatedAtDesc(eq(5L), any(PageRequest.class))) - .thenReturn(List.of(triggered, acknowledged, resolved)); + .thenReturn(new PageImpl<>(List.of(triggered, acknowledged, resolved))); when(notifRepository.countByUserIdAndIsReadFalse(5L)).thenReturn(0L); DashboardResponse result = guardianDashboardService.getDashboard(10L); @@ -132,7 +132,7 @@ class GuardianDashboardServiceTest { when(activityLogService.getLogs(eq(5L), any(PageRequest.class))) .thenReturn(new PageImpl<>(List.of())); when(sosEventRepository.findByUserIdOrderByCreatedAtDesc(eq(5L), any(PageRequest.class))) - .thenReturn(List.of()); + .thenReturn(new PageImpl<>(List.of())); when(notifRepository.countByUserIdAndIsReadFalse(5L)).thenReturn(7L); DashboardResponse result = guardianDashboardService.getDashboard(10L); @@ -152,7 +152,7 @@ class GuardianDashboardServiceTest { when(activityLogService.getLogs(eq(5L), eq(PageRequest.of(0, 5)))) .thenReturn(new PageImpl<>(List.of(log1, log2))); when(sosEventRepository.findByUserIdOrderByCreatedAtDesc(eq(5L), any(PageRequest.class))) - .thenReturn(List.of()); + .thenReturn(new PageImpl<>(List.of())); when(notifRepository.countByUserIdAndIsReadFalse(5L)).thenReturn(0L); DashboardResponse result = guardianDashboardService.getDashboard(10L); @@ -174,7 +174,7 @@ class GuardianDashboardServiceTest { when(activityLogService.getLogs(eq(5L), any(PageRequest.class))) .thenReturn(new PageImpl<>(List.of())); when(sosEventRepository.findByUserIdOrderByCreatedAtDesc(eq(5L), any(PageRequest.class))) - .thenReturn(List.of(ack, res)); + .thenReturn(new PageImpl<>(List.of(ack, res))); when(notifRepository.countByUserIdAndIsReadFalse(5L)).thenReturn(0L); DashboardResponse result = guardianDashboardService.getDashboard(10L); diff --git a/walkguide-backend/demo/src/test/java/com/walkguide/service/NotificationServiceTest.java b/walkguide-backend/demo/src/test/java/com/walkguide/service/NotificationServiceTest.java index 629d560..fd51688 100644 --- a/walkguide-backend/demo/src/test/java/com/walkguide/service/NotificationServiceTest.java +++ b/walkguide-backend/demo/src/test/java/com/walkguide/service/NotificationServiceTest.java @@ -140,7 +140,7 @@ class NotificationServiceTest { notificationService.markAsRead(2L, 100L); - assertThat(notif.isRead()).isTrue(); + assertThat(notif.getIsRead()).isTrue(); verify(notifRepository).save(notif); }