Skip to content

Commit 0ea0101

Browse files
authored
Merge pull request #143 from Susanghan-guys/develop
release: 운영 μ„œλ²„μ— ν˜„μž¬κΉŒμ§€μ˜ μ§„ν–‰ 상황 반영
2 parents c7cbc91 + f365a66 commit 0ea0101

File tree

7 files changed

+21
-12
lines changed

7 files changed

+21
-12
lines changed

β€Žsrc/main/java/com/susanghan_guys/server/personalwork/application/DcaBriefEvaluationService.javaβ€Ž

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
@RequiredArgsConstructor
2525
public class DcaBriefEvaluationService {
2626

27-
2827
private final CurrentUserProvider currentUserProvider;
2928
private final OpenAiPort openAiPort;
3029
private final OpenAiFactory openAiFactory;
@@ -42,8 +41,7 @@ public DcaBriefEvaluationResponse createDcaBriefEvaluation(Long workId) {
4241

4342
@Transactional(readOnly = true)
4443
public DcaBriefEvaluationResponse getDcaBriefEvaluation(Long workId) {
45-
User user = currentUserProvider.getCurrentUser();
46-
personalWorkValidator.validatePersonalWorkOwner(workId, user);
44+
personalWorkValidator.validatePersonalWorkAccessible(workId, currentUserProvider.getCurrentUser());
4745

4846
BriefAnalysis briefAnalysis = briefAnalysisRepository.findByWorkId(workId)
4947
.orElseThrow(() -> new PersonalWorkException(PersonalWorkErrorCode.BRIEF_ANALYSIS_NOT_FOUND));

β€Žsrc/main/java/com/susanghan_guys/server/personalwork/application/DcaWorkEvaluationService.javaβ€Ž

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@ public DetailEvaluationResponse createDcaDetailEvaluation(Long workId, Evaluatio
6464

6565
@Transactional(readOnly = true)
6666
public DcaWorkEvaluationResponse getDcaWorkEvaluation(Long workId) {
67-
68-
personalWorkValidator.validatePersonalWorkOwner(workId, currentUserProvider.getCurrentUser());
67+
personalWorkValidator.validatePersonalWorkAccessible(workId, currentUserProvider.getCurrentUser());
6968

7069
List<Evaluation> dcaEvals = evaluationRepository
7170
.findAllByWorkIdAndTypeIn(workId, EvaluationType.dcaTypes());

β€Žsrc/main/java/com/susanghan_guys/server/personalwork/application/StrengthWeaknessService.javaβ€Ž

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ public class StrengthWeaknessService {
2424

2525
@Transactional(readOnly = true)
2626
public List<DetailEvaluationResponse.DetailEvaluation> getStrengths(Long workId) {
27-
User user = currentUserProvider.getCurrentUser();
28-
personalWorkValidator.validatePersonalWorkOwner(workId, user);
27+
personalWorkValidator.validatePersonalWorkAccessible(workId, currentUserProvider.getCurrentUser());
2928
personalWorkValidator.validateEvaluationExists(workId);
3029

3130
List<DetailEval> strengths = detailEvalRepository.findTopStrengths(workId, PageRequest.of(0, 3));
@@ -36,8 +35,7 @@ public List<DetailEvaluationResponse.DetailEvaluation> getStrengths(Long workId)
3635

3736
@Transactional(readOnly = true)
3837
public List<DetailEvaluationResponse.DetailEvaluation> getWeaknesses(Long workId) {
39-
User currentUser = currentUserProvider.getCurrentUser();
40-
personalWorkValidator.validatePersonalWorkOwner(workId, currentUser);
38+
personalWorkValidator.validatePersonalWorkAccessible(workId, currentUserProvider.getCurrentUser());
4139
personalWorkValidator.validateEvaluationExists(workId);
4240

4341
List<DetailEval> weaknesses = detailEvalRepository.findBottomWeaknesses(workId, PageRequest.of(0, 3));

β€Žsrc/main/java/com/susanghan_guys/server/personalwork/application/WorkReadService.javaβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class WorkReadService {
2525

2626
@Transactional(readOnly = true)
2727
public DetailEvaluationResponse getDetailEvaluation(Long workId, EvaluationType type) {
28-
personalWorkValidator.validatePersonalWorkOwner(workId, currentUserProvider.getCurrentUser());
28+
personalWorkValidator.validatePersonalWorkAccessible(workId, currentUserProvider.getCurrentUser());
2929
personalWorkValidator.validateEvaluationExists(workId);
3030

3131
List<DetailEval> detailEvals = detailEvalRepository.findByWorkIdAndEvaluationType(workId, type);

β€Žsrc/main/java/com/susanghan_guys/server/personalwork/application/YccWorkEvaluationService.javaβ€Ž

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@ public DetailEvaluationResponse createYccDetailEvaluation(Long workId, Evaluatio
7474

7575
@Transactional(readOnly = true)
7676
public YccWorkEvaluationResponse getYccWorkEvaluation(Long workId) {
77-
78-
personalWorkValidator.validatePersonalWorkOwner(workId, currentUserProvider.getCurrentUser());
77+
personalWorkValidator.validatePersonalWorkAccessible(workId, currentUserProvider.getCurrentUser());
7978

8079
List<Evaluation> yccEvals = evaluationRepository
8180
.findAllByWorkIdAndTypeIn(workId, EvaluationType.yccTypes());

β€Žsrc/main/java/com/susanghan_guys/server/personalwork/application/validator/PersonalWorkValidator.javaβ€Ž

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.susanghan_guys.server.user.domain.User;
77
import com.susanghan_guys.server.work.domain.Work;
88
import com.susanghan_guys.server.work.infrastructure.persistence.WorkRepository;
9+
import com.susanghan_guys.server.work.infrastructure.persistence.WorkVisibilityRepository;
910
import lombok.RequiredArgsConstructor;
1011
import org.springframework.stereotype.Component;
1112

@@ -17,6 +18,7 @@ public class PersonalWorkValidator {
1718

1819
private final WorkRepository workRepository;
1920
private final EvaluationRepository evaluationRepository;
21+
private final WorkVisibilityRepository workVisibilityRepository;
2022

2123
public boolean isOwner(Long workId, Long userId) {
2224
Work work = workRepository.findById(workId)
@@ -34,6 +36,18 @@ public void validatePersonalWorkOwner(Long workId, User user) {
3436
}
3537
}
3638

39+
public void validatePersonalWorkAccessible(Long workId, User user) {
40+
Work work = workRepository.findById(workId)
41+
.orElseThrow(() -> new PersonalWorkException(PersonalWorkErrorCode.WORK_NOT_FOUND));
42+
43+
boolean isOwner = work.getUser().equals(user);
44+
boolean isVerifiedCode = workVisibilityRepository.existsByWorkIdAndUserIdAndVisibleTrue(workId, user.getId());
45+
46+
if (!isOwner && !isVerifiedCode) {
47+
throw new PersonalWorkException(PersonalWorkErrorCode.WORK_ACCESS_DENIED);
48+
}
49+
}
50+
3751
public void validatePersonalWork(List<String> imageUrls) {
3852
if (imageUrls.isEmpty()) {
3953
throw new PersonalWorkException(PersonalWorkErrorCode.WORK_IMAGE_NOT_FOUND);

β€Žsrc/main/java/com/susanghan_guys/server/personalwork/exception/code/PersonalWorkErrorCode.javaβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public enum PersonalWorkErrorCode implements BaseCode {
1717
DETAIL_EVALUATION_TYPE_NOT_FOUND(HttpStatus.NOT_FOUND, 404, "ν•΄λ‹Ή νƒ€μž…μ˜ μ„ΈλΆ€ 총평을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."),
1818
BRIEF_ANALYSIS_NOT_FOUND(HttpStatus.NOT_FOUND, 404, "λΈŒλ¦¬ν”„ 해석을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."),
1919
UNSUPPORTED_WORK_TYPE(HttpStatus.BAD_REQUEST, 400, "μ‹€ν–‰ν•  수 μ—†λŠ” νƒ€μž…μ˜ μΆœν’ˆμž‘μž…λ‹ˆλ‹€."),
20+
WORK_ACCESS_DENIED(HttpStatus.FORBIDDEN, 403, "μž‘ν’ˆ μ—΄λžŒ κΆŒν•œμ΄ μ—†μŠ΅λ‹ˆλ‹€."),
2021
;
2122

2223
private final HttpStatus httpStatus;

0 commit comments

Comments
Β (0)