Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/main/java/com/example/be/domain/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ public class User {

private LocalDateTime createDate;

private String resolve;

@Column(columnDefinition = "int default 0")
private int todayStudyTime;

Expand All @@ -48,6 +50,7 @@ public class User {
@Column(columnDefinition = "int default 0")
private int goalStudyTime;


//Relationships
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Comment> comments;
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/com/example/be/repository/UserRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.Optional;
import java.util.UUID;

Expand All @@ -20,4 +22,8 @@ public interface UserRepository extends JpaRepository<User, Long> {
@Modifying
@Query("update User u Set u.todayStudyTime = 0")
void updateTodayStudyTime();

@Query("SELECT u.resolve FROM User u WHERE u.id = :userId")
String findResolveByUserId(@Param("userId") Long userId);

}
34 changes: 34 additions & 0 deletions src/main/java/com/example/be/service/UserServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,20 @@ public class UserServiceImpl extends SimpleUrlAuthenticationSuccessHandler {
@Value("${jwt.refresh-token.expiration-time}")
private long REFRESH_TOKEN_EXPIRATION_TIME; // 리프레쉬 토큰 유효기간


private User getUserFromRequest(HttpServletRequest request) {
try {
String accessToken = jwtUtilService.extractTokenFromCookie(request, "accessToken");
if (accessToken != null) {
String userId = jwtUtilService.getUserIdFromToken(accessToken);
return userRepository.findByUserId(UUID.fromString(userId)).orElse(null);
}
} catch (Exception e) {
throw new UserHandler(ErrorStatus._NOT_FOUND_COOKIE);
}
return null;
}

public CommonDTO.IsSuccessDTO signUp(UserDTO.SingUpRequestDto request) {

if (userRepository.existsByEmail(request.getEmail()))
Expand Down Expand Up @@ -130,5 +144,25 @@ public CommonDTO.IsSuccessDTO logout(HttpServletResponse response, HttpServletRe

return CommonDTO.IsSuccessDTO.builder().isSuccess(true).build();
}

public CommonDTO.IsSuccessDTO createResolve(HttpServletRequest request, UserDTO.resolveDto resolve) {
User user = getUserFromRequest(request);

user.setResolve(resolve.getResolve());
userRepository.save(user);

return CommonDTO.IsSuccessDTO.builder().isSuccess(true).build();
}

public UserDTO.resolveDto getResolve(HttpServletRequest request) {
User user = getUserFromRequest(request);

String resolve = userRepository.findResolveByUserId(user.getId());
if(resolve == null) {
resolve = "";
}

return UserDTO.resolveDto.builder().resolve(resolve).build();
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,6 @@ public ApiResponse<List<DDayDTO.DDayResponseDto>> getDDay(
HttpServletRequest request) {
return ApiResponse.onSuccess(dayService.getDDays(request));
}


}
12 changes: 12 additions & 0 deletions src/main/java/com/example/be/web/controller/UserController.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.example.be.service.JwtUtilServiceImpl;
import com.example.be.service.UserServiceImpl;
import com.example.be.web.dto.CommonDTO;
import com.example.be.web.dto.DDayDTO;
import com.example.be.web.dto.UserDTO;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.servlet.http.HttpServletRequest;
Expand Down Expand Up @@ -46,5 +47,16 @@ public ApiResponse<CommonDTO.IsSuccessDTO> logout(HttpServletResponse response,
return ApiResponse.onSuccess(userService.logout(response, request));
}

@PostMapping("/resolve")
@Operation(summary = "각오 생성 및 수정 API", description = "각오를 생성합니다.")
public ApiResponse<CommonDTO.IsSuccessDTO> createResolve(
HttpServletRequest request, @RequestBody UserDTO.resolveDto resolve) {
return ApiResponse.onSuccess(userService.createResolve(request, resolve));
}

@GetMapping("/resolve")
@Operation(summary = "각오 조회 API", description = "각오를 조회합니다.")
public ApiResponse<UserDTO.resolveDto> getResolve(HttpServletRequest request) {
return ApiResponse.onSuccess(userService.getResolve(request));
}
}
9 changes: 9 additions & 0 deletions src/main/java/com/example/be/web/dto/UserDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,13 @@ public static class studyTimeResponseDto {
private String totalStudyTime;
private String goalStudyTime;
}

@Builder
@Getter
@NoArgsConstructor
@AllArgsConstructor
public static class resolveDto {
private String resolve;
}

}