Skip to content

Extract Assignment Due Date Logic to AssignmentDateCalculator Service Object#293

Closed
cycomachead wants to merge 1 commit intoupdate-canvas-and-gradescope-integrations-to-handle-late-due-dates-for-extensions-hWNcq7Kk6T7Hfrom
things-don-t-seem-to-be-quite-right-if-the-assignment-contains-no-late-due-date-then-none-should-be--RWbGWcwLh9wt
Closed

Extract Assignment Due Date Logic to AssignmentDateCalculator Service Object#293
cycomachead wants to merge 1 commit intoupdate-canvas-and-gradescope-integrations-to-handle-late-due-dates-for-extensions-hWNcq7Kk6T7Hfrom
things-don-t-seem-to-be-quite-right-if-the-assignment-contains-no-late-due-date-then-none-should-be--RWbGWcwLh9wt

Conversation

@cycomachead
Copy link
Contributor

things don't seem to be quite right.

if the assignment contains no late due date then none should be set on the external service regardless of the course settings.

It may be more clear if the facades can accept a nil value and not force it be present, but the facade is always called with the exact right arguments.

Please extract the due date logic into a new service object, AssignmentDateCalculator

This new class should take in 3 things: assignment, request, course settings

It should then output:
release_date, due_date, late_due_date

for now release date should always be nil.

Include and refactor tests


Superconductor Ticket Implementation | App Preview

Remove unused `calculate_new_assignment_dates` and `calculate_new_late_due_date`
methods from Request model along with their duplicate integration tests.
Remove tests that tried to set `extend_late_due_date` to nil, which is no
longer possible after the NOT NULL migration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant