refactor: Lecture 일부 코드 리팩토링

This commit is contained in:
kgc9007 2024-07-22 17:24:51 +09:00
parent 10828ff11e
commit 588758c581
3 changed files with 58 additions and 29 deletions

View File

@ -30,8 +30,15 @@ public class LectureController {
public ResponseEntity<?> createLecture(@RequestHeader("Authorization") String accessToken, @RequestBody LectureCreateRequest lectureCreateRequest) {
Long userId = Long.parseLong(jwtUtil.getUserId(accessToken));
Lecture lecture = lectureService.findLectureByTitle(lectureCreateRequest.getTitle());
if (lecture != null) {
String msg = new String("Duplicated Lecture");
return new ResponseEntity<>(msg, HttpStatus.CONFLICT);
}
lectureService.createLecture(userId, lectureCreateRequest);
return new ResponseEntity<>(HttpStatus.CREATED);
String msg = new String("Lecture registered successfully");
return new ResponseEntity<>(msg, HttpStatus.CREATED);
}
@PutMapping("/{lectureId}")
@ -39,17 +46,21 @@ public class LectureController {
Long userId = Long.parseLong(jwtUtil.getUserId(accessToken));
if (!lectureService.updateLecture(userId, lectureId, lectureCreateRequest)) {
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
String msg = new String("Can't update Lecture");
return new ResponseEntity<>(msg, HttpStatus.UNAUTHORIZED);
}
return new ResponseEntity<>(HttpStatus.OK);
String msg = new String("Lecture updated successfully");
return new ResponseEntity<>(msg, HttpStatus.OK);
}
@DeleteMapping("/{lectureId}")
public ResponseEntity<?> deleteLecture(@RequestBody long userId, @PathVariable long lectureId) {
public ResponseEntity<?> deleteLecture(@RequestHeader("Authorization") String accessToken, @PathVariable long lectureId) {
Long userId = Long.parseLong(jwtUtil.getUserId(accessToken));
if (!lectureService.deleteLecture(userId, lectureId)) {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
String msg = new String("Can't delete Lecture");
return new ResponseEntity<>(msg, HttpStatus.UNAUTHORIZED);
}
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
@ -60,7 +71,8 @@ public class LectureController {
List<LectureSearchResponse> lectures = lectureService.findAllLecture();
if (lectures.isEmpty()) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
String msg = new String("No lectures found");
return new ResponseEntity<>(msg, HttpStatus.OK);
}
return new ResponseEntity<>(lectures, HttpStatus.OK);
@ -77,22 +89,28 @@ public class LectureController {
LectureDetailResponse lectureDetailResponse = lectureService.findLectureById(userId, lectureId);
if (lectureDetailResponse == null) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
String msg = new String("Can't find Lecture");
return new ResponseEntity<>(msg, HttpStatus.OK);
}
return new ResponseEntity<>(lectureDetailResponse, HttpStatus.OK);
}
@GetMapping("/mylecture")
public ResponseEntity<?> findMyLecture(@RequestHeader("Authorization") String accessToken) {
public ResponseEntity<?> findMyLecture(@RequestHeader(value = "Authorization", required = false) String accessToken) {
if (accessToken == null) {
String msg = new String("Not logged in");
return new ResponseEntity<>(msg, HttpStatus.OK);
}
Long userId = Long.parseLong(jwtUtil.getUserId(accessToken));
List<LectureSearchResponse> myLectures = lectureService.findMyLecture(userId);
if (myLectures.isEmpty()) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
String msg = new String("No lectures found");
return new ResponseEntity<>(msg, HttpStatus.OK);
}
return new ResponseEntity<>(myLectures, HttpStatus.OK);

View File

@ -1,5 +1,6 @@
package com.edufocus.edufocus.lecture.service;
import com.edufocus.edufocus.lecture.entity.Lecture;
import com.edufocus.edufocus.lecture.entity.LectureCreateRequest;
import com.edufocus.edufocus.lecture.entity.LectureSearchResponse;
import com.edufocus.edufocus.lecture.entity.LectureDetailResponse;
@ -23,4 +24,5 @@ public interface LectureService {
List<LectureSearchResponse> findMyLecture(long userId);
Lecture findLectureByTitle(String title);
}

View File

@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@Builder
@Service
@ -47,11 +48,9 @@ public class LectureServiceImpl implements LectureService {
@Override
public boolean updateLecture(long userId, long lectureId, LectureCreateRequest lectureCreateRequest) {
User user = userRepository.findById(userId).get();
Lecture lecture = lectureRepository.findById(lectureId).get();
if (lecture.getUser().getId() != user.getId()) {
if (lecture.getUser().getId() != userId) {
return false;
}
@ -80,9 +79,14 @@ public class LectureServiceImpl implements LectureService {
@Override
public boolean deleteLecture(long userId, long lectureId) {
Lecture lecture = lectureRepository.findById(lectureId).get();
Optional<Lecture> lecture = lectureRepository.findById(lectureId);
if (lecture.getUser().getId() != userId) {
if (lecture.isEmpty()) {
return false;
}
lecture = Optional.of(lecture.get());
if (lecture.get().getUser().getId() != userId) {
return false;
}
@ -109,11 +113,12 @@ public class LectureServiceImpl implements LectureService {
@Override
public LectureDetailResponse findLectureById(Long userId, long lectureId) {
Lecture lecture = lectureRepository.findById(lectureId).get();
Optional<Lecture> lecture = lectureRepository.findById(lectureId);
if (lecture == null) {
if (lecture.isEmpty()) {
return null;
}
lecture = Optional.of(lecture.get());
String userStatus;
if (userId == null) {
@ -122,9 +127,9 @@ public class LectureServiceImpl implements LectureService {
User user = userRepository.findById(userId).get();
if (user.getRole() == UserRole.ADMIN) {
if (lecture.getUser().getId() == user.getId()) {
if (lecture.get().getUser().getId() == user.getId()) {
userStatus = String.valueOf(UserStatus.MANAGED_BY_ME);
} else{
} else {
userStatus = String.valueOf(UserStatus.MANAGED_BY_OTHERS);
}
} else {
@ -141,15 +146,15 @@ public class LectureServiceImpl implements LectureService {
}
LectureDetailResponse lectureDetailResponse = new LectureDetailResponse().builder()
.id(lecture.getId())
.title(lecture.getTitle())
.description(lecture.getDescription())
.image(lecture.getImage())
.startDate(lecture.getStartDate())
.endDate(lecture.getEndDate())
.plan(lecture.getPlan())
.online(lecture.isOnline())
.teacherName(lecture.getUser().getName())
.id(lecture.get().getId())
.title(lecture.get().getTitle())
.description(lecture.get().getDescription())
.image(lecture.get().getImage())
.startDate(lecture.get().getStartDate())
.endDate(lecture.get().getEndDate())
.plan(lecture.get().getPlan())
.online(lecture.get().isOnline())
.teacherName(lecture.get().getUser().getName())
.status(userStatus)
.build();
@ -189,4 +194,8 @@ public class LectureServiceImpl implements LectureService {
return myLectureList;
}
@Override
public Lecture findLectureByTitle(String title) {
return lectureRepository.findByTitle(title);
}
}