From 72587aad23fd528dad5e98a390d8d83e76835f0d Mon Sep 17 00:00:00 2001 From: Thuan ngo Date: Mon, 25 Nov 2024 22:23:20 +0700 Subject: [PATCH] write CourseController.java --- .../domain/classroom/ClassroomController.java | 2 +- .../classroom/ClassroomServiceImpl.java | 14 ++++++------ .../domain/meeting/MeetingController.java | 22 +++++++++++++++---- .../domain/meeting/MeetingService.java | 4 ++++ .../domain/meeting/MeetingServiceImpl.java | 20 +++++++++++++++++ .../ReferenceFileController.java | 14 ++++++++---- .../referencefile/ReferenceFileService.java | 2 ++ .../ReferenceFileServiceImpl.java | 5 +++++ .../reference/ReferenceController.java | 22 +++++++++++++++---- .../elearning/reference/ReferenceService.java | 5 +++++ .../reference/ReferenceServiceImpl.java | 19 ++++++++++++++++ 11 files changed, 109 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/backend/elearning/domain/classroom/ClassroomController.java b/src/main/java/com/backend/elearning/domain/classroom/ClassroomController.java index f3b6927..9d28ee7 100644 --- a/src/main/java/com/backend/elearning/domain/classroom/ClassroomController.java +++ b/src/main/java/com/backend/elearning/domain/classroom/ClassroomController.java @@ -26,7 +26,7 @@ public ResponseEntity create ( return ResponseEntity.ok().body(classroomVM); } - @PostMapping("/classrooms/{classroomId}") + @PutMapping("/classrooms/{classroomId}") public ResponseEntity update ( @RequestBody ClassroomPostVM classroomPostVM, @PathVariable("classroomId") Long classroomId diff --git a/src/main/java/com/backend/elearning/domain/classroom/ClassroomServiceImpl.java b/src/main/java/com/backend/elearning/domain/classroom/ClassroomServiceImpl.java index 608719c..ea18295 100644 --- a/src/main/java/com/backend/elearning/domain/classroom/ClassroomServiceImpl.java +++ b/src/main/java/com/backend/elearning/domain/classroom/ClassroomServiceImpl.java @@ -1,17 +1,13 @@ package com.backend.elearning.domain.classroom; -import com.backend.elearning.domain.common.Curriculum; import com.backend.elearning.domain.common.Event; import com.backend.elearning.domain.common.EventType; import com.backend.elearning.domain.course.Course; import com.backend.elearning.domain.course.CourseRepository; import com.backend.elearning.domain.meeting.Meeting; import com.backend.elearning.domain.meeting.MeetingGetVM; -import com.backend.elearning.domain.referencefile.ReferenceFile; import com.backend.elearning.domain.referencefile.ReferenceFileService; import com.backend.elearning.domain.referencefile.ReferenceFileVM; -import com.backend.elearning.domain.section.Section; -import com.backend.elearning.domain.section.SectionVM; import com.backend.elearning.exception.NotFoundException; import com.backend.elearning.reference.Reference; import com.backend.elearning.reference.ReferenceGetVM; @@ -22,6 +18,9 @@ import java.util.Comparator; import java.util.List; +import static com.backend.elearning.utils.DateTimeUtils.convertLocalDateTimeToMonthYearText; +import static com.backend.elearning.utils.DateTimeUtils.convertLocalDateTimeToString; + @Service public class ClassroomServiceImpl implements ClassroomService { private final ClassroomRepository classroomRepository; @@ -50,10 +49,11 @@ public ClassroomVM create(ClassroomPostVM classroomPostVM) { @Override public ClassroomVM update(ClassroomPostVM classroomPostVM, Long classroomId) { - Classroom classroom = classroomRepository.findById(classroomId).orElseThrow(); classroom.setName(classroom.getName()); classroom.setDescription(classroomPostVM.description()); + classroom.setImage(classroomPostVM.image()); + Classroom updatedClassroom = classroomRepository.save(classroom); return ClassroomVM.fromModel(updatedClassroom); @@ -85,8 +85,8 @@ private List getByClassroom(Classroom classroom) { meetingGetVM.setId(meeting.getId()); meetingGetVM.setCode(meeting.getCode()); meetingGetVM.setType(EventType.meeting); - meetingGetVM.setStartTime(meeting.getStartTime().toString()); - meetingGetVM.setEndTime(meeting.getEndTime().toString()); + meetingGetVM.setStartTime(convertLocalDateTimeToString(meeting.getStartTime())); + meetingGetVM.setEndTime(convertLocalDateTimeToString(meeting.getEndTime())); meetingGetVM.setCreatedAt(meeting.getCreatedAt()); events.add(meetingGetVM); } diff --git a/src/main/java/com/backend/elearning/domain/meeting/MeetingController.java b/src/main/java/com/backend/elearning/domain/meeting/MeetingController.java index 40eee21..656696b 100644 --- a/src/main/java/com/backend/elearning/domain/meeting/MeetingController.java +++ b/src/main/java/com/backend/elearning/domain/meeting/MeetingController.java @@ -4,10 +4,7 @@ import com.backend.elearning.domain.classroom.ClassroomPostVM; import com.backend.elearning.domain.classroom.ClassroomVM; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api/v1") @@ -26,4 +23,21 @@ public ResponseEntity create ( MeetingVM meetingVM = meetingService.create(meetingPostVM); return ResponseEntity.ok().body(meetingVM); } + + @PutMapping("/meetings/{meetingId}") + public ResponseEntity update ( + @RequestBody MeetingPostVM meetingPostVM, + @PathVariable("meetingId") Long meetingId + ) { + MeetingVM meetingVM = meetingService.update(meetingPostVM, meetingId); + return ResponseEntity.ok().body(meetingVM); + } + + @DeleteMapping("/meetings/{meetingId}") + public ResponseEntity delete ( + @PathVariable("meetingId") Long meetingId + ) { + meetingService.delete( meetingId); + return ResponseEntity.ok().body("deleted"); + } } diff --git a/src/main/java/com/backend/elearning/domain/meeting/MeetingService.java b/src/main/java/com/backend/elearning/domain/meeting/MeetingService.java index 6893679..6d7dee4 100644 --- a/src/main/java/com/backend/elearning/domain/meeting/MeetingService.java +++ b/src/main/java/com/backend/elearning/domain/meeting/MeetingService.java @@ -4,4 +4,8 @@ public interface MeetingService { MeetingVM create(MeetingPostVM meetingPostVM); + MeetingVM update(MeetingPostVM meetingPostVM, Long meetingId); + + void delete(Long meetingId); + } diff --git a/src/main/java/com/backend/elearning/domain/meeting/MeetingServiceImpl.java b/src/main/java/com/backend/elearning/domain/meeting/MeetingServiceImpl.java index f454da8..8178c22 100644 --- a/src/main/java/com/backend/elearning/domain/meeting/MeetingServiceImpl.java +++ b/src/main/java/com/backend/elearning/domain/meeting/MeetingServiceImpl.java @@ -30,7 +30,27 @@ public MeetingVM create(MeetingPostVM meetingPostVM) { .endTime(endTime) .classroom(classroom) .build(); + meeting.setCreatedAt(LocalDateTime.now()); + meeting.setUpdatedAt(LocalDateTime.now()); Meeting savedMeeting = meetingRepository.saveAndFlush(meeting); return MeetingVM.fromModel(savedMeeting); } + + @Override + public MeetingVM update(MeetingPostVM meetingPostVM, Long meetingId) { + Meeting meeting = meetingRepository.findById(meetingId).orElseThrow(); + LocalDateTime startTime = DateTimeUtils.convertStringToLocalDateTime(meetingPostVM.startTime(), DateTimeUtils.NORMAL_TYPE); + LocalDateTime endTime = DateTimeUtils.convertStringToLocalDateTime(meetingPostVM.endTime(), DateTimeUtils.NORMAL_TYPE); + meeting.setCode(meetingPostVM.code()); + meeting.setStartTime(startTime); + meeting.setEndTime(endTime); + meeting.setUpdatedAt(LocalDateTime.now()); + Meeting updatedMeeting = meetingRepository.saveAndFlush(meeting); + return MeetingVM.fromModel(updatedMeeting); + } + + @Override + public void delete(Long meetingId) { + meetingRepository.deleteById(meetingId); + } } diff --git a/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileController.java b/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileController.java index 2912e22..311da8b 100644 --- a/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileController.java +++ b/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileController.java @@ -3,10 +3,7 @@ import com.backend.elearning.domain.meeting.MeetingPostVM; import com.backend.elearning.domain.meeting.MeetingVM; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api/v1") @@ -25,4 +22,13 @@ public ResponseEntity create ( ReferenceFileVM referenceFileVM = referenceFileService.create(referenceFilePostVM); return ResponseEntity.ok().body(referenceFileVM); } + + + @DeleteMapping("/referencefiles/{id}") + public ResponseEntity delete ( + @PathVariable("id") Long referenceFileId + ) { + referenceFileService.delete(referenceFileId); + return ResponseEntity.ok().body("deleted"); + } } diff --git a/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileService.java b/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileService.java index d9114e1..696c96b 100644 --- a/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileService.java +++ b/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileService.java @@ -6,4 +6,6 @@ public interface ReferenceFileService { ReferenceFileVM create(ReferenceFilePostVM referenceFilePostVM); List getByReferenceId(Long referenceId); + + void delete(Long referenceFileId); } diff --git a/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileServiceImpl.java b/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileServiceImpl.java index 9ac5a61..e789eee 100644 --- a/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileServiceImpl.java +++ b/src/main/java/com/backend/elearning/domain/referencefile/ReferenceFileServiceImpl.java @@ -36,4 +36,9 @@ public List getByReferenceId(Long referenceId) { List referenceFiles = referenceFileRepo.findByReferenceId(referenceId); return referenceFiles.stream().map(referenceFile -> ReferenceFileVM.fromModel(referenceFile)).toList(); } + + @Override + public void delete(Long referenceFileId) { + referenceFileRepo.deleteById(referenceFileId); + } } diff --git a/src/main/java/com/backend/elearning/reference/ReferenceController.java b/src/main/java/com/backend/elearning/reference/ReferenceController.java index c56809c..f9f732b 100644 --- a/src/main/java/com/backend/elearning/reference/ReferenceController.java +++ b/src/main/java/com/backend/elearning/reference/ReferenceController.java @@ -4,10 +4,7 @@ import com.backend.elearning.domain.meeting.MeetingService; import com.backend.elearning.domain.meeting.MeetingVM; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api/v1") @@ -26,4 +23,21 @@ public ResponseEntity create ( ReferenceVM referenceVM = referenceService.create(referencePostVM); return ResponseEntity.ok().body(referenceVM); } + + @PutMapping("/references/{referenceId}") + public ResponseEntity update ( + @RequestBody ReferencePostVM referencePostVM, + Long referenceId + ) { + ReferenceVM referenceVM = referenceService.update(referencePostVM, referenceId); + return ResponseEntity.ok().body(referenceVM); + } + + @DeleteMapping("/references/{referenceId}") + public ResponseEntity delete ( + @PathVariable("referenceId") Long referenceId + ) { + referenceService.delete(referenceId); + return ResponseEntity.ok().body("deleted "); + } } diff --git a/src/main/java/com/backend/elearning/reference/ReferenceService.java b/src/main/java/com/backend/elearning/reference/ReferenceService.java index f93f66e..6d785df 100644 --- a/src/main/java/com/backend/elearning/reference/ReferenceService.java +++ b/src/main/java/com/backend/elearning/reference/ReferenceService.java @@ -3,4 +3,9 @@ public interface ReferenceService { ReferenceVM create(ReferencePostVM referencePostVM); + + ReferenceVM update(ReferencePostVM referencePostVM, Long referenceId); + + void delete(Long referenceId); + } diff --git a/src/main/java/com/backend/elearning/reference/ReferenceServiceImpl.java b/src/main/java/com/backend/elearning/reference/ReferenceServiceImpl.java index 25f9981..6859efb 100644 --- a/src/main/java/com/backend/elearning/reference/ReferenceServiceImpl.java +++ b/src/main/java/com/backend/elearning/reference/ReferenceServiceImpl.java @@ -4,6 +4,8 @@ import com.backend.elearning.domain.classroom.ClassroomRepository; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; + @Service public class ReferenceServiceImpl implements ReferenceService{ @@ -23,7 +25,24 @@ public ReferenceVM create(ReferencePostVM referencePostVM) { .description(referencePostVM.description()) .classroom(classroom) .build(); + + reference.setCreatedAt(LocalDateTime.now()); + reference.setUpdatedAt(LocalDateTime.now()); + Reference savedReference = referenceRepository.saveAndFlush(reference); + return ReferenceVM.fromModel(savedReference); + } + + @Override + public ReferenceVM update(ReferencePostVM referencePostVM, Long referenceId) { + Reference reference = referenceRepository.findById(referenceId).orElseThrow(); + reference.setDescription(referencePostVM.description()); + reference.setUpdatedAt(LocalDateTime.now()); Reference savedReference = referenceRepository.saveAndFlush(reference); return ReferenceVM.fromModel(savedReference); } + + @Override + public void delete(Long referenceId) { + referenceRepository.deleteById(referenceId); + } }