WIP: Associate PlAssessmentQuestions with Concepts (#116) - #117
Conversation
Adds the join entity/repository/migration and PLAssessmentQuestionController (GET concepts, POST addConcept, DELETE deleteConcept with 422 on PL-instance mismatch) so instructors can tag Concepts onto specific assessment questions. Removes the now-superseded QuestionController stub. Frontend (toggle button, graph highlighting wiring) is not yet implemented — see docs/issue118.md for a full handoff/resume plan. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Use this prompt with Claude when we return:
422 status code: the issue explicitly asks for @ExceptionHandler(IllegalArgumentException.class)
@ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY)
public Object handleIllegalArgument(Throwable e) {
return Map.of("type", e.getClass().getSimpleName(), "message", e.getMessage());
}This only changes behavior for this one controller; every other controller keeps 400.
Remove the superseded stubDelete Backend testsNew FrontendExpose
|
Summary
PlAssessmentQuestionConceptjoin entity/repository/migration, and aPLAssessmentQuestionControllerwithGET /{id}/concepts,POST /addConcept,DELETE /deleteConcept(422 on PL-instance mismatch per the issue's spec).QuestionControllerstub (GET /api/questions/{questionId}/concepts, always returned[]) that this issue was blocking on.Status
This is a work-in-progress checkpoint, paused mid-implementation. Full context for resuming — what's done, what's left, and the key design decisions (e.g. why the new table's FKs use
ON DELETE CASCADEinstead of this codebase's usual manual-cleanup convention) — is written up indocs/issue118.md.Test plan
mvn compile/mvn test-compilepassmvn test -Dtest=PLAssessmentQuestionControllerTests,AssessmentControllerTestspassesmvn test) — not yet run, do this first when resuming🤖 Generated with Claude Code