🔍 Controller

@PatchMapping("/admin/upgradeAuth/{username}")
public ResponseEntity<Void> upgradeAuth(@PathVariable String username){
    boolean check = userService.upgradeAuth(username);

    return (check) ?
            ResponseEntity.status(HttpStatus.OK).body(null) :
            ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
}

쇼핑몰에는 일반 사용자, 상품 등록자, 관리자의 권한이 존재함

일반 사용자가 상품 등록을 원할 때 관리자가 권한을 업그레이드 시켜줌

UserServiceupgradeAuth함수를 호출하고 결과에 따라 200 또는 400의 status code를 반환

🔍 Service

@Override
public boolean upgradeAuth(String username) {
    User user = userRepository.findByUsername(username);
    if(user == null) {return false;}

    user.upgradeAuth(Authority.REGISTER);

    User modified_user = userRepository.save(user);

    return !modified_user.getUsername().isEmpty();
}

요청으로 온 username에 해당하는 엔티티를 조회

username에 해당하는 유저 정보가 없다면 null 리턴

username에 해당하는 유저 정보가 있다면 권한을 수정 후 저장