diff --git a/src/main/java/com/quemistry/user_ms/model/StudentInvitationDto.java b/src/main/java/com/quemistry/user_ms/model/StudentInvitationDto.java index 10456fe..4fc8cc2 100644 --- a/src/main/java/com/quemistry/user_ms/model/StudentInvitationDto.java +++ b/src/main/java/com/quemistry/user_ms/model/StudentInvitationDto.java @@ -1,10 +1,11 @@ package com.quemistry.user_ms.model; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; public record StudentInvitationDto( @NotBlank String studentEmail, @NotBlank String studentFullName, - @NotBlank String classCode) { + @NotNull Long classId) { } diff --git a/src/main/java/com/quemistry/user_ms/service/impl/StudentServiceImpl.java b/src/main/java/com/quemistry/user_ms/service/impl/StudentServiceImpl.java index 42f5c79..8a8538d 100644 --- a/src/main/java/com/quemistry/user_ms/service/impl/StudentServiceImpl.java +++ b/src/main/java/com/quemistry/user_ms/service/impl/StudentServiceImpl.java @@ -143,10 +143,10 @@ public boolean sendInvitation(StudentInvitationDto input, String tutorAccountId) throw new ResponseStatusException(HttpStatus.NOT_FOUND, message); // return false; } - Optional classOptional = classRepository.findByCode(input.classCode()); + Optional classOptional = classRepository.findById(input.classId()); if (classOptional.isEmpty()) { - message = "class code=%s not found".formatted(input.classCode()); + message = "class id=%s not found".formatted(input.classId()); log.error(message); throw new ResponseStatusException(HttpStatus.NOT_FOUND, message); // return false; diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index c0b8b2b..e495ddc 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -3,4 +3,4 @@ spring: activate: on-profile: dev -FLYWAY_LOCATION: classpath:db/migration/dev \ No newline at end of file +FLYWAY_LOCATION: classpath:db/migration, classpath:db/migration/dev \ No newline at end of file diff --git a/src/main/resources/db/migration/V20240926212444__update_class.sql b/src/main/resources/db/migration/V20240926212444__update_class.sql new file mode 100644 index 0000000..fe583ef --- /dev/null +++ b/src/main/resources/db/migration/V20240926212444__update_class.sql @@ -0,0 +1,2 @@ +ALTER TABLE qms_user.class + RENAME COLUMN class_end_ts TO end_date; \ No newline at end of file diff --git a/src/main/resources/db/migration/dev/V20240926205749__insert_test_data.sql b/src/main/resources/db/migration/dev/V20240926205749__insert_test_data.sql index af4cf40..6740700 100644 --- a/src/main/resources/db/migration/dev/V20240926205749__insert_test_data.sql +++ b/src/main/resources/db/migration/dev/V20240926205749__insert_test_data.sql @@ -38,7 +38,7 @@ VALUES(8888, 8888, 'J1', now(), 'mock', now(), 'mock'); -- CLASS INSERT INTO qms_user."class" (id, code, description, subject, education_level, created_on, created_by, modified_on, modified_by, status, start_date, end_date) -VALUES(7777, 'classCode', 'classDescription', 'Chemistry', 'J1', now(), 'mock', now(), 'mock', 'active', now(), now()); +VALUES(7777, 'classId', 'classDescription', 'Chemistry', 'J1', now(), 'mock', now(), 'mock', 'active', now(), now()); INSERT INTO qms_user.student_class (student_id, class_id, status, created_on, created_by, modified_on, modified_by) diff --git a/src/test/java/com/quemistry/user_ms/controller/StudentControllerTest.java b/src/test/java/com/quemistry/user_ms/controller/StudentControllerTest.java index d1da86e..9e439b8 100644 --- a/src/test/java/com/quemistry/user_ms/controller/StudentControllerTest.java +++ b/src/test/java/com/quemistry/user_ms/controller/StudentControllerTest.java @@ -295,7 +295,7 @@ void givenStudents_whenSendInvitationToStudent_thenStatus200() throws Exception { "studentEmail": "test@gmail.com", "studentFullName": "test", - "classCode": "test" + "classId": "1" }""")) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) diff --git a/src/test/java/com/quemistry/user_ms/service/ClassServiceImplTest.java b/src/test/java/com/quemistry/user_ms/service/ClassServiceImplTest.java index 86b6a50..d048128 100644 --- a/src/test/java/com/quemistry/user_ms/service/ClassServiceImplTest.java +++ b/src/test/java/com/quemistry/user_ms/service/ClassServiceImplTest.java @@ -72,7 +72,7 @@ void testSaveClassSuccess() { // Given SaveClassRequest request = new SaveClassRequest(); request.setUserId("testUserId"); - request.setCode("classCode"); + request.setCode("classId"); request.setDescription("classDescription"); request.setEducationLevel("level"); request.setSubject("subject"); diff --git a/src/test/java/com/quemistry/user_ms/service/StudentServiceImplTest.java b/src/test/java/com/quemistry/user_ms/service/StudentServiceImplTest.java index f6b8b0e..fa1ac96 100644 --- a/src/test/java/com/quemistry/user_ms/service/StudentServiceImplTest.java +++ b/src/test/java/com/quemistry/user_ms/service/StudentServiceImplTest.java @@ -153,7 +153,7 @@ void givenStudent_whenSendInvitation_thenReturnSuccess() throws Exception { var inputStudentProfile = new StudentInvitationDto( "first@first.com", "full name", - "c001"); + 1L); var userEntity = new User( @@ -167,7 +167,7 @@ void givenStudent_whenSendInvitation_thenReturnSuccess() throws Exception { var tutorEntity = new Tutor(2L, "P1", "centre", userEntity, Collections.emptyList()); when(tutorRepository.findTutorByUserEntityAccountId(anyString())).thenReturn(Optional.of(tutorEntity)); - when(classRepository.findByCode(any())).thenReturn(Optional.of(clazz)); + when(classRepository.findById(any())).thenReturn(Optional.of(clazz)); when(notificationService.sendEmailNotification(anyString(), anyString(), any())).thenReturn(true); when(cryptoService.encrypt(anyString())).thenReturn("test"); @@ -193,19 +193,19 @@ void testSendInvitation_TutorNotFound() { void testSendInvitation_ClassNotFound() { // Given String tutorAccountId = "tutor123"; - String classCode = "class456"; - StudentInvitationDto input = new StudentInvitationDto("John Doe", "student@example.com", classCode); + Long classId = 1L; + StudentInvitationDto input = new StudentInvitationDto("John Doe", "student@example.com", classId); Tutor tutor = new Tutor(); when(tutorRepository.findTutorByUserEntityAccountId(tutorAccountId)).thenReturn(Optional.of(tutor)); - when(classRepository.findByCode(classCode)).thenReturn(Optional.empty()); + when(classRepository.findById(classId)).thenReturn(Optional.empty()); // Act & Assert ResponseStatusException exception = assertThrows(ResponseStatusException.class, () -> { studentService.sendInvitation(input, tutorAccountId); }); - assertEquals("404 NOT_FOUND \"class code=class456 not found\"", exception.getMessage()); + assertEquals("404 NOT_FOUND \"class id=1 not found\"", exception.getMessage()); verify(classInvitationRepository, never()).save(any(ClassInvitation.class)); }