Skip to content

Commit 4e757e3

Browse files
authored
btsk-116: readme작성 및 삭제 관련 에러 해결 (#152)
* feat: readme작성 및 삭제 관련 에러 해결 * fix: 테스트 코드 및 리뷰 반영
1 parent e8cd6be commit 4e757e3

15 files changed

Lines changed: 345 additions & 123 deletions

File tree

README.md

Lines changed: 250 additions & 115 deletions
Large diffs are not rendered by default.

docs/architecture.png

278 KB
Loading

docs/erd.png

1020 KB
Loading

docs/grafana.png

868 KB
Loading

docs/sentry.png

670 KB
Loading

docs/test-coverage.png

1020 KB
Loading

src/main/java/kr/it/pullit/modules/learningsource/source/service/SourceService.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.IOException;
44
import java.io.InputStream;
55
import java.nio.file.Path;
6+
import java.util.HashSet;
67
import java.util.List;
78
import java.util.Optional;
89
import kr.it.pullit.modules.learningsource.source.api.SourcePublicApi;
@@ -147,9 +148,14 @@ public List<Source> findByIdIn(List<Long> ids) {
147148
@Override
148149
public void deleteSource(Long sourceId, Long memberId) {
149150
Source source = getOrElseThrow(sourceId, memberId);
150-
String filePath = source.getFilePath();
151+
152+
new HashSet<>(source.getQuestionSets())
153+
.forEach(questionSet -> questionSet.removeSource(source));
154+
source.getQuestionSets().clear();
151155

152156
sourceRepository.delete(source);
157+
158+
String filePath = source.getFilePath();
153159
deleteInS3(filePath);
154160
}
155161

src/main/java/kr/it/pullit/modules/projection/learnstats/api/LearnStatsPublicApi.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,7 @@ public interface LearnStatsPublicApi {
99

1010
void applyQuestionSetSolved(Long memberId, int questionCount);
1111

12+
void applyQuestionSetDeleted(Long memberId, long correctQuestionCount);
13+
1214
Optional<LearnStats> getLearnStats(Long memberId);
1315
}

src/main/java/kr/it/pullit/modules/projection/learnstats/domain/LearnStats.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@ public void onQuestionSetSolved(int solvedQuestionCount, LocalDate today) {
8181
updateConsecutiveStreak(today);
8282
}
8383

84+
public void onQuestionSetDeleted(long correctQuestionsInSet) {
85+
this.totalCorrectQuestionCount =
86+
Math.max(0, this.totalCorrectQuestionCount - correctQuestionsInSet);
87+
}
88+
8489
public void updateTotalQuestionCount(long totalQuestionCount) {
8590
this.totalQuestionCount = totalQuestionCount;
8691
}

src/main/java/kr/it/pullit/modules/projection/learnstats/service/LearnStatsService.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,16 @@ public void applyQuestionSetSolved(Long memberId, int questionCount) {
3232
repo.save(p);
3333
}
3434

35+
@Override
36+
public void applyQuestionSetDeleted(Long memberId, long correctQuestionCount) {
37+
repo.findById(memberId)
38+
.ifPresent(
39+
learnStats -> {
40+
learnStats.onQuestionSetDeleted(correctQuestionCount);
41+
repo.save(learnStats);
42+
});
43+
}
44+
3545
public void increaseCorrectQuestionCount(Long memberId, long correctCount) {
3646
LearnStats p = repo.findById(memberId).orElseGet(() -> LearnStats.newOf(memberId));
3747
p.increaseCorrectQuestionCount(correctCount);

0 commit comments

Comments
 (0)