Per Artifact Approve
B2B Courses v2
Per Artifact Approve
POST /courses/{id}/review/approve (S2.1)
Approve a single artifact identified by the ArtifactRef body.
Calls course_reviews.approve, which:
- upserts status='approved'
- when the prior status was 'note': flips note_resolved=TRUE and marks
the matching courses.feedback entry resolved=TRUE (S2.3 resolved marking,
already in S1's approve implementation).
reviewer is stamped as 'human:<client_id>' (QC hook: design section 17 says
the reviewer field is the hook; no separate QC route needed).
Phase 2 / Wave 1: returns {approved, artifact}. NO enqueue.
The trigger-chain (gen_audio, assemble_module, finalize) is Phase 3 (S3).
POST
Per Artifact Approve
Path Parameters
Body
application/json
Addressing a single reviewable artifact.
Addressing modes:
- asset_id (int): look up (asset_type, module_index, scene_index) from course_assets and map asset_type to the ledger artifact_type.
- artifact_type + optional module_index + optional scene_index: direct logical addressing (used for outline/notes/quiz_question and for slide/audio when the caller knows the indices).
Either asset_id or artifact_type must be present; if both are given, asset_id takes precedence.
Response
Successful Response