From 6743e56b267652e80e28bc7256b47703fbbc67db Mon Sep 17 00:00:00 2001 From: Zoey Date: Thu, 4 Sep 2025 13:17:45 -0600 Subject: [PATCH 01/41] Added Developer Guide doc --- docs/index.rst | 1 + docs/src/DeveloperGuide.rst | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 docs/src/DeveloperGuide.rst diff --git a/docs/index.rst b/docs/index.rst index 9c49b444..f3029f82 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -15,3 +15,4 @@ Packtrain is software for grading and student extension management. src/Authentication src/GradingPolicy src/Migrations + src/DeveloperGuide diff --git a/docs/src/DeveloperGuide.rst b/docs/src/DeveloperGuide.rst new file mode 100644 index 00000000..d21203bb --- /dev/null +++ b/docs/src/DeveloperGuide.rst @@ -0,0 +1,4 @@ +.. _DeveloperGuide: + +Developer Guide +========================== \ No newline at end of file From 384e3d765cade591ce08c3f6dbcbfbaba9eb686c Mon Sep 17 00:00:00 2001 From: Zoey Date: Fri, 5 Sep 2025 09:46:23 -0600 Subject: [PATCH 02/41] Added extensionDays field to migration log --- .../edu/mines/packtrain/models/MigrationTransactionLog.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/models/MigrationTransactionLog.java b/packtrain-service/src/main/java/edu/mines/packtrain/models/MigrationTransactionLog.java index 55679f8e..df3d7cb0 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/models/MigrationTransactionLog.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/models/MigrationTransactionLog.java @@ -52,4 +52,7 @@ public class MigrationTransactionLog { @Column(name = "message", length = 1000) private String message; + + @Column(name = "number_extension_days") + private int extensionDays = 0; } From 1c15a3df869dd79a08b4f95ac89e272f60735b64 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Tue, 9 Sep 2025 11:28:40 -0600 Subject: [PATCH 03/41] adding number of days to the scoredDTO and adjusted handlescorerecived --- .../java/edu/mines/packtrain/data/policyServer/ScoredDTO.java | 1 + .../main/java/edu/mines/packtrain/services/MigrationService.java | 1 + 2 files changed, 2 insertions(+) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/data/policyServer/ScoredDTO.java b/packtrain-service/src/main/java/edu/mines/packtrain/data/policyServer/ScoredDTO.java index 9dc9b3a1..07d867ca 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/data/policyServer/ScoredDTO.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/data/policyServer/ScoredDTO.java @@ -18,4 +18,5 @@ public class ScoredDTO { private LateRequestStatus extensionStatus; private String extensionMessage; private String submissionMessage; + private int numberExtensionDaysApplied; } diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java index ee6a4f03..65578c41 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java @@ -264,6 +264,7 @@ public void handleScoreReceived(User asUser, UUID migrationId, ScoredDTO dto) { entry.setSubmissionStatus(dto.getSubmissionStatus()); entry.setScore(dto.getFinalScore()); entry.setSubmissionTime(dto.getAdjustedSubmissionTime()); + entry.setExtensionDays(dto.get) StringBuilder msg = new StringBuilder(); Optional lateRequest = extensionService.getLateRequest(entry.getExtensionId()); From 337bf55dc070358b986e4f16e630dbd10b0e5e8d Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Tue, 9 Sep 2025 11:46:04 -0600 Subject: [PATCH 04/41] set log number of extension days in handlescorereceived to dto getnumdays --- .../java/edu/mines/packtrain/services/MigrationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java index 65578c41..c1404cc9 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java @@ -264,7 +264,7 @@ public void handleScoreReceived(User asUser, UUID migrationId, ScoredDTO dto) { entry.setSubmissionStatus(dto.getSubmissionStatus()); entry.setScore(dto.getFinalScore()); entry.setSubmissionTime(dto.getAdjustedSubmissionTime()); - entry.setExtensionDays(dto.get) + entry.setExtensionDays(dto.getNumberExtensionDaysApplied()); StringBuilder msg = new StringBuilder(); Optional lateRequest = extensionService.getLateRequest(entry.getExtensionId()); From ac8b017df94f0feb8fe18b4c1bc904ab774c700a Mon Sep 17 00:00:00 2001 From: Zoey Date: Tue, 9 Sep 2025 13:37:24 -0600 Subject: [PATCH 05/41] Added a query in the MigrationTransactionLogRepo --- .../packtrain/repositories/MigrationTransactionLogRepo.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java b/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java index 54e2c8da..57ed09cf 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java @@ -16,4 +16,10 @@ public interface MigrationTransactionLogRepo extends CrudRepository getByCwidAndMigrationId(String cwid, UUID migrationId); + + @Query("select l from migration_transaction_log l where l.migrationId = ?1" + + "and l.revision = (select max(l2.revision) from migration_transaction_log l2 where l2.cwid = l.cwid )") + // grabbing the latest revision from migration transaction log by migration id + // cursed subquery version (im so sorry) + List getAllByMigrationIdSorted(UUID migrationId); } From 4b6a7d05a4a858c2d5c2e13fe5314c94fbe37d4c Mon Sep 17 00:00:00 2001 From: Zoey Date: Tue, 9 Sep 2025 13:55:09 -0600 Subject: [PATCH 06/41] Created processExtensionApplied function in ExtensionService --- .../repositories/MigrationTransactionLogRepo.java | 2 +- .../edu/mines/packtrain/services/ExtensionService.java | 10 ++++++++++ .../edu/mines/packtrain/services/MigrationService.java | 7 +++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java b/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java index 57ed09cf..dfd87c2c 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java @@ -21,5 +21,5 @@ public interface MigrationTransactionLogRepo extends CrudRepository getAllByMigrationIdSorted(UUID migrationId); + List getLatestByMigrationId(UUID migrationId); } diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java index 2ae20abc..9ad6bd5b 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java @@ -200,4 +200,14 @@ public Map getLateRequestsForAssignment(UUID assignment) { .collect(Collectors.toUnmodifiableMap( l -> l.getRequestingUser().getCwid(), l -> l)); } + + public void processExtensionApplied(UUID extensionId, boolean extensionApplied, int extensionDays) { + Optional lateRequest = lateRequestRepo.getLateRequestById(extensionId); + if !(lateRequest.isPresent()) { + // assume extension exists + // actually process the extension by marking extension as applied or ignored + } + + } + } diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java index 65578c41..79b377d9 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java @@ -677,7 +677,7 @@ public void postGradesToCanvasTask(PostToCanvasTaskDef taskDef) { .prepCanvasSubmissionsForPublish(String.valueOf(taskDef.getCanvasCourseId()), taskDef.getCanvasAssignmentId()); - List entries = transactionLogRepo.getAllByMigrationIdSorted( + List entries = transactionLogRepo.getLatestByMigrationId( taskDef.getMigrationId()); log.info("Processing {} migration log entries for posting to canvas for migration '{}'", @@ -686,6 +686,9 @@ public void postGradesToCanvasTask(PostToCanvasTaskDef taskDef) { for (MigrationTransactionLog entry : entries) { submissions.addSubmission(entry.getCanvasId(), entry.getMessage(), entry.getScore(), entry.getSubmissionStatus().equals(SubmissionStatus.EXCUSED)); + if entry.extensionId != null { + extensionService.processExtensionApplied(entry.getExtensionId(), entry.isExtensionApplied(), entry.getExtensionDays()) + } } Optional progress = canvasService.asUser(provider) @@ -694,7 +697,7 @@ public void postGradesToCanvasTask(PostToCanvasTaskDef taskDef) { if (progress.isEmpty()) { throw new RuntimeException("Failed to post scores to Canvas!"); } - + // We will probably want to periodically check in on this and then only flag this // as completed once this is done } From 0324b9a12cd8085f3ea82a0dbf7966d7f9cad127 Mon Sep 17 00:00:00 2001 From: Zoey Date: Tue, 9 Sep 2025 14:10:24 -0600 Subject: [PATCH 07/41] Fixed logical error in processExtensionApplied function --- .../java/edu/mines/packtrain/services/ExtensionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java index 9ad6bd5b..0cefd314 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java @@ -203,7 +203,7 @@ public Map getLateRequestsForAssignment(UUID assignment) { public void processExtensionApplied(UUID extensionId, boolean extensionApplied, int extensionDays) { Optional lateRequest = lateRequestRepo.getLateRequestById(extensionId); - if !(lateRequest.isPresent()) { + if lateRequest.isPresent() { // assume extension exists // actually process the extension by marking extension as applied or ignored } From cfc0567a3d9a289bf50214e9e1f45dae2827cefc Mon Sep 17 00:00:00 2001 From: Zoey Date: Tue, 9 Sep 2025 14:12:06 -0600 Subject: [PATCH 08/41] Missed a semicolon --- .../java/edu/mines/packtrain/services/MigrationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java index 8099a1b6..d8071db3 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java @@ -687,7 +687,7 @@ public void postGradesToCanvasTask(PostToCanvasTaskDef taskDef) { submissions.addSubmission(entry.getCanvasId(), entry.getMessage(), entry.getScore(), entry.getSubmissionStatus().equals(SubmissionStatus.EXCUSED)); if entry.extensionId != null { - extensionService.processExtensionApplied(entry.getExtensionId(), entry.isExtensionApplied(), entry.getExtensionDays()) + extensionService.processExtensionApplied(entry.getExtensionId(), entry.isExtensionApplied(), entry.getExtensionDays()); } } From a3f409bd7e595ed8299b14fefbc261c1640efcda Mon Sep 17 00:00:00 2001 From: Zoey Date: Tue, 9 Sep 2025 14:15:31 -0600 Subject: [PATCH 09/41] Fixed syntax errors --- .../java/edu/mines/packtrain/services/ExtensionService.java | 2 +- .../java/edu/mines/packtrain/services/MigrationService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java index 0cefd314..2510e9ed 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java @@ -203,7 +203,7 @@ public Map getLateRequestsForAssignment(UUID assignment) { public void processExtensionApplied(UUID extensionId, boolean extensionApplied, int extensionDays) { Optional lateRequest = lateRequestRepo.getLateRequestById(extensionId); - if lateRequest.isPresent() { + if (lateRequest.isPresent()) { // assume extension exists // actually process the extension by marking extension as applied or ignored } diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java index d8071db3..180dacda 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java @@ -686,7 +686,7 @@ public void postGradesToCanvasTask(PostToCanvasTaskDef taskDef) { for (MigrationTransactionLog entry : entries) { submissions.addSubmission(entry.getCanvasId(), entry.getMessage(), entry.getScore(), entry.getSubmissionStatus().equals(SubmissionStatus.EXCUSED)); - if entry.extensionId != null { + if (entry.extensionId != null) { extensionService.processExtensionApplied(entry.getExtensionId(), entry.isExtensionApplied(), entry.getExtensionDays()); } } From c80542a1e691a921a45e8d188ff5f25970f434e5 Mon Sep 17 00:00:00 2001 From: Zoey Date: Tue, 9 Sep 2025 14:40:25 -0600 Subject: [PATCH 10/41] Fixing more errors --- .../edu/mines/packtrain/services/ExtensionService.java | 7 ++++--- .../edu/mines/packtrain/services/MigrationService.java | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java index 2510e9ed..36c1f731 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java @@ -202,11 +202,12 @@ public Map getLateRequestsForAssignment(UUID assignment) { } public void processExtensionApplied(UUID extensionId, boolean extensionApplied, int extensionDays) { - Optional lateRequest = lateRequestRepo.getLateRequestById(extensionId); - if (lateRequest.isPresent()) { + LateRequest lateRequest = lateRequestRepo.getLateRequestById(extensionId); + // TODO finish writing this function + // if (lateRequest != null) { // assume extension exists // actually process the extension by marking extension as applied or ignored - } + // } } diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java index 180dacda..b298f625 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java @@ -686,7 +686,7 @@ public void postGradesToCanvasTask(PostToCanvasTaskDef taskDef) { for (MigrationTransactionLog entry : entries) { submissions.addSubmission(entry.getCanvasId(), entry.getMessage(), entry.getScore(), entry.getSubmissionStatus().equals(SubmissionStatus.EXCUSED)); - if (entry.extensionId != null) { + if (entry.getExtensionId() != null) { extensionService.processExtensionApplied(entry.getExtensionId(), entry.isExtensionApplied(), entry.getExtensionDays()); } } From 34e4f5ffac210b851792e05f68e3c880c38ca37d Mon Sep 17 00:00:00 2001 From: Zoey Date: Tue, 9 Sep 2025 14:43:26 -0600 Subject: [PATCH 11/41] Fixed style issues --- .../packtrain/repositories/MigrationTransactionLogRepo.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java b/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java index dfd87c2c..1f090146 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java @@ -18,7 +18,8 @@ public interface MigrationTransactionLogRepo extends CrudRepository getByCwidAndMigrationId(String cwid, UUID migrationId); @Query("select l from migration_transaction_log l where l.migrationId = ?1" + - "and l.revision = (select max(l2.revision) from migration_transaction_log l2 where l2.cwid = l.cwid )") + "and l.revision = (select max(l2.revision) from migration_transaction_log l2 + where l2.cwid = l.cwid )") // grabbing the latest revision from migration transaction log by migration id // cursed subquery version (im so sorry) List getLatestByMigrationId(UUID migrationId); From 2e291ebe5d2ab94521251200dda4f2741bcf0af4 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Fri, 12 Sep 2025 12:11:56 -0600 Subject: [PATCH 12/41] implementation of process extension --- .../edu/mines/packtrain/services/ExtensionService.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java index 36c1f731..ed869b69 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java @@ -208,6 +208,15 @@ public void processExtensionApplied(UUID extensionId, boolean extensionApplied, // assume extension exists // actually process the extension by marking extension as applied or ignored // } + LateRequestStatus status; + status = LateRequestStatus.IGNORED; + if(extensionApplied){ + status = LateRequestStatus.APPLIED; + } + if (lateRequest != null){ + lateRequest.setStatus(status); + lateRequest.setDaysRequested(extensionDays); + } } From 072c6fb48edc79fdceb4d8f8e45b49f4c0901fe2 Mon Sep 17 00:00:00 2001 From: Zoey Date: Fri, 12 Sep 2025 12:48:09 -0600 Subject: [PATCH 13/41] Trying to fix style issues --- .../packtrain/repositories/MigrationTransactionLogRepo.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java b/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java index 1f090146..0411bf75 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/repositories/MigrationTransactionLogRepo.java @@ -17,9 +17,8 @@ public interface MigrationTransactionLogRepo extends CrudRepository getByCwidAndMigrationId(String cwid, UUID migrationId); - @Query("select l from migration_transaction_log l where l.migrationId = ?1" + - "and l.revision = (select max(l2.revision) from migration_transaction_log l2 - where l2.cwid = l.cwid )") + @Query("select l from migration_transaction_log l where l.migrationId = ?1 " + + "and l.revision = (select max(l2.revision) from migration_transaction_log l2 where l2.cwid = l.cwid )") // grabbing the latest revision from migration transaction log by migration id // cursed subquery version (im so sorry) List getLatestByMigrationId(UUID migrationId); From 2e3f3c97c15b888e55de8f7722494b3b8aba733e Mon Sep 17 00:00:00 2001 From: Zoey Date: Fri, 12 Sep 2025 13:05:25 -0600 Subject: [PATCH 14/41] Fixing white spaces issues in ExtensionService --- .../java/edu/mines/packtrain/services/ExtensionService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java index ed869b69..11949cd9 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java @@ -210,10 +210,10 @@ public void processExtensionApplied(UUID extensionId, boolean extensionApplied, // } LateRequestStatus status; status = LateRequestStatus.IGNORED; - if(extensionApplied){ + if (extensionApplied) { status = LateRequestStatus.APPLIED; } - if (lateRequest != null){ + if (lateRequest != null) { lateRequest.setStatus(status); lateRequest.setDaysRequested(extensionDays); } From 3543e320f1f3d2a9bff7701cd881c86e6f905244 Mon Sep 17 00:00:00 2001 From: Zoey Date: Fri, 12 Sep 2025 13:10:49 -0600 Subject: [PATCH 15/41] Fixed LineLength error in MigrationService --- .../java/edu/mines/packtrain/services/MigrationService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java index b298f625..013cd260 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java @@ -687,7 +687,8 @@ public void postGradesToCanvasTask(PostToCanvasTaskDef taskDef) { submissions.addSubmission(entry.getCanvasId(), entry.getMessage(), entry.getScore(), entry.getSubmissionStatus().equals(SubmissionStatus.EXCUSED)); if (entry.getExtensionId() != null) { - extensionService.processExtensionApplied(entry.getExtensionId(), entry.isExtensionApplied(), entry.getExtensionDays()); + extensionService.processExtensionApplied(entry.getExtensionId(), + entry.isExtensionApplied(), entry.getExtensionDays()); } } From 0706f7b339dd3529935957dc29f65b8425ea9a2d Mon Sep 17 00:00:00 2001 From: Zoey Date: Fri, 12 Sep 2025 13:12:57 -0600 Subject: [PATCH 16/41] fixed the last style error --- .../java/edu/mines/packtrain/services/MigrationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java index 013cd260..1e57db87 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/MigrationService.java @@ -688,7 +688,7 @@ public void postGradesToCanvasTask(PostToCanvasTaskDef taskDef) { entry.getSubmissionStatus().equals(SubmissionStatus.EXCUSED)); if (entry.getExtensionId() != null) { extensionService.processExtensionApplied(entry.getExtensionId(), - entry.isExtensionApplied(), entry.getExtensionDays()); + entry.isExtensionApplied(), entry.getExtensionDays()); } } From 52ff05a6f34dfade14e2fafa66b4f9d95eaa7002 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Fri, 19 Sep 2025 10:09:30 -0600 Subject: [PATCH 17/41] deleted commented code --- .../java/edu/mines/packtrain/services/ExtensionService.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java index 60d4bad6..cb04e987 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java @@ -195,11 +195,6 @@ public Map getLateRequestsForAssignment(UUID assignment) { public void processExtensionApplied(UUID extensionId, boolean extensionApplied, int extensionDays) { LateRequest lateRequest = lateRequestRepo.getLateRequestById(extensionId); - // TODO finish writing this function - // if (lateRequest != null) { - // assume extension exists - // actually process the extension by marking extension as applied or ignored - // } LateRequestStatus status; status = LateRequestStatus.IGNORED; if (extensionApplied) { From be5a6a7a48d91ae146dd696cba74d82c4e450bdf Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Fri, 19 Sep 2025 10:15:23 -0600 Subject: [PATCH 18/41] saved the late request to the repo --- .../java/edu/mines/packtrain/services/ExtensionService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java index cb04e987..d73a5f74 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java @@ -205,6 +205,8 @@ public void processExtensionApplied(UUID extensionId, boolean extensionApplied, lateRequest.setDaysRequested(extensionDays); } + lateRequestRepo.save(lateRequest); //is this correct? + } } From df53ce6a4c2f8b659f4d4d79fe7c3ad976b9df0a Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 14:51:56 -0600 Subject: [PATCH 19/41] extension service test --- .../services/TestExtensionService.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index 45d64997..23907f77 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -1,11 +1,22 @@ package edu.mines.packtrain.services; import edu.mines.packtrain.containers.PostgresTestContainer; +import edu.mines.packtrain.models.LateRequest; +import edu.mines.packtrain.models.enums.LateRequestStatus; import edu.mines.packtrain.repositories.ExtensionRepo; +import edu.mines.packtrain.repositories.LateRequestRepo; import edu.mines.packtrain.seeders.CourseSeeders; + +import static org.mockito.ArgumentMatchers.any; + +import java.util.UUID; + import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -18,12 +29,15 @@ public class TestExtensionService implements PostgresTestContainer { private ExtensionRepo extensionRepo; @Autowired private CourseSeeders courseSeeders; + @Autowired + private LateRequestRepo lateRequestRepo; @BeforeAll static void setupClass(){ postgres.start(); } + @AfterEach void tearDown(){ extensionRepo.deleteAll(); @@ -38,4 +52,18 @@ void verifyGetAllExtensions(){ } + @Test + void verifyProcessExtensionApplied(){ + Mockito.when(lateRequestRepo.getLateRequestById(any())).thenReturn(null); + + extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); + ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); + Mockito.verify(lateRequestRepo).save(requestCaptor.capture()); + + LateRequest capturedRequest = requestCaptor.getValue(); + Assertions.assertEquals(capturedRequest.getStatus(), LateRequestStatus.APPLIED); + Assertions.assertEquals(capturedRequest.getDaysRequested(), 2); + + } + } From e894d517b309046b8818370e6a0fb6a647d12282 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 14:58:57 -0600 Subject: [PATCH 20/41] test fix --- .../java/edu/mines/packtrain/services/TestExtensionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index 23907f77..a6036fe8 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -54,7 +54,7 @@ void verifyGetAllExtensions(){ @Test void verifyProcessExtensionApplied(){ - Mockito.when(lateRequestRepo.getLateRequestById(any())).thenReturn(null); + Mockito.when(lateRequestRepo.getLateRequestById(any(UUID.class))).thenReturn(null); extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); From a03a2a0c2a51004e8905279f8766bd2b3b062517 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 15:15:44 -0600 Subject: [PATCH 21/41] fix to test forgot mockito --- .../java/edu/mines/packtrain/services/TestExtensionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index a6036fe8..8aa6bc0f 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -54,7 +54,7 @@ void verifyGetAllExtensions(){ @Test void verifyProcessExtensionApplied(){ - Mockito.when(lateRequestRepo.getLateRequestById(any(UUID.class))).thenReturn(null); + Mockito.when(lateRequestRepo.getLateRequestById(Mockito.any(UUID.class))).thenReturn(null); extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); From a692f9c26f2f959791fa3a53866b076ed558bb03 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 15:26:20 -0600 Subject: [PATCH 22/41] fix to test --- .../java/edu/mines/packtrain/services/TestExtensionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index 8aa6bc0f..6ee8d5c7 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -54,7 +54,7 @@ void verifyGetAllExtensions(){ @Test void verifyProcessExtensionApplied(){ - Mockito.when(lateRequestRepo.getLateRequestById(Mockito.any(UUID.class))).thenReturn(null); + Mockito.doNothing().when(lateRequestRepo.getLateRequestById(any(UUID.class))); extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); From b2dea9e9549e15f29af61e153aedfa7046e3c1b3 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 15:30:41 -0600 Subject: [PATCH 23/41] fix to test --- .../edu/mines/packtrain/services/TestExtensionService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index 6ee8d5c7..0cfad5c4 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -54,7 +54,8 @@ void verifyGetAllExtensions(){ @Test void verifyProcessExtensionApplied(){ - Mockito.doNothing().when(lateRequestRepo.getLateRequestById(any(UUID.class))); + LateRequestRepo mockRepo = Mockito.mock(LateRequestRepo.class); + Mockito.doNothing().when(mockRepo.getLateRequestById(any(UUID.class))); extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); From d315cf95eb365152cdb87ef5fb29a128ab4c20c5 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 15:38:25 -0600 Subject: [PATCH 24/41] fix to testforgot to mock save() --- .../edu/mines/packtrain/services/TestExtensionService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index 0cfad5c4..1f206bb7 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -55,11 +55,12 @@ void verifyGetAllExtensions(){ @Test void verifyProcessExtensionApplied(){ LateRequestRepo mockRepo = Mockito.mock(LateRequestRepo.class); - Mockito.doNothing().when(mockRepo.getLateRequestById(any(UUID.class))); + Mockito.when(mockRepo.getLateRequestById(any(UUID.class))).thenReturn(null); + Mockito.doNothing().when(mockRepo.save(any())); extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); - Mockito.verify(lateRequestRepo).save(requestCaptor.capture()); + Mockito.verify(mockRepo).save(requestCaptor.capture()); LateRequest capturedRequest = requestCaptor.getValue(); Assertions.assertEquals(capturedRequest.getStatus(), LateRequestStatus.APPLIED); From 02cb680a259c0a0bb914556582e7be314eae884b Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 15:41:26 -0600 Subject: [PATCH 25/41] fix to testforgot to mock save() --- .../java/edu/mines/packtrain/services/TestExtensionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index 1f206bb7..20fbc296 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -56,7 +56,7 @@ void verifyGetAllExtensions(){ void verifyProcessExtensionApplied(){ LateRequestRepo mockRepo = Mockito.mock(LateRequestRepo.class); Mockito.when(mockRepo.getLateRequestById(any(UUID.class))).thenReturn(null); - Mockito.doNothing().when(mockRepo.save(any())); + Mockito.doNothing().when(mockRepo).save(any()); extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); From c890dcf05811916a59d7aa7971103e9b8f44f512 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 15:46:33 -0600 Subject: [PATCH 26/41] fix to test for svae() --- .../java/edu/mines/packtrain/services/TestExtensionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index 20fbc296..bcecba0a 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -56,7 +56,7 @@ void verifyGetAllExtensions(){ void verifyProcessExtensionApplied(){ LateRequestRepo mockRepo = Mockito.mock(LateRequestRepo.class); Mockito.when(mockRepo.getLateRequestById(any(UUID.class))).thenReturn(null); - Mockito.doNothing().when(mockRepo).save(any()); + Mockito.when(mockRepo.save(any())).thenReturn(null); extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); From 23dab5c1aeebf3b3e0cb3a62ca6bf327fe98f2d3 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 15:49:09 -0600 Subject: [PATCH 27/41] got rid of save --- .../java/edu/mines/packtrain/services/TestExtensionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index bcecba0a..e5893395 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -56,7 +56,7 @@ void verifyGetAllExtensions(){ void verifyProcessExtensionApplied(){ LateRequestRepo mockRepo = Mockito.mock(LateRequestRepo.class); Mockito.when(mockRepo.getLateRequestById(any(UUID.class))).thenReturn(null); - Mockito.when(mockRepo.save(any())).thenReturn(null); + // Mockito.when(mockRepo.save(any())).thenReturn(null); extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); From 1a6716cfca9aa96935796e2b2faf33f4d706af2a Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 15:52:46 -0600 Subject: [PATCH 28/41] added mock --- .../edu/mines/packtrain/services/TestExtensionService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index e5893395..b0dbcf7c 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -54,9 +54,10 @@ void verifyGetAllExtensions(){ @Test void verifyProcessExtensionApplied(){ + LateRequest mockLateRequest = new LateRequest(); LateRequestRepo mockRepo = Mockito.mock(LateRequestRepo.class); - Mockito.when(mockRepo.getLateRequestById(any(UUID.class))).thenReturn(null); - // Mockito.when(mockRepo.save(any())).thenReturn(null); + Mockito.when(mockRepo.getLateRequestById(any(UUID.class))).thenReturn(mockLateRequest); + Mockito.when(mockRepo.save(any())).thenReturn(null); extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); From 293d19ecd6ddd93681e59ea66d228cd39a09c257 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 15:58:22 -0600 Subject: [PATCH 29/41] mocked out mock --- .../java/edu/mines/packtrain/services/TestExtensionService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index b0dbcf7c..c755b73a 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -55,6 +55,8 @@ void verifyGetAllExtensions(){ @Test void verifyProcessExtensionApplied(){ LateRequest mockLateRequest = new LateRequest(); + mockLateRequest.setDaysRequested(4); + mockLateRequest.setStatus(LateRequestStatus.IGNORED); LateRequestRepo mockRepo = Mockito.mock(LateRequestRepo.class); Mockito.when(mockRepo.getLateRequestById(any(UUID.class))).thenReturn(mockLateRequest); Mockito.when(mockRepo.save(any())).thenReturn(null); From 7f3fa7666caae84807dbd24af904d27ca8c41926 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 16:06:18 -0600 Subject: [PATCH 30/41] mocked out mock --- .../packtrain/services/TestExtensionService.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index c755b73a..7391754a 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -16,6 +16,8 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; +import org.mockito.InjectMocks; +import org.mockito.Mock; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -23,13 +25,15 @@ @SpringBootTest public class TestExtensionService implements PostgresTestContainer { - @Autowired ExtensionService extensionService; + @Autowired + @InjectMocks + ExtensionService extensionService; @Autowired private ExtensionRepo extensionRepo; @Autowired private CourseSeeders courseSeeders; - @Autowired + @Mock private LateRequestRepo lateRequestRepo; @BeforeAll @@ -57,13 +61,13 @@ void verifyProcessExtensionApplied(){ LateRequest mockLateRequest = new LateRequest(); mockLateRequest.setDaysRequested(4); mockLateRequest.setStatus(LateRequestStatus.IGNORED); - LateRequestRepo mockRepo = Mockito.mock(LateRequestRepo.class); - Mockito.when(mockRepo.getLateRequestById(any(UUID.class))).thenReturn(mockLateRequest); - Mockito.when(mockRepo.save(any())).thenReturn(null); + + Mockito.when(lateRequestRepo.getLateRequestById(any(UUID.class))).thenReturn(mockLateRequest); + Mockito.when(lateRequestRepo.save(any())).thenReturn(null); extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); - Mockito.verify(mockRepo).save(requestCaptor.capture()); + Mockito.verify(lateRequestRepo).save(requestCaptor.capture()); LateRequest capturedRequest = requestCaptor.getValue(); Assertions.assertEquals(capturedRequest.getStatus(), LateRequestStatus.APPLIED); From de677742b3b76e01bb24eb2ea48c801d79b8e136 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 16:10:58 -0600 Subject: [PATCH 31/41] fixed extension service --- .../java/edu/mines/packtrain/services/ExtensionService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java index d73a5f74..4b4133ae 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java @@ -203,9 +203,10 @@ public void processExtensionApplied(UUID extensionId, boolean extensionApplied, if (lateRequest != null) { lateRequest.setStatus(status); lateRequest.setDaysRequested(extensionDays); + lateRequestRepo.save(lateRequest); } - lateRequestRepo.save(lateRequest); //is this correct? + //is this correct? } From a677e5b0bb00d861d21c1942ac7d415bddc53b30 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 21 Sep 2025 16:18:33 -0600 Subject: [PATCH 32/41] not sure what is wrong --- .../java/edu/mines/packtrain/services/TestExtensionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index 7391754a..1ada5a82 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -56,7 +56,7 @@ void verifyGetAllExtensions(){ } - @Test + void verifyProcessExtensionApplied(){ LateRequest mockLateRequest = new LateRequest(); mockLateRequest.setDaysRequested(4); From 86245be9b5b15d421bde3d90a66061c74ef2d900 Mon Sep 17 00:00:00 2001 From: Zoey Date: Thu, 2 Oct 2025 12:18:24 -0600 Subject: [PATCH 33/41] Chagned @Mock to be @AutoWired for LateRequestRepo --- .../java/edu/mines/packtrain/services/TestExtensionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index 1ada5a82..d679e5de 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -33,7 +33,7 @@ public class TestExtensionService implements PostgresTestContainer { private ExtensionRepo extensionRepo; @Autowired private CourseSeeders courseSeeders; - @Mock + @Autowired private LateRequestRepo lateRequestRepo; @BeforeAll From 475674f771aa39d43323c6865a70a8d1b3045c86 Mon Sep 17 00:00:00 2001 From: Zoey Date: Thu, 2 Oct 2025 12:22:28 -0600 Subject: [PATCH 34/41] Got rid of InjectMocks in TestExtensionService --- .../edu/mines/packtrain/services/TestExtensionService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index d679e5de..87715cb7 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -26,8 +26,7 @@ public class TestExtensionService implements PostgresTestContainer { @Autowired - @InjectMocks - ExtensionService extensionService; + private ExtensionService extensionService; @Autowired private ExtensionRepo extensionRepo; From 7717c2580ff4d5c44594bd9cc64bc0da757807c7 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Thu, 2 Oct 2025 12:25:59 -0600 Subject: [PATCH 35/41] greg notes --- docs/src/GradingPolicy.rst | 2 ++ packtrain-policy-service/src/data/PolicyScoredDTO.ts | 1 + packtrain-policy-service/src/data/ScoredDTO.ts | 1 + 3 files changed, 4 insertions(+) diff --git a/docs/src/GradingPolicy.rst b/docs/src/GradingPolicy.rst index add601e2..8502daf3 100644 --- a/docs/src/GradingPolicy.rst +++ b/docs/src/GradingPolicy.rst @@ -138,6 +138,8 @@ Your policy must return an object with these properties set: **submissionMessage** *(nullable string)* An optional message for the overall submission. + + .. update this with what had in scored dto An example for format is below: diff --git a/packtrain-policy-service/src/data/PolicyScoredDTO.ts b/packtrain-policy-service/src/data/PolicyScoredDTO.ts index 24303963..e4d37d1f 100644 --- a/packtrain-policy-service/src/data/PolicyScoredDTO.ts +++ b/packtrain-policy-service/src/data/PolicyScoredDTO.ts @@ -9,3 +9,4 @@ export default class PolicyScoredDTO { extensionMessage?: string; submissionMessage?: string; } +// update this also \ No newline at end of file diff --git a/packtrain-policy-service/src/data/ScoredDTO.ts b/packtrain-policy-service/src/data/ScoredDTO.ts index 75dc6aec..8f3df9a9 100644 --- a/packtrain-policy-service/src/data/ScoredDTO.ts +++ b/packtrain-policy-service/src/data/ScoredDTO.ts @@ -12,4 +12,5 @@ export default class ScoredDTO { extensionStatus!: ExtensionStatus; extensionMessage!: string; submissionMessage!: string; + numberExtensionDaysApplied!: number; } From 1c5f48cd8159b3341302dfb7a3062630d67d8133 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Thu, 2 Oct 2025 12:28:30 -0600 Subject: [PATCH 36/41] more greg notes --- openapi/openapi.yml | 2 +- packtrain-policy-service/src/services/policyService.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openapi/openapi.yml b/openapi/openapi.yml index c344e97e..89848478 100644 --- a/openapi/openapi.yml +++ b/openapi/openapi.yml @@ -2010,7 +2010,7 @@ components: type: string submissionMessage: type: string - +# add number extension days applied to match above. PolicyDryRunResults: properties: policyResults: diff --git a/packtrain-policy-service/src/services/policyService.ts b/packtrain-policy-service/src/services/policyService.ts index 15cb3474..736d35bd 100644 --- a/packtrain-policy-service/src/services/policyService.ts +++ b/packtrain-policy-service/src/services/policyService.ts @@ -92,7 +92,7 @@ function validateScoredDTO(scored: PolicyScoredDTO): string[] { `Invalid extensionStatus! Received: ${scored.extensionStatus}. Expected one of: ${Object.values(SubmissionStatus)}`, ); } - +// add error for number days extension days return errors; } From 171baa9151784517697ce924bbaa0709f4cbdcb5 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Thu, 2 Oct 2025 12:32:14 -0600 Subject: [PATCH 37/41] even more greg comments --- packtrain-frontend/apps/admin/src/pages/course/Policy.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packtrain-frontend/apps/admin/src/pages/course/Policy.tsx b/packtrain-frontend/apps/admin/src/pages/course/Policy.tsx index 1df0c6b0..ab85fed5 100644 --- a/packtrain-frontend/apps/admin/src/pages/course/Policy.tsx +++ b/packtrain-frontend/apps/admin/src/pages/course/Policy.tsx @@ -353,6 +353,13 @@ export function PolicyPage({ value={dryRunRes.policyResults.adjustedDaysLate} disabled /> + Date: Thu, 2 Oct 2025 12:38:13 -0600 Subject: [PATCH 38/41] Made changed to verifyProcessExtensionApplied test --- .../packtrain/services/TestExtensionService.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index 87715cb7..d891415a 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -55,20 +55,17 @@ void verifyGetAllExtensions(){ } - + @Test void verifyProcessExtensionApplied(){ LateRequest mockLateRequest = new LateRequest(); mockLateRequest.setDaysRequested(4); mockLateRequest.setStatus(LateRequestStatus.IGNORED); - Mockito.when(lateRequestRepo.getLateRequestById(any(UUID.class))).thenReturn(mockLateRequest); - Mockito.when(lateRequestRepo.save(any())).thenReturn(null); - + mockLateRequest = lateRequestRepo.save(mockLateRequest); + extensionService.processExtensionApplied(UUID.randomUUID(), true, 2); - ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(LateRequest.class); - Mockito.verify(lateRequestRepo).save(requestCaptor.capture()); - - LateRequest capturedRequest = requestCaptor.getValue(); + LateRequest capturedRequest = lateRequestRepo.getLateRequestById(mockLateRequest.getId()); + Assertions.assertEquals(capturedRequest.getStatus(), LateRequestStatus.APPLIED); Assertions.assertEquals(capturedRequest.getDaysRequested(), 2); From ee6d19edab88a27295d4464cb89575ec1e4994ef Mon Sep 17 00:00:00 2001 From: Zoey Date: Thu, 2 Oct 2025 12:46:10 -0600 Subject: [PATCH 39/41] Inverted the logic in processExtensionAppied function --- .../edu/mines/packtrain/services/ExtensionService.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java index 4b4133ae..dfd711d3 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java @@ -200,13 +200,13 @@ public void processExtensionApplied(UUID extensionId, boolean extensionApplied, if (extensionApplied) { status = LateRequestStatus.APPLIED; } - if (lateRequest != null) { - lateRequest.setStatus(status); - lateRequest.setDaysRequested(extensionDays); - lateRequestRepo.save(lateRequest); + if (lateRequest == null) { + return ; } - //is this correct? + lateRequest.setStatus(status); + lateRequest.setDaysRequested(extensionDays); + lateRequestRepo.save(lateRequest); } From ec70f6ee33c5f801bbc40c94e3900263f0ee4d78 Mon Sep 17 00:00:00 2001 From: Zoey Date: Thu, 2 Oct 2025 13:26:29 -0600 Subject: [PATCH 40/41] fixing style issues --- .../edu/mines/packtrain/services/ExtensionService.java | 2 +- .../edu/mines/packtrain/services/TestExtensionService.java | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java index dfd711d3..d8573bdf 100644 --- a/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java +++ b/packtrain-service/src/main/java/edu/mines/packtrain/services/ExtensionService.java @@ -201,7 +201,7 @@ public void processExtensionApplied(UUID extensionId, boolean extensionApplied, status = LateRequestStatus.APPLIED; } if (lateRequest == null) { - return ; + return; } lateRequest.setStatus(status); diff --git a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java index d891415a..ac1aa226 100644 --- a/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java +++ b/packtrain-service/src/test/java/edu/mines/packtrain/services/TestExtensionService.java @@ -7,18 +7,13 @@ import edu.mines.packtrain.repositories.LateRequestRepo; import edu.mines.packtrain.seeders.CourseSeeders; -import static org.mockito.ArgumentMatchers.any; - import java.util.UUID; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; From 1677194bf75ab5609af93b95ad53c1c1a632deb7 Mon Sep 17 00:00:00 2001 From: Jett Morrandez Date: Sun, 5 Oct 2025 18:07:00 -0600 Subject: [PATCH 41/41] changed to have number days applied to be in all places --- docs/src/GradingPolicy.rst | 3 ++- openapi/openapi.yml | 3 +++ packtrain-policy-service/src/data/PolicyScoredDTO.ts | 4 ++-- packtrain-policy-service/src/services/policyService.ts | 5 ++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/docs/src/GradingPolicy.rst b/docs/src/GradingPolicy.rst index 8502daf3..8e8d3e7c 100644 --- a/docs/src/GradingPolicy.rst +++ b/docs/src/GradingPolicy.rst @@ -139,7 +139,8 @@ Your policy must return an object with these properties set: **submissionMessage** *(nullable string)* An optional message for the overall submission. - .. update this with what had in scored dto + **numberExtensionDaysApplied** *(number)* + the number of extension days applied An example for format is below: diff --git a/openapi/openapi.yml b/openapi/openapi.yml index 89848478..52ca2430 100644 --- a/openapi/openapi.yml +++ b/openapi/openapi.yml @@ -2010,6 +2010,9 @@ components: type: string submissionMessage: type: string + numberExtensionDaysApplied: + type: integer + format: int32 # add number extension days applied to match above. PolicyDryRunResults: properties: diff --git a/packtrain-policy-service/src/data/PolicyScoredDTO.ts b/packtrain-policy-service/src/data/PolicyScoredDTO.ts index e4d37d1f..8795a989 100644 --- a/packtrain-policy-service/src/data/PolicyScoredDTO.ts +++ b/packtrain-policy-service/src/data/PolicyScoredDTO.ts @@ -8,5 +8,5 @@ export default class PolicyScoredDTO { extensionStatus!: ExtensionStatus; extensionMessage?: string; submissionMessage?: string; -} -// update this also \ No newline at end of file + numberExtensionDaysApplied?: number; +} \ No newline at end of file diff --git a/packtrain-policy-service/src/services/policyService.ts b/packtrain-policy-service/src/services/policyService.ts index 736d35bd..e1dedf68 100644 --- a/packtrain-policy-service/src/services/policyService.ts +++ b/packtrain-policy-service/src/services/policyService.ts @@ -92,7 +92,10 @@ function validateScoredDTO(scored: PolicyScoredDTO): string[] { `Invalid extensionStatus! Received: ${scored.extensionStatus}. Expected one of: ${Object.values(SubmissionStatus)}`, ); } -// add error for number days extension days + + if (scored.numberExtensionDaysApplied == null){ + errors.push("the number of extension days applied was not set by policy!") + } return errors; }