Skip to content

Commit

Permalink
Add :: exception handling for non-teacher users in method
Browse files Browse the repository at this point in the history
  • Loading branch information
priverg committed Sep 19, 2024
1 parent a1c655d commit 69e1873
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import com.keepgoing.keepserver.global.common.BaseResponse;
import com.keepgoing.keepserver.global.exception.device.DeviceError;
import com.keepgoing.keepserver.global.exception.device.DeviceException;
import com.keepgoing.keepserver.global.exception.user.UserError;
import com.keepgoing.keepserver.global.exception.user.UserException;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Sort;
import org.springframework.http.HttpStatus;
Expand Down Expand Up @@ -48,7 +50,8 @@ public BaseResponse deviceRead(Long id) {
@Override
public BaseResponse deleteDevice(Long id, Authentication authentication) {
User user = findUserByEmail(authentication.getName());
userRepository.findByIdAndTeacherIsTrue(user.getId());
userRepository.findByIdAndTeacherIsTrue(user.getId())
.orElseThrow(() -> new UserException(UserError.USER_NOT_TEACHER));
deleteDeviceById(id);
return new BaseResponse(HttpStatus.OK, "기기 삭제 성공");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ public interface UserRepository extends JpaRepository<User, Long>, UserQueryRepo
Optional<User> findByEmailEquals(String email);
List<User> findUsersByIdIn(List<Long> ids);
List<User> findUsersByTeacherIs(boolean isTeacher);
User findByIdAndTeacherIsTrue(Long id);
Optional<User> findByIdAndTeacherIsTrue(Long id);
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import com.keepgoing.keepserver.global.exception.BusinessException;
import com.keepgoing.keepserver.global.exception.device.DeviceException;
import com.keepgoing.keepserver.global.exception.error.ErrorCode;
import com.keepgoing.keepserver.global.exception.user.UserError;
import com.keepgoing.keepserver.global.exception.user.UserException;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.security.authentication.AuthenticationManager;
Expand Down Expand Up @@ -63,6 +65,14 @@ public UserNoticesDto getNoticeByUser(Authentication authentication) {
return userRepository.getNoticesById(ud.getId());
}

@Override
public User getTeacher(Authentication authentication) {
var ud = (UserDetailsImpl) authentication.getPrincipal();

return userRepository.findByIdAndTeacherIsTrue(ud.getId())
.orElseThrow(() -> new UserException(UserError.USER_NOT_TEACHER));
}

/* 인증 및 JWT 토큰 생성 */
public JwtResponse authenticateAndGenerateJWT(String email, String password) {
Authentication authentication = authenticationManager.authenticate(
Expand Down Expand Up @@ -106,9 +116,4 @@ private User findUserByEmail(String email) {
private void updateUser(User user, UserInfoRequest request) {
user.fixUserData(request.getEmail(), request.getName());
}

public User getTeacher(Authentication authentication) {
var ud = (UserDetailsImpl) authentication.getPrincipal();
return userRepository.findByIdAndTeacherIsTrue(ud.getId());
}
}

0 comments on commit 69e1873

Please sign in to comment.