Lesson Player

Run a submitted solution and record progress. Synchronous to match legacy; revisit as submit + stream for the Docker-job model (see file header).

Public on purpose: a guest must be able to submit, and their position travels in the signed cookie rather than in rows. 409 when the lesson is beyond the gate — the submission is refused before anything is run.

post/api/lessons/{id}/check

Request

  • The document declares no server URL.
  • Auth: none declared

Path parameters

idinteger required

Request body

codestring required
versionIdinteger required

The lesson version the code was written against.

Response

A completed check: the exercise outcome, plus the progress cookie a guest's advanced position travels back in.

The cookie is absent for a signed-in learner, whose progress is rows rather than a cookie — which is the only place the two paths differ, and the client never has to notice: it reads the same body either way.

passedboolean required
outputstring required
result'passed' | 'failed' | 'failed-infinity' required
statusinteger required
lessonHasBeenFinishedboolean required
courseHasBeenFinishedboolean required

Changes