From eae87b40b50c56d47c8ebbef9432b410fa5eab2d Mon Sep 17 00:00:00 2001 From: Yared Yemane Date: Mon, 11 May 2026 11:20:33 -0700 Subject: [PATCH] Add practice completion progress endpoint. Expose POST /progress/practices/:id/complete so practice completions are recorded through the existing CompletePractice flow and included in learner progress tracking. Co-authored-by: Cursor --- internal/web_server/routes.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/web_server/routes.go b/internal/web_server/routes.go index 53f7cbb..0f8d0d5 100644 --- a/internal/web_server/routes.go +++ b/internal/web_server/routes.go @@ -141,6 +141,7 @@ func (a *App) initAppRoutes() { groupV1.Delete("/modules/:id", a.authMiddleware, a.RequirePermission("modules.delete"), h.DeleteModule) groupV1.Get("/lessons/:id/practices", a.authMiddleware, a.RequireActiveSubscription(), a.RequirePermission("practices.list"), h.ListPracticesByLesson) groupV1.Post("/lessons/:id/complete", a.authMiddleware, a.RequireActiveSubscription(), a.RequirePermission("lessons.complete"), h.CompleteLesson) + groupV1.Post("/progress/practices/:id/complete", a.authMiddleware, a.RequireActiveSubscription(), a.RequirePermission("progress.complete"), h.CompletePractice) groupV1.Get("/lessons/:id", a.authMiddleware, a.RequireActiveSubscription(), a.RequirePermission("lessons.get"), h.GetLesson) groupV1.Put("/lessons/:id", a.authMiddleware, a.RequirePermission("lessons.update"), h.UpdateLesson) groupV1.Delete("/lessons/:id", a.authMiddleware, a.RequirePermission("lessons.delete"), h.DeleteLesson)