pub fn assignment_routes(app_state: AppState) -> Router<AppState>
Expand description
Expects a module ID. If an assignment ID is included it will be modified or deleted.
Builds and returns the /assignments
route group.
Routes:
POST /assignments
→ Create a new assignment (requires lecturer)GET /assignments
→ List assignmentsDELETE /assignments/bulk
→ Bulk delete assignments (requires lecturer)PUT /assignments/bulk
→ Bulk edit assignments (requires lecturer, cannot edit status)GET /assignments/:assignment_id
→ Get assignment detailsPUT /assignments/:assignment_id
→ Edit assignment (requires lecturer, cannot edit status)PUT /assignments/:assignment_id/open
→ Open assignment (requires lecturer, only if currently Ready, Closed, or Archived)PUT /assignments/:assignment_id/close
→ Close assignment (requires lecturer, only if currently Open)DELETE /assignments/:assignment_id
→ Delete assignment (requires lecturer)GET /assignments/:assignment_id/stats
→ Assignment statistics (lecturer only)GET /assignments/:assignment_id/readiness
→ Assignment readiness (lecturer or admin only)
Nested routes:
- Tasks routes →
tasks_routes
- Config routes →
config_routes
- Memo output routes →
memo_output_routes
- Mark allocator routes →
mark_allocator_routes
- Submissions routes →
submission_routes
- Files routes →
files_routes
- Tickets routes →
ticket_routes
- Plagiarism routes →
plagiarism_routes