Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
e2b1449
fix(db): Add migration for correctly calculating evaluation values #…
ManuelMoeri Aug 26, 2025
ec1d1fa
feat(backend): Refactor logic of evaluation view and move logic to se…
ManuelMoeri Aug 26, 2025
b4d982d
refactor(backend): Add back fromDto method and controller method #1644
ManuelMoeri Aug 27, 2025
788b565
feat(backend): Add ability to calculate completed objectives to db an…
ManuelMoeri Aug 29, 2025
e2c8442
feat(backend): Add extra row for making identification unique #1644
ManuelMoeri Sep 2, 2025
64e9a60
fix(backend): Fix counting of completed objectives #1644
ManuelMoeri Sep 3, 2025
7aaf127
style(backend): Format backend #1644
ManuelMoeri Sep 3, 2025
87784af
refactor(backend): Change name to be the same as before #1644
ManuelMoeri Sep 3, 2025
2a8531b
test(backend): Refactor existings tests and add new ones #1644
ManuelMoeri Sep 3, 2025
6d84a19
refactor(backend): Correctly use persistenceservice as sub step #1644
ManuelMoeri Sep 3, 2025
b33b150
fix(backend): Fix validation of evaluationpage and add tests as well …
ManuelMoeri Sep 3, 2025
7936996
test(backend): Fix existing persistence integration test #1644
ManuelMoeri Sep 5, 2025
f7fc489
test(backend): Add tests for newly written business logic #1644
ManuelMoeri Sep 5, 2025
2a3f16a
refactor(backend): Correctly use enums instead of strings on model #…
ManuelMoeri Sep 8, 2025
0edfadf
test(backend): Utilize enums in test as well #1644
ManuelMoeri Sep 8, 2025
1662a01
refactor(backend): Remove any occurence of the old evaluationViewId t…
ManuelMoeri Sep 8, 2025
6d92918
style(backend): Format all files #1644
ManuelMoeri Sep 8, 2025
3506499
refactor(backend): Change params type of dto to long and make error m…
ManuelMoeri Sep 8, 2025
a11cf3d
refactor(backend): Rename method to be more descriptive and simplify …
ManuelMoeri Sep 8, 2025
163ae66
fix(backend): Change logic to exclude key results that are empty #1644
ManuelMoeri Sep 8, 2025
fcb3e21
style(backend): Format files #1644
ManuelMoeri Sep 8, 2025
b23bb52
test(backend): Fix test by correcting the numbers of the count #1644
ManuelMoeri Sep 8, 2025
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
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,35 @@

import ch.puzzle.okr.dto.EvaluationDto;
import ch.puzzle.okr.models.evaluation.EvaluationView;
import ch.puzzle.okr.models.evaluation.EvaluationViewId;
import ch.puzzle.okr.service.business.EvaluationViewBusinessService;
import ch.puzzle.okr.util.TeamQuarterFilter;
import java.util.List;
import org.springframework.stereotype.Component;

@Component
public class EvaluationViewMapper {
public EvaluationDto toDto(List<EvaluationView> evaluationViews) {
int objectiveSum = 0;
int completedObjectivesSum = 0;
int successfullyCompletedObjectivesSum = 0;
int keyResultSum = 0;
int keyResultsOrdinalSum = 0;
int keyResultsMetricSum = 0;
int keyResultsInTargetOrStretchSum = 0;
int keyResultsInFailSum = 0;
int keyResultsInCommitSum = 0;
int keyResultsInTargetSum = 0;
int keyResultsInStretchSum = 0;

for (EvaluationView view : evaluationViews) {
objectiveSum += view.getObjectiveAmount();
completedObjectivesSum += view.getCompletedObjectivesAmount();
successfullyCompletedObjectivesSum += view.getSuccessfullyCompletedObjectivesAmount();
keyResultSum += view.getKeyResultAmount();
keyResultsOrdinalSum += view.getKeyResultsOrdinalAmount();
keyResultsMetricSum += view.getKeyResultsMetricAmount();
keyResultsInTargetOrStretchSum += view.getKeyResultsInTargetOrStretchAmount();
keyResultsInFailSum += view.getKeyResultsInFailAmount();
keyResultsInCommitSum += view.getKeyResultsInCommitAmount();
keyResultsInTargetSum += view.getKeyResultsInTargetAmount();
keyResultsInStretchSum += view.getKeyResultsInStretchAmount();
}
private final EvaluationViewBusinessService evaluationService;

return new EvaluationDto(objectiveSum,
completedObjectivesSum,
successfullyCompletedObjectivesSum,
keyResultSum,
keyResultsOrdinalSum,
keyResultsMetricSum,
keyResultsInTargetOrStretchSum,
keyResultsInFailSum,
keyResultsInCommitSum,
keyResultsInTargetSum,
keyResultsInStretchSum);
public EvaluationViewMapper(EvaluationViewBusinessService evaluationService) {
this.evaluationService = evaluationService;
}

public List<EvaluationViewId> fromDto(List<Long> teamIds, Long quarterId) {
return teamIds.stream().map(teamId -> new EvaluationViewId(teamId, quarterId)).toList();
public EvaluationDto toDto(List<EvaluationView> views) {
return new EvaluationDto(evaluationService.calculateObjectiveSum(views),
evaluationService.calculateCompletedObjectivesSum(views),
evaluationService.calculateSuccessfullyCompletedObjectivesSum(views),
evaluationService.calculateKeyResultSum(views),
evaluationService.calculateKeyResultsOrdinalSum(views),
evaluationService.calculateKeyResultsMetricSum(views),
evaluationService.calculateKeyResultsInTargetOrStretchSum(views),
evaluationService.calculateKeyResultsInFailSum(views),
evaluationService.calculateKeyResultsInCommitSum(views),
evaluationService.calculateKeyResultsInTargetSum(views),
evaluationService.calculateKeyResultsInStretchSum(views));
}
}

public TeamQuarterFilter fromDto(List<Long> teamIds, Long quarterId) {
return new TeamQuarterFilter(teamIds, quarterId);
}
}
Loading
Loading