Skip to content

Commit df75477

Browse files
authored
Feature/1644 refinement of evaluation logic (#1660)
* fix(db): Add migration for correctly calculating evaluation values #1644 * feat(backend): Refactor logic of evaluation view and move logic to services #1644 * refactor(backend): Add back fromDto method and controller method #1644 * feat(backend): Add ability to calculate completed objectives to db and service #1644 * feat(backend): Add extra row for making identification unique #1644 * fix(backend): Fix counting of completed objectives #1644 * style(backend): Format backend #1644 * refactor(backend): Change name to be the same as before #1644 * test(backend): Refactor existings tests and add new ones #1644 * refactor(backend): Correctly use persistenceservice as sub step #1644 * fix(backend): Fix validation of evaluationpage and add tests as well #1644 * test(backend): Fix existing persistence integration test #1644 * test(backend): Add tests for newly written business logic #1644 * refactor(backend): Correctly use enums instead of strings on model #1644 * test(backend): Utilize enums in test as well #1644 * refactor(backend): Remove any occurence of the old evaluationViewId that is obsolete #1644 * style(backend): Format all files #1644 * refactor(backend): Change params type of dto to long and make error message more precise #1644 * refactor(backend): Rename method to be more descriptive and simplify a bit of logic #1644 * fix(backend): Change logic to exclude key results that are empty #1644 * style(backend): Format files #1644 * test(backend): Fix test by correcting the numbers of the count #1644
1 parent 7615b62 commit df75477

File tree

17 files changed

+605
-470
lines changed

17 files changed

+605
-470
lines changed
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package ch.puzzle.okr.dto;
22

3-
public record EvaluationDto(int objectiveAmount, int completedObjectivesAmount,
4-
int successfullyCompletedObjectivesAmount, int keyResultAmount, int keyResultsOrdinalAmount,
5-
int keyResultsMetricAmount, int keyResultsInTargetOrStretchAmount, int keyResultsInFailAmount,
6-
int keyResultsInCommitAmount, int keyResultsInTargetAmount, int keyResultsInStretchAmount) {
3+
public record EvaluationDto(long objectiveAmount, long completedObjectivesAmount,
4+
long successfullyCompletedObjectivesAmount, long keyResultAmount, long keyResultsOrdinalAmount,
5+
long keyResultsMetricAmount, long keyResultsInTargetOrStretchAmount, long keyResultsInFailAmount,
6+
long keyResultsInCommitAmount, long keyResultsInTargetAmount, long keyResultsInStretchAmount) {
77
}

backend/src/main/java/ch/puzzle/okr/mapper/EvaluationViewMapper.java

Lines changed: 22 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,53 +2,35 @@
22

33
import ch.puzzle.okr.dto.EvaluationDto;
44
import ch.puzzle.okr.models.evaluation.EvaluationView;
5-
import ch.puzzle.okr.models.evaluation.EvaluationViewId;
5+
import ch.puzzle.okr.service.business.EvaluationViewBusinessService;
6+
import ch.puzzle.okr.util.TeamQuarterFilter;
67
import java.util.List;
78
import org.springframework.stereotype.Component;
89

910
@Component
1011
public class EvaluationViewMapper {
11-
public EvaluationDto toDto(List<EvaluationView> evaluationViews) {
12-
int objectiveSum = 0;
13-
int completedObjectivesSum = 0;
14-
int successfullyCompletedObjectivesSum = 0;
15-
int keyResultSum = 0;
16-
int keyResultsOrdinalSum = 0;
17-
int keyResultsMetricSum = 0;
18-
int keyResultsInTargetOrStretchSum = 0;
19-
int keyResultsInFailSum = 0;
20-
int keyResultsInCommitSum = 0;
21-
int keyResultsInTargetSum = 0;
22-
int keyResultsInStretchSum = 0;
2312

24-
for (EvaluationView view : evaluationViews) {
25-
objectiveSum += view.getObjectiveAmount();
26-
completedObjectivesSum += view.getCompletedObjectivesAmount();
27-
successfullyCompletedObjectivesSum += view.getSuccessfullyCompletedObjectivesAmount();
28-
keyResultSum += view.getKeyResultAmount();
29-
keyResultsOrdinalSum += view.getKeyResultsOrdinalAmount();
30-
keyResultsMetricSum += view.getKeyResultsMetricAmount();
31-
keyResultsInTargetOrStretchSum += view.getKeyResultsInTargetOrStretchAmount();
32-
keyResultsInFailSum += view.getKeyResultsInFailAmount();
33-
keyResultsInCommitSum += view.getKeyResultsInCommitAmount();
34-
keyResultsInTargetSum += view.getKeyResultsInTargetAmount();
35-
keyResultsInStretchSum += view.getKeyResultsInStretchAmount();
36-
}
13+
private final EvaluationViewBusinessService evaluationService;
3714

38-
return new EvaluationDto(objectiveSum,
39-
completedObjectivesSum,
40-
successfullyCompletedObjectivesSum,
41-
keyResultSum,
42-
keyResultsOrdinalSum,
43-
keyResultsMetricSum,
44-
keyResultsInTargetOrStretchSum,
45-
keyResultsInFailSum,
46-
keyResultsInCommitSum,
47-
keyResultsInTargetSum,
48-
keyResultsInStretchSum);
15+
public EvaluationViewMapper(EvaluationViewBusinessService evaluationService) {
16+
this.evaluationService = evaluationService;
4917
}
5018

51-
public List<EvaluationViewId> fromDto(List<Long> teamIds, Long quarterId) {
52-
return teamIds.stream().map(teamId -> new EvaluationViewId(teamId, quarterId)).toList();
19+
public EvaluationDto toDto(List<EvaluationView> views) {
20+
return new EvaluationDto(evaluationService.calculateObjectiveSum(views),
21+
evaluationService.calculateCompletedObjectivesSum(views),
22+
evaluationService.calculateSuccessfullyCompletedObjectivesSum(views),
23+
evaluationService.calculateKeyResultSum(views),
24+
evaluationService.calculateKeyResultsOrdinalSum(views),
25+
evaluationService.calculateKeyResultsMetricSum(views),
26+
evaluationService.calculateKeyResultsInTargetOrStretchSum(views),
27+
evaluationService.calculateKeyResultsInFailSum(views),
28+
evaluationService.calculateKeyResultsInCommitSum(views),
29+
evaluationService.calculateKeyResultsInTargetSum(views),
30+
evaluationService.calculateKeyResultsInStretchSum(views));
5331
}
54-
}
32+
33+
public TeamQuarterFilter fromDto(List<Long> teamIds, Long quarterId) {
34+
return new TeamQuarterFilter(teamIds, quarterId);
35+
}
36+
}

0 commit comments

Comments
 (0)