summaryrefslogtreecommitdiff
path: root/src/main/java/com/stileeducation/markr/service/TestService.java
diff options
context:
space:
mode:
authorSzymon Szukalski <szymon@skas.io>2024-07-25 20:36:11 +1000
committerSzymon Szukalski <szymon@skas.io>2024-07-25 20:36:11 +1000
commitaa9bdd514ab90d0da0391b879255a22c29450e9a (patch)
tree9ddd1de0ab7e376ead06f55bdb32a6190d3647d5 /src/main/java/com/stileeducation/markr/service/TestService.java
parentec81d98e90f9fdb4dd12138a365fbbbb3a8efa5f (diff)
Validate import payload and return create/update stats
- Add validation to /import payload - Move import logic to service bean - Track whether entities have been created or update - Report number of created and updated entities as return value for the import endpoint - Add some test coverage to exercise the validators
Diffstat (limited to 'src/main/java/com/stileeducation/markr/service/TestService.java')
-rw-r--r--src/main/java/com/stileeducation/markr/service/TestService.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/main/java/com/stileeducation/markr/service/TestService.java b/src/main/java/com/stileeducation/markr/service/TestService.java
index f3ba98c..f3231b9 100644
--- a/src/main/java/com/stileeducation/markr/service/TestService.java
+++ b/src/main/java/com/stileeducation/markr/service/TestService.java
@@ -16,13 +16,21 @@ public class TestService {
public Test findOrCreateTest(String testId, Integer marksAvailable) {
Optional<Test> optionalTest = testRepository.findByTestId(testId);
if (optionalTest.isPresent()) {
- return optionalTest.get();
+ Test test = optionalTest.get();
+ if (test.getMarksAvailable() < marksAvailable) {
+ test.setMarksAvailable(marksAvailable);
+ test.setUpdated(true);
+ testRepository.save(test);
+ } else {
+ test.setUpdated(false);
+ }
+ return test;
} else {
Test test = new Test();
test.setTestId(testId);
test.setMarksAvailable(marksAvailable);
+ test.setCreated(true);
return testRepository.save(test);
}
}
-
}